Global namefaces

Currently, namefaces in Botnak only show on the broadcaster's end, i.e. nobody else can see the namefaces in a channel but the broadcaster (unless they have added them locally).
I've created a website / server application where users can upload (or remove) their nameface to http://gmanserver.info/faces/nameface.php. They must connect with Twitch to do this, so user A can't modify the nameface of user B. The website provides a preview section for the new nameface, eliminating the problem of people having to re-add their nameface in Botnak multiple times until it looks right.
All added faces are saved onto the server (accessible from http://gmanserver.info/faces/namefaces/.png). A record for each user is also added to a MySQL database, where the url of their nameface is stored, as well as the channel permission level. Channel permission level (0-3) allows a user to pick whose namefaces will appear in their chat (everyone, subs+, mods+, broadcaster only). This setting can be changed from the main website.
For use in Botnak, users' data can be pulled from http://gmanserver.info/faces/getface.php?username=, which will return a JSON object with their unique ID, username, the URL to their nameface (JSON encoded), and their channel permission level.
Users are free to modify or remove their nameface, or update the channel permission level at any time from the main website (http://gmanserver.info/faces/nameface.php).

Small issue with the site: after performing an action (adding/removing or changing channel permission) the options disappear, and you're forced to reload the site in order to see them again.
Another request: can you implement the white-space trimmer/cropper I made into your image processing somehow so that it matches Botnak's?
Other than that, I'm working on implementing this, so it'll be added soon!

I can make it so that after processing an action, it brings back the options selection box. The user should stay authenticated (i.e. won't need to reconnect with twitch), though, so clicking the "connect with twitch" button again will go right back to the options without having to login again.
I can look into the cropper; would you prefer it to crop just the preview, or crop the final saved file as well? The preview would mean writing it in JavaScript, and then doing it again in PHP for the saved file.

You could do it for the preview. Either way, Botnak is still going to have the cropper, so it wouldn't matter, but it would be more accurate for the preview.

If anybody has suggestions for implementing the cropper in JavaScript / HTML for the preview, they would be much appreciated. I have begun implementing it in PHP.
I'll add a note reminding people to remove whitespace, hopefully when they see it in the preview that will at least prompt them to do so themselves.

After performing an action, the "Choose an action" box always comes up now (after removing leftovers from other actions from the page.

Descriptive errors are now returned on http://gmanserver.info/faces/getface.php?username= if the nameface is not found.

It is now also possible to request multiple faces. To do so, perform a normal username GET request but separate usernames by a "[" (open bracket). For example, http://gmanserver.info/faces/getface.php?username=gmansoliver[gocnak will return a JSON array with both face objects.
I'll hopefully find a better place to document this than in the comments on this issue soon.


Cannot upgrade to Phoenix 0.9

The current configuration prevents upgrading to phoenix 0.9

I suspect it is because of the outdated plug dependency which is now fixed


[BUG] Retry behavior for ManagedIdentityCredential dealing with a retriable failed status response can cause additional unnecessary traffic against the managed identity endpoint

Library name and version
Azure.Identity
Describe the bug
In a scenario in which an application does the following:

utilizes a ManaagedIdentityCredential directly to fetch tokens rather than as part of an SDK client
Issues hundreds of GetToken requests simultaneously
Optionally increases MaxRetries

When such an application encounters a 429 response from the MI endpoint, this can result in a storm of requests and retry requests making the 429 problem worse.
In addition, given the current behavior across Azure.Identity and MSAL for retries and cache access, all retries are guaranteed to result in a cache miss and will continue to fail as long as the MI endpoint does not return a successful token response.
Expected behavior
Retry attempts after the token cache is successfully refreshed should succeed via a cache hit rather than through a network request to the MI endpoint or authority.
Actual behavior
Once the initial request fails with a retriable status code, all subsequent token requests do not attempt to read the cache and always result in an additional network request
Reproduction Steps
Issue a large number of simultaneous GetToken requests with a ManagedIdentityCredential to induce a 429 response from the MI endpoint
Environment
Customer example was in Service Fabric, but this should reproduce in any managed identity environment in which a 429 response is possible.

MSAL has a background refresh mechanism already, and it'll use it for MI as well, as long as the tokens have at least 2h lifetime. Do you know if this is the case for the customer here?

Created https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/4196


Support Redux 4 when the devtools extension supports it

Redux 4 is out. The tests already pass using it, but redux-devtools-extension needs to update its peer dependency (blocked by https://github.com/zalmoxisus/redux-devtools-extension/pull/490). I'd like wait until this is fixed before adjusting our peer dependencies to reduce confusion and limit peer dependencies seen by users, this issue is just here to remind us to adjust the peer dependency after redux-devtools-extension updates.

The devtools extension was updated for Chrome and npm, but not Firefox. Do we want to continue waiting?

@markerikson The devtools extension was updated for Chrome and npm, but not Firefox. Do we want to continue waiting?

True, we've waited long enough, and most devs are on Chrome anyway. Firefox users can always stay on older Redux versions, install the new extension from source, or instantiate the devtools manually.


Disabling tests seems to cause an endless loop if a disabled test codeunit is added to multiple suites

Hello,
if I am not misreading the output, it seems to me like Run-TestsInNavContainer runs into an endless loop if you try to disable a test codeunit which is referenced in multiple test suites. Here is my repro:
I am using the following script to create a new test container
[CmdletBinding()]
param (
    [Parameter()]
    [string]
    $ContainerName,

    [Parameter()]
    [string]
    $ImageName,

    [Parameter()]
    [string]
    $LicenseFile,

    [Parameter(Mandatory=$false)]
    [pscredential]
    $Credential = (New-Object System.Management.Automation.PSCredential -ArgumentList ("admin", (ConvertTo-SecureString -String "5uperSecret!" -AsPlainText -Force))),

    [Parameter(Mandatory=$false)]
    [string]
    $XunitResultsBasePath = "C:\ProgramData\NavContainerHelper\Extensions\$ContainerName"
)

$xunitResultsFile = Join-Path $XunitResultsBasePath "results-{0}.xml"

if ($null -ne (Get-BCContainers | Where-Object { $_ -eq $ContainerName })) {
    Write-Host "Remove existing container"
    Remove-BCContainer $ContainerName
}

Write-Host "Create new container"
New-BCContainer `
    -accept_eula `
    -accept_outdated `
    -containerName $ContainerName `
    -imageName $ImageName `
    -alwaysPull `
    -licenseFile $LicenseFile `
    -Credential $Credential `
    -includeTestToolkit `
    -updateHosts `
    -additionalParameters @("--env CustomWebSettings=SessionTimeout=01:00:00", "--env CustomNavSettings=EnableTaskScheduler=False") #`
    #-assignPremiumPlan

docker cp $ContainerName:C:/Applications/TestFramework/TestRunner/DisabledTests.json .
$disabledTests = Get-Content "DisabledTests.json" | ConvertFrom-Json
$myDisabledTests = Get-Content "MyDisabledTests.json" | ConvertFrom-Json
$disabledTests += $myDisabledTests

Write-Host "Start tests"
Get-BCContainerAppInfo $ContainerName | Where-Object { $_.Name.StartsWith("Tests-") } | ForEach-Object {
    Write-Host ("Run tests for extension {0}" -f $_.Name)
    Run-TestsInBCContainer `
        -containerName $ContainerName `
        -credential $Credential `
        -XUnitResultFileName ($xunitResultsFile -f $_.Name.Substring(6)) `
        -extensionId $_.AppId `
        -disabledTests $disabledTests #`
        #-detailed `
        #-debugMode
}

My own disabled tests are stored in MyDisabledTests.json which looks like this
[
    {
        "codeunitName": "ERM Cash Flow Filling I",
        "method" : "*"
    }
]

I call this e.g. with the following parameters:
.\RunAllTests.ps1 -ContainerName autotestme -ImageName "mcr.microsoft.com/businesscentral/onprem:1910-w1-ltsc2019" -LicenseFile "C:\Users\Verwalter\Desktop\autotest\2019-10 1910 DE.flf"

The output looks like this:
.\RunAllTests.ps1 -ContainerName autotestme -ImageName "mcr.microsoft.com/businesscentral/onprem:1910-w1-ltsc2019" -LicenseFile "C:\Users\Verwalter\Desktop\autotest\2019-10 1910 DE.flf"
Create new container
NavContainerHelper is version <IP_ADDRESS>
NavContainerHelper is running as administrator
Host is Microsoft Windows Server 2019 Datacenter - ltsc2019
Docker Client Version is 19.03.2
Docker Server Version is 19.03.2
Pulling image mcr.microsoft.com/businesscentral/onprem:1910-w1-ltsc2019
1910-w1-ltsc2019: Pulling from businesscentral/onprem
Digest: sha256:243e509934ae8fdcb0566776823966fd5a91e6a87b0336a24f334cd16cbee2b2
Using image mcr.microsoft.com/businesscentral/onprem:1910-w1-ltsc2019
Creating Container autotestme
Version: 15.0.36560.0-W1
Style: onprem
Platform: 15.0.36510.0
Generic Tag: <IP_ADDRESS>
Container OS Version: 10.0.17763.737 (ltsc2019)
Host OS Version: 10.0.17763.805 (ltsc2019)
WARNING: The container operating system matches the host operating system, but the revision is different.
If you encounter issues, you might want to specify -isolation hyperv
Using locale en-US
Using process isolation
Disabling the standard eventlog dump to container log every 2 seconds (use -dumpEventLog to enable)
Using license file C:\Users\Verwalter\Desktop\autotest\2019-10 1910 DE.flf
Files in C:\ProgramData\NavContainerHelper\Extensions\autotestme\my:
- AdditionalOutput.ps1
- license.flf
- MainLoop.ps1
- SetupVariables.ps1
- updatehosts.ps1
Creating container autotestme from image mcr.microsoft.com/businesscentral/onprem:1910-w1-ltsc2019
67734cf43c90f5c0f6d88d17760a1782d099526094ce169d92062292b60c28c8
Waiting for container autotestme to be ready
Initializing...
Setting host.containerhelper.internal to <IP_ADDRESS> in container hosts file
Starting Container
Hostname is
PublicDnsName is autotestme
Using Windows Authentication
Starting Local SQL Server
Starting Internet Information Server
Modifying Service Tier Config File with Instance Specific Settings
Modifying Service Tier Config File with settings from environment variable
Setting EnableTaskScheduler to False
Starting Service Tier
Registering event sources
Creating DotNetCore Web Server Instance
Modifying Web Client config with settings from environment variable
Setting SessionTimeout to 01:00:00
Using license file 'c:\run\my\license.flf'
Import License
Creating http download site
Creating Windows user admin
Setting SA Password and enabling SA
Creating SUPER user
Container IP Address: <IP_ADDRESS>
Container Hostname  :
Container Dns Name  : autotestme
Web Client          : http://autotestme/BC/
Dev. Server         : http://autotestme
Dev. ServerInstance : BC
Setting autotestme to <IP_ADDRESS> in host hosts file

Files:
http://autotestme:8080/al-4.0.176004.vsix

Initialization took 65 seconds
Ready for connections!
Reading CustomSettings.config from autotestme
Creating Desktop Shortcuts for autotestme
Copy from container autotestme (C:\Applications\TestFramework\TestLibraries\Any\Microsoft_Any.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Any.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Any.app
Synchronizing Any on tenant default
Installing Any on tenant default
App successfully published
Copy from container autotestme (C:\Applications\TestFramework\TestLibraries\Assert\Microsoft_Library Assert.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Library Assert.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Library Assert.app
Synchronizing Library Assert on tenant default
Installing Library Assert on tenant default
App successfully published
Copy from container autotestme (C:\Applications\TestFramework\TestRunner\Microsoft_Test Runner.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Test Runner.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Test Runner.app
Synchronizing Test Runner on tenant default
Installing Test Runner on tenant default
App successfully published
Copy from container autotestme (C:\Applications\System Application\Test\Microsoft_System Application Test Library.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_System Application Test Library.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_System Application Test Library.app
Synchronizing System Application Test Library on tenant default
Installing System Application Test Library on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-TestLibraries.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-TestLibraries.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-TestLibraries.app
Synchronizing Tests-TestLibraries on tenant default
Installing Tests-TestLibraries on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Bank.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Bank.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Bank.app
Synchronizing Tests-Bank on tenant default
Installing Tests-Bank on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Cash Flow.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Cash Flow.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Cash Flow.app
Synchronizing Tests-Cash Flow on tenant default
Installing Tests-Cash Flow on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Cost Accounting.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Cost Accounting.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Cost Accounting.app
Synchronizing Tests-Cost Accounting on tenant default
Installing Tests-Cost Accounting on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-CRM integration.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-CRM integration.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-CRM integration.app
Synchronizing Tests-CRM integration on tenant default
Installing Tests-CRM integration on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Data Exchange.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Data Exchange.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Data Exchange.app
Synchronizing Tests-Data Exchange on tenant default
Installing Tests-Data Exchange on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Dimension.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Dimension.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Dimension.app
Synchronizing Tests-Dimension on tenant default
Installing Tests-Dimension on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-ERM.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-ERM.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-ERM.app
Synchronizing Tests-ERM on tenant default
Installing Tests-ERM on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Fixed Asset.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Fixed Asset.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Fixed Asset.app
Synchronizing Tests-Fixed Asset on tenant default
Installing Tests-Fixed Asset on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-General Journal.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-General Journal.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-General Journal.app
Synchronizing Tests-General Journal on tenant default
Installing Tests-General Journal on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Graph.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Graph.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Graph.app
Synchronizing Tests-Graph on tenant default
Installing Tests-Graph on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Integration.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Integration.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Integration.app
Synchronizing Tests-Integration on tenant default
Installing Tests-Integration on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Invoicing.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Invoicing.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Invoicing.app
Synchronizing Tests-Invoicing on tenant default
Installing Tests-Invoicing on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Job.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Job.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Job.app
Synchronizing Tests-Job on tenant default
Installing Tests-Job on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Local.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Local.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Local.app
Synchronizing Tests-Local on tenant default
Installing Tests-Local on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Misc.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Misc.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Misc.app
Synchronizing Tests-Misc on tenant default
Installing Tests-Misc on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Permissions.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Permissions.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Permissions.app
Synchronizing Tests-Permissions on tenant default
Installing Tests-Permissions on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Physical Inventory.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Physical Inventory.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Physical Inventory.app
Synchronizing Tests-Physical Inventory on tenant default
Installing Tests-Physical Inventory on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Prepayment.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Prepayment.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Prepayment.app
Synchronizing Tests-Prepayment on tenant default
Installing Tests-Prepayment on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Rapid Start.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Rapid Start.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Rapid Start.app
Synchronizing Tests-Rapid Start on tenant default
Installing Tests-Rapid Start on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Report.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Report.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Report.app
Synchronizing Tests-Report on tenant default
Installing Tests-Report on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Resource.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Resource.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Resource.app
Synchronizing Tests-Resource on tenant default
Installing Tests-Resource on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Reverse.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Reverse.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Reverse.app
Synchronizing Tests-Reverse on tenant default
Installing Tests-Reverse on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-SCM.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-SCM.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-SCM.app
Synchronizing Tests-SCM on tenant default
Installing Tests-SCM on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-SMB.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-SMB.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-SMB.app
Synchronizing Tests-SMB on tenant default
Installing Tests-SMB on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-SMTP.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-SMTP.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-SMTP.app
Synchronizing Tests-SMTP on tenant default
Installing Tests-SMTP on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Upgrade.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Upgrade.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Upgrade.app
Synchronizing Tests-Upgrade on tenant default
Installing Tests-Upgrade on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-User.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-User.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-User.app
Synchronizing Tests-User on tenant default
Installing Tests-User on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-VAT.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-VAT.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-VAT.app
Synchronizing Tests-VAT on tenant default
Installing Tests-VAT on tenant default
App successfully published
Copy from container autotestme (C:\Applications\BaseApp\Test\Microsoft_Tests-Workflow.app) to C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Workflow.app
Publishing C:\ProgramData\NavContainerHelper\Extensions\autotestme\_Microsoft_Tests-Workflow.app
Synchronizing Tests-Workflow on tenant default
Installing Tests-Workflow on tenant default
App successfully published
TestToolkit successfully imported
Container autotestme successfully created
must specify at least one container source
Start tests
Run tests for extension Tests-TestLibraries
Creating user manager\containeradministrator as user
Run tests for extension Tests-Bank
  Codeunit 132561 Test Bank Account Tables Success (9.575 seconds)
  Codeunit 134141 ERM Bank Reconciliation Failure (56.9 seconds)
    Testfunction PostPmtReconciliationJournalWhenPostingDateOf2ndLineIsBefore1st Failure (1.334 seconds)
  Codeunit 134231 ERM Bank Account Success (2.194 seconds)
  Codeunit 134252 Match Bank Reconciliation - UT Failure (2.087 seconds)
    Testfunction OneBankEntryMoreRecLinesDateRange Failure (0.17 seconds)
  Codeunit 134253 Match Bank Rec. Scenarios Success (4.291 seconds)
  Codeunit 134259 Bank Pmt. Appl. Algorithm II Success (5.05 seconds)
  Codeunit 134260 Bank Pmt. Appl. Rule UT Success (1.003 seconds)
  Codeunit 134261 Bank Pmt. Appl. Algorithm Failure (96.365 seconds)
    Testfunction TestCustSingleAmountMatchWithAmountPercentageTolerance Failure (0.533 seconds)
    Testfunction TestVendSingleAmountMatchWithAmountPercentageTolerance Failure (0.64 seconds)
  Codeunit 134262 Bank Pmt. Appl. Tolerance Success (188.384 seconds)
  Codeunit 134263 Test Bank Payment Application Failure (15.598 seconds)
    Testfunction BankPaymentApplicationBankReconciliationToBankAccountDiffCurrencies Failure (0.11 seconds)
  Codeunit 134264 Applied Payment Entries Test Success (10.849 seconds)
  Codeunit 134267 Payment Proposal UT Success (22.312 seconds)
  Codeunit 134268 Payment Proposal UT 2 Success (15.496 seconds)
  Codeunit 134269 Matching on Payment Discounts Success (15.837 seconds)
  Codeunit 134271 Payment Recon. E2E Tests Perf. Success (31.836 seconds)
  Codeunit 134500 ERM Cash Manager Success (6.924 seconds)
  Codeunit 134711 Autom. Payment Registration.UX Success (0.987 seconds)
  Codeunit 134712 Autom.  Handler Tests Success (2.637 seconds)
  Codeunit 135203 CF Frcst.

As you can see, when the test tool runs into my disabled test codeunit for the first time, it skips it as expected:
Run tests for extension Tests-Cash Flow
  Codeunit 134550 ERM Cash Flow Simplifications Success (9.233 seconds)
  Codeunit 134551 ERM Cash Flow Filling I Skipped

But when it comes across it for the second time, it keeps rerunning that test codeunit
Run tests for extension Tests-Cost Accounting
  Codeunit 134392 ERM Cost Accounting Rep - Test Success (0.25 seconds)
  Codeunit 134551 ERM Cash Flow Filling I Success (0.222 seconds)
  Codeunit 134551 ERM Cash Flow Filling I Success (0.219 seconds)
  Codeunit 134551 ERM Cash Flow Filling I Success (0.221 seconds)
  Codeunit 134551 ERM Cash Flow Filling I Success (0.22 seconds)
  Codeunit 134551 ERM Cash Flow Filling I Success (0.22 seconds)
  Codeunit 134551 ERM Cash Flow Filling I Success (0.219 seconds)
...

I would guess that this doesn't work in that particular scenario but with little knowledge about the inner workings of the ClientContext, I couldn't figure out how to fix this

This is due to validation errors in the page (which I didn't check for before the next version)
Issue #717 had exactly the same outcome, where it ran the same test again and again (without running it).
I have just checked in a new PSTestFunctions.ps1 in the dev branch (see #717). You can grab this and retry - then it fails with a validation error and you can see the problem.
If this problem then is something we need to fix in the runner, then add it here.

Shipped in <IP_ADDRESS>


First try on M1 Pro : Could not check boot-time display configuration

Even with multiple reboots, I still got the following message displayed:
Could not check boot-time display configuration
This can happen if you have not rebooted your machine in several days.
Please reboot your machine with the laptop lid open, then try again.

System information:
Product name: MacBook Pro (16-inch, 2021)
SoC: Apple M1 Pro
Device class: j316sap
Product type: MacBookPro18,1
Board ID: 0xa
Chip ID: 0x6000
System firmware: iBoot-10151.41.12
Boot mode: macOS
OS version: 14.1.2 (23B92)
OS restore version: <IP_ADDRESS>.0,0
Main firmware version: 14.1.2 (23B92)
No Fallback System Firmware / rOS
SFR version: <IP_ADDRESS>.0,0
SystemRecovery version: <IP_ADDRESS>.0,0 (13.5 22G74)

same here

@rxhfcy: Yes, I strictly followed the instruction to reboot the machine with the laptop lid open, and I'm still encountering the error. No change or improvement after rebooting in this manner.👍


Curse of dimensionality ?

My problem, number of design variables = 600, solves within MOOP but gives me design suggestions which result in far from the global optimum (pre-determined).
Is this the curse of dimensionality or should I revisit my setup ?
Basics/ important parts of MOOP setup:

self.my_moop = libE_MOOP(TR_LBFGSB, hyperparams={})
self.my_moop.addSimulation(
{
'name': self.name,
'm': self.m,
'sim_func': self.Simulation,
'search': LatinHypercube,
'surrogate': LocalGaussRBF,
'hyperparams': {'search_budget': 2000},
}
)
for i in range(9):
self.my_moop.addAcquisition({'acquisition': RandomConstraint,
'hyperparams': {}})
self.my_moop.addAcquisition({'acquisition': FixedWeights,
'hyperparams': {'weights': np.ones(2) / 2}})
self.my_moop.solve(50)

Hi @WoodKieran ,
There are some lines missing here, such as adding the objective functions, but I'll assume that is just information that you omitted.
I think the issue here is that your problem is way too high-dimensional and your budget is way too restrictive for such a large problem.
It looks like you are following our Solving High-Dimensional Multiobjective Optimization Problems Tutorial, which is a good start!
However, the complexity still grows linearly with the dimension.  As a rule of thumb:  you need iterations proportional to the number of design variables.
You have 600 design variables.  That means that every 600-ish iterations, you might expect to get the equivalent to 1-ish steps of gradient descent.  So for this problem, you would need to run ParMOO for thousands of iterations to get reasonable results.
The usage of multiple acquisition functions (you have 10) means that ParMOO will descend on 10 solutions in parallel and take 10 parallel evaluations per iterations.  It won't help you with reducing the total iteration requirement though...
I hope this is informative,
---Tyler


Some enhancements - koa-better-ratelimit

Hi folks.
What think for this memory-only-for-now store implementation - koa-better-ratelimit with  only 4 dependencies?
I know it's near between koa-limit and koa-ratelimit, but I think it's smaller and rationally better than koa-limit that is totally broken for me.
There's no db option, cuz I don't need other than in-memory.
Diferences
Between koa-better-ratelimit and koa-ratelimit

Support blackList and whiteList options
Pure in-memory store, no other adapters
duration option in seconds, not in milliseconds
7 working tests with Mocha, Supertest and Should
removed db option
added Retry-After header
added separate 403 and 429 option messages

Between koa-better-ratelimit and koa-limit

koa-limit is totally broken (to v1.0.1)
removed redis and test dependencies
smaller, better, working, simple
added separate 403 and 429 option messages

If you want you can add to wiki page :)

Hi @tunnckoCore , how to use your middleware in practice? Yes, I see an example provided by you. But not understanble enough how to handle all those custom errors. Shoud it be hanled in a router system?

haha, pretty old issue bumped.
@Globik, i'm working on v3. Actually it is almost ready and it is in the master branch. But was busy last month or so. It is pretty working and it is for Koa2.
Please open issue there and explain, give some examples and etc.

Ok, @tunnckoCore  I'll look at v3.


Fix line number position when block decorations are at tile boundaries

When there are block decorations, we compute a marginTop style for line numbers, so that they can be aligned correctly to the corresponding line nodes.
This pull-request fixes a regression in the logic that calculated the marginTop value, which was failing to correctly render line numbers when block decorations were located right before the end of a tile, or exactly at the beginning of it.

Before
After

@Ben3eeE @50Wliu @ungb: I don't think this regression has been reported yet, but please feel free to test it and close any issue that may be related to this.
/cc: @nathansobo

tyyjghjghjghj


⚠ Bofrost.at has degraded performance

In 78e3750, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1518 ms

Resolved: Bofrost.at performance has improved in 1d5d6e7 after 11 minutes.


Update citation data frame merge procedure

Goal
To directly merge two citation data frames without losing any data.
Current Status
Accomplished with match_citations(). Matches are ignored and non-matches in Y are joined to data frame X.
Problems

Data in Y that is missing in X is lost.
Multi-step procedure is required in script. This can sometimes be confusing: you have to remember which data frame your matching to and from, and remember how to handle the merge.

Suggested Improvement

Create a new function to merge the citation data frames -- may use match_citations() internally.
Find a way to retain information from Y.

This might be accomplished by binding the two dataframes and using collapse_col_flex() to manage data retention. collapse_col_flex() would need to be updated to handle missing data (already planned #1) and  might require new methods.

Would be useful for match_citations() (or something similar) to return the actual ID values available for matching.


featureAdd ST_Angle_Sphere function

Proposed changes
Issue Number: close #xxx
Problem summary
Describe your changes.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 35.64 seconds
stream load tsv:          452 seconds loaded<PHONE_NUMBER>9 Bytes, about 157 MB/s
stream load json:         25 seconds loaded<PHONE_NUMBER> Bytes, about 89 MB/s
stream load orc:          72 seconds loaded<PHONE_NUMBER> Bytes, about 14 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230320035525_clickbench_pr_117087.html

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall


cobs: allow for batched operations

Sometimes it is more efficient to perform multiple operations at once and store those in the collaborative object graph together.
Change the contents to be a non-empty sequence of byte sequences, i.e. NonEmpty<Vec>. These are stored as blobs in a git tree in order by their index in the non-empty sequence. They are, in turn, retrieved in order of their original index.
Change the conversion of an EntryWithClock to return a non-empty sequence of Ops, which are in turn used to apply many changes in each from_history implementation.

Looks good!

Otherwise :+1:

I took the liberty to rebase and fix the nonempty dependency and clock.tick()

Thanks! Appreciate it :)


Adds missing rule name for jsx-no-bind documentation.

The rule name is missing from the jsx-no-bind title / header.
This PR adds it, like all the other rules.

Thanks!


FBSDKCoreKit compatibility issue with other libraries

I am facing version incompatibility issue while build iOS app.
 [!] CocoaPods could not find compatible versions for pod "FBSDKCoreKit":
      In snapshot (Podfile.lock):
        FBSDKCoreKit (= 9.1.0, ~> 9.1.0)

      In Podfile:
        flutter_facebook_auth (from `.symlinks/plugins/flutter_facebook_auth/ios`) was resolved to 2.0.0, which depends on
          FBSDKCoreKit (~> 11.0.0)

        flutter_social_content_share (from `.symlinks/plugins/flutter_social_content_share/ios`) was resolved to 0.0.1, which depends on
          FBSDKCoreKit

    You have either:
     * out-of-date source repos which you can update with `pod repo update` or with `pod install --repo-update`.
     * changed the constraints of dependency `FBSDKCoreKit` inside your development pod `flutter_social_content_share`.
       You should run `pod update FBSDKCoreKit` to apply changes you've made.

You just need to update ur system gems and pods


Add tolerations/node-selector to Spark Executors

Read then delete

Make sure to use a concise title for the pull-request.
Use #patch, #minor or #major in the pull-request title to bump the corresponding version. Otherwise, the patch version
will be bumped. More details

TL;DR
Please replace this text with a description of what this PR accomplishes.
Type

[ ] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[ ] Code completed
[ ] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
How did you fix the bug, make the feature etc. Link to any design docs etc
Tracking Issue
https://github.com/lyft/flyte/issues/
Follow-up issue
NA
OR
https://github.com/lyft/flyte/issues/

Codecov Report

Merging #198 into master will not change coverage.
The diff coverage is n/a.


Private Github API access token in FoundationPress?

In https://github.com/olefredrik/FoundationPress/blob/master/src/assets/js/lib/demosite.js there is an access token committed on line 5.
Maybe I'm misreading this code, but isn't that a private Github API access token? Is that supposed to be part of FoundationPress?

@Aetles good spot. While on this topic, I have wondered if it would be possible for @olefredrik to somehow keep the demo site in his own repo and while having it removed from the main GitHub repo. Maybe he could just keep the demo site in a separate local branch and merge in updates from master?

I realize that it's bad practice to push a Github API Access token to a public repo. And it should never have been pushed to the master branch in the first place. That said, Github has a built-in security mechanism that automatically revokes the token, when this happens.
Thanks for the heads up 👍

That said, Github has a built-in security mechanism that automatically revokes the token, when this happens.

Didn't know that, good!


Confused on license

Hi Dave,
I can see the project is MIT ( per LICENSE file ) but I also see a GPLv3 file in docs/COPYING. What does the docs/COPYING file relate to?

Looks like an oversight on my part, or an inadvertent build artifact that got checked in.  I'll fix it, but the MIT license governs the use of this project.

Thanks for clarifying, @davehorton.


Please sirs!

This is genius, and I'm jelly.
Can you guys please throw me a bitcoin when you're super rich??
1xKfC3WP5onAsXquyaiv3EyxHYraxsNmu

LGTM 👍🏻

LGTM

17KhCgLwugiAS5fdmN7cZy6mbUkzhy61F7 my btc wallet is empty. If someone could help me out in these dark days that would be awesome. Best wishes for the project


Docker runtime error

[+] Building 2.8s (4/4) FINISHED                                 docker:default
=> [backend internal] load build definition from Dockerfile               0.0s
=> => transferring dockerfile: 749B                                       0.0s
=> [frontend internal] load build definition from Dockerfile              0.0s
=> => transferring dockerfile: 547B                                       0.0s
=> ERROR [frontend internal] load metadata for docker.io/library/node:22  2.7s
=> CANCELED [backend internal] load metadata for docker.io/library/pytho  2.7s

[frontend internal] load metadata for docker.io/library/node:22-alpine:

failed to solve: node:22-alpine: failed to resolve source metadata for docker.io/library/node:22-alpine: failed to authorize: failed to fetch anonymous token: Get "https://auth.docker.io/token?scope=repository%3Alibrary%2Fnode%3Apull&service=registry.docker.io": remote error: tls: handshake failure

you should login to your docker account with docker login commmand


feat(openchallenges): add temporal information to challenge card

Fixes #2240
Changelog

add logic for calculating time difference in units of years, months, weeks, days, and hours
display time until start date OR time until end date (depending on status), using the largest non-zero time unit
due to limited space in the footer: re-arrange the card layout, switching placements of status and platform
update "Incentives" icon to something more obvious (trophy)
add fixed heights for status and headline divs; that way, cards stay uniformed in height no matter the contents

Preview
Footer icons using the same color:

OR one footer icon uses the blue color from our logo and one icon uses the other:

Alternatively, we can forgo displaying the platform altogether (something Addison mentioned as potentially not helpful information):

Latest iteration:

@vpchung "Completed" could be reminiscent of errors to users. What about using the default (black) color for completed challenges?

Another suggestion would be to hide time information for challenges that have no longer been "recently" completed (3 mo ago?).

Black color for completed status; show all timeSince info

Black color for completed status; hide timeSince info older than 3 months

Colorized completed status;

hide timeSince info older than 3 months

I'm not a big fan of the default color for the Completed status, but I can also see your point about red = error.

@vpchung Why are you not a fan of the default color?

For me, it lacks consistency - either all statuses should be a different color from the default text color, or they should all be the same.

@vpchung Thanks for the insight. I understand this viewpoint. I gave some thought about this and I think that the new status style capture more the attention that previously. The two reasons are that this information is now at the center of the card and that it's more colorful compared to the solution with the colored dot. With the proposed design, I think that I'm looking first at the status, then at the title. I think that this may disrupt the flow of reading that should be from top to bottom - or at least the title should be read first? Maybe my eyes are attracted to the status first because it's the topic of this PR...
Could we ask Adam to review the current proposal for the card?
@vpchung What do you think about hiding the platform information from the card? Did you mention on Friday that Addison suggested this too? The two reasons that prompt me to suggest this change are: 1) we know that the challenge ecosystem and information are fragmented by benchmarking communities and platforms. Removing this information from the card could be a way for us to "mend" this fragmentation to some extend if that makes sense. 2) enable the user to read more challenge cards by removing some information from the card.

I like the "Slightly bigger bullet size" design.

PR is now ready for (re-)review.

Thank you, @rrchai , for pointing out the inconsistency of the status colors during the standup.  I have addressed the issue with the following design options:
Complete as red

Profile
Card

Complete as blue

Profile
Card

Note that above, I changed the status color on the profile pages from black to red/blue.  The original design is black text, i.e.

Moving forward with blue for "Completed" status. As a safe measure, I also simulated the updated status colors with Coblis to verify that this change is still accessible to users with color-blindness (they passed, according to the simulator).

LGTM with one small suggestion.  box. Adding some margin-left on status box to move a bit toward left can make alignment better in my oppinion.
Before

After moving status box to left by 8px


Check creator status

Part of https://github.com/plotly/streambed/issues/13762

@scjody Please review..
I plan on testing this with https://github.com/plotly/streambed/pull/13827 and temporary version bump on DDS: https://github.com/plotly/dash-deployment-server/compare/check-creator-status
Test plan: https://github.com/plotly/streambed/pull/13827#issue-346826890


fixing swagger docs

Makes sure that the production server is live

Summary by CodeRabbit

New Features

Updated server URLs for production and local development.
Added new API endpoints: /bridgeLimits, /bridge, /bridgeTxInfo, /destinationTokens, /swap, /bridgeTxStatus, and /destinationTx.

Improvements

Enhanced API documentation with detailed descriptions, parameters, and response schemas.
Standardized error handling across multiple endpoints for consistent messaging.

lgtm i dont think any cors stuff is needed since it calls itself


Custom element not found: berlin-transport-timetable-card

Hellooo,
I tried this promising integration, but somehow failed to get the card running. Its my first custom card without HACS, so its probably something I am missing.
I added the integration and can see two entities.
I added the card to www directory:

and added the resource:

but in the dashboard, I receive an errors

Thanks alot!

I seem to have solved it.
not exactly sure what I did wrong, but in the browser console I found, that the


dev/server-build.ts is missing isSpaMode

Reproduction
I'm trying to update an existing 2.4.1 project to 2.5.0, and I see a typecheck failure.

I think it's because in this file https://github.com/remix-run/remix/blob/main/packages/remix-dev/server-build.ts, you need to add
export const isSpaMode:boolean = undefined!;

My workaround is to rewrite my code like so:

System Info
System:
    OS: macOS 14.1.1
    CPU: (8) arm64 Apple M2
    Memory: 147.50 MB / 24.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.19.0 - ~/.volta/tools/image/node/18.19.0/bin/node
    Yarn: 1.22.19 - ~/.volta/tools/image/yarn/1.22.19/bin/yarn
    npm: 10.2.3 - ~/.volta/tools/image/node/18.19.0/bin/npm
    pnpm: 8.6.12 - ~/.volta/bin/pnpm
    bun: 1.0.20 - ~/.bun/bin/bun
  Browsers:
    Edge: 120.0.2210.133
    Safari: 17.1

Used Package Manager
npm
Expected Behavior
Typescript shouldn't complain with a standard template/starter kit.
Actual Behavior
Oh I went into detail in the reproduction. Typechecking fails.

yeah the workaround mentioned above or @ts-expect-error are both fine for now until #8492 goes out next release.
there aren't any functional issues since these types of server apps aren't using spa mode


"keybase chat send" fails from cron

Running this command:
echo "Arbitrary message" | keybase chat send --channel my_channel my_team
Works fine from the shell but fails from cron, with this error:
[INFO keybase fork_server_nix.go:51] 001 Forking background server with pid=7420
[ERRO keybase standard.go:232] 002 dial unix /home/me/.config/keybase/keybased.sock: connect: no such file or directory

Running on Debian 9.1 amd64

@zapu  knows more, but does it work to try:
echo "Arbitrary message" | keybase --standalone chat send --channel my_channel my_team

Alternatively, the problem might be that (1) your keybase daemon stopped running, or that (2) your OS GC'ed the socket ( @patrickxb  knows more about that).

I think the daemon is OK, since it continues to work from the shell. Adding --standalone results in this:
[ERRO keybase standard.go:232] 001 Can't run command in standalone mode
Both from cron and the shell.

Try:
echo "Arbitrary message" | keybase -F chat send --channel my_channel my_team

With -F I get the same error as my initial report, although the "Forking background server" message goes away.

@lionpanthera If you're running Keybase with systemd, cron doesn't set up the proper environment for that command to talk to the service. Try using a systemd timer (https://keybase.io/docs/linux-user-guide#example-daily-kbfs-backup-on-a-systemd-timer), or as a hack, you can set $XDG_RUNTIME_DIR manually in the cron environment.


Write a readme

[ ] Description
[ ] Screenshots
[ ] Feature list
[ ] Planned features
[ ] Build dependencies

While I'm at it,

[ ] Write a Privacy Policy


Use Bosh link to propagate Harbor's CA

Need following ways to support configuring Harbor's Cert:
When hostname is set:
1)User can choose to use ops manager to generate cert based on hostname, using CA from ops manager
2)User can generate a certificate offline and paste in the text area, if he's using a self-signed CA, the CA cert also needs to be pasted.
When hostname is not set:
Bosh should generate a certificate using the IP.
The CA should be exported via "bosh link" in order to be consumed by PKS.

We might want to mod this story for .8 target.  The approach we validated is to pass the Harbor cert's signing CA (external CA or Opsman's root CA if it gens the harbor cert) to the Opsman Director tiles security field will get the job done for .8,  so we wont need the certs exposed via a bosh provides for .8.   We may decide at later date we need as we progress with PKS 1.0 & later deliverables.   Can u guys remove the 0.8 tag on this issue for now?

tag 0.8  removed. Steven will give more tech solution on it.

@jessehu shall we close this?  I don't think we'll want more work on this.

I will verify it on PKS 0.5.0 and update this.

Based on current solution, we don't need pass cert/ca info to other deployment via bosh links. This one can be closed. @reasonerjt @jessehu

OK, let's open bug if we see any problem in pks 0.5 tile.


Menu Item Accessibility

Relates to Issue #4384
i would love any feedback on this PR!
Currently WIP: Need Additional Test Coverage

Added tabIndex on MenuItem component for accessibility
Added onKeyDown to handle on Enter selection for accessibility
Added additional test coverage for MenuItem-test.js

Codecov Report
Base: 99.75% // Head: 99.66% // Decreases project coverage by -0.09% :warning:

Coverage data is based on head (f1d7c11) compared to base (c3cbcae).
Patch coverage: 57.14% of modified lines in pull request are covered.

:exclamation: Current head f1d7c11 differs from pull request most recent head e54ccae. Consider uploading reports for the commit e54ccae to get more accurate results

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4393      +/-   ##
==========================================
- Coverage   99.75%   99.66%   -0.10%
==========================================
  Files         180      180
  Lines        3248     3254       +6
==========================================
+ Hits         3240     3243       +3
- Misses          8       11       +3

Impacted Files
Coverage Δ

src/collections/Menu/MenuItem.js
84.21% <57.14%> (-15.79%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Update compare-typed-xml-to-untyped-xml.md

Just fixed a missing space

@ctyar : Thanks for your contribution to the SQL documentation! The author, @BYHAM, has been notified to review your proposed change.

@ctyar - thanks for the edit!  This PR is ready to merge.
#sign-off


autodetect tables, but "asynchronously"

always autodetect tables
let's give the user their PDF to interact with once thumbnails are generated, etc., but keep the autodetect job running in the background
once it's done, enable the Autodetect Tables button; while it's working, give it a spinner

The Ruby component of this in tabula_job_progress.rb is done (but needs to get turned on), the UI components need to be build.
If we think this is a good idea (I'm not 100% sure)

see 3a78e53 for (some of) the UI bits

ALMOST works. Right now, the Tabula.AutodetectedSelections collection's parse method renders the selections. Instead, it should just put them into the collection in a way that we can render them to the sidebar/thumbnails and to the actual pages when they're added to the Tabula.Selections collection.

Oh, this works and it's so hot (at least on PDFs that support it!)


Extension not working on Windows

Extension is not working in VSCode on Windows.  PHPStan is started and reports issues found during analysis, but extension log shows no errors.  At a guess issue is caused by the split on colon in OutputParser since PHPStan output on windows will include a colon in the file path which the parser does not seem to cater for.
E.g.
C:\Projects\WebApp\view1_DoAction.php:95:Variable $genericError might not be defined.

Thanks for the bug report!


Multiple Files

Hi,
Nice library!
I was wondering if there would be anything wrong with using this library when using multiple files. I've successfully tried the following setup, but I'm not sure of there's anything wrong with it architecturally.
index.js
const cache = require( "./cache" ).default;
const otherFile = require('./other-file');

const test = () => {
	console.log(cache.get("test"))

	setTimeout(test, 500);
}

test();

other-file.js
const cache = require('./cache').default;

setTimeout(() => cache.set("test", {ok:true}), 2000)

cache.js
const NodeCache = require( "node-cache" );
module.exports.default = new NodeCache();

Result (as expected)
undefined
undefined
undefined
undefined
{ ok: true }
{ ok: true }
{ ok: true }
(...)

there is nothing wrong with your setup and thats exactly what nodecache is intended for 👍

Thanks for your reply!
Maybe it's a good idea to add a similar example to the readme.


Decouple API logic from networking

DO NOT MERGE This is just me continuing the conversation from here with a practical example of how I'd make this more testable.
Extracts the actual network implementation and makes the service focus on
request serialization and response parsing.
Tests don't require HTTP stubbing anymore, and are synchronous.
It provides a default Alamofire network implementation, but it could easily be
integrated with any other network layer.
As this is just a proof of concept, it doesn't do error handling very well, and
I put all the extension code inside SiteService.
Since "Services" only serialize requests and parse responses in this design, I'd probably rename them to "Endpoint" or something else.
cc @astralbodies @jleandroperez

Closing this PR for now; we'll address a refactor sometime in the near future.


Service is Certificates not Certificate

The service should be plural:
https://azuresdkdocs.blob.core.windows.net/$web/java/azure-security-keyvault-certificates/4.2.5/com/azure/security/keyvault/certificates/CertificateServiceVersion.html
This string has a missing s on Certifcate
The versions of Azure Key Vault Certificate supported by this client library.

This would require making a breaking change to the Certificates library, as it would require renaming a class in the public API

Ok, closing since the docs represent the Stable version that shipped which can't be changed


feat: display emoji Id from backend

Description

[x] display emojiId downloaded from backend when wallet is unlocked
[ ] prevent multiline emojiId, make the box scrollable

Motivation and Context
#257 (part)
How Has This Been Tested?

I think that we need to adjust the CopyBox in TariWallet. We can display emojis with separators |, but when user clicks on copy icon, it should use plain emojis without separator.
EDIT: Maybe we should even prevent text selection here? Because it's still possible to select text and use CTRL + C. Then, any click on the box could result in sending the content to the clipboard

done and done


error on installing jimp

Current Behavior
when i install jimp i get Unexpected end of JSON input while parsing near '...4,"npm-signature":"--'

Steps to Reproduce

Screenshots

Context

Jimp Version: 0.16.0
Operating System: windows 10
Node version: v12.18.0

Failure Logs

npm ERR!      C:\Users\User\AppData\Roaming\npm-cache\_logs\2020-08-11T06_19_50_794Z-debug.log```

[2020-08-11T06_28_03_416Z-debug.log](https://github.com/oliver-moran/jimp/files/5055161/2020-08-11T06_28_03_416Z-debug.log)

pretty sure it installs fine. if this is still happening please open another issue


Fix FormField implementation components TextFormField, DropdownButtonFormField, CupertinoTextFormFieldRow. The problem that their onChange() method cannot be executed when the parent Form component calls the reset() method

fixes https://github.com/flutter/flutter/issues/123009

code sample
```
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(useMaterial3: true),
      home: Example(),
    );
  }
}

class Example extends StatelessWidget {
  final _formKey = GlobalKey<FormState>();
  Example({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Form(
          key: _formKey,
          child: Column(
            children: [
              CupertinoTextFormFieldRow(onChanged: (value) {
                print("CupertinoTextFormFieldRow widget onChange execute");
              }),
              TextFormField(onChanged: (value) {
                print("TextFormField widget onChange execute");
              }),
              DropdownButtonFormField(
                items: const [
                  DropdownMenuItem(
                    value: "item1",
                    child: Text("item1"),
                  )
                ],
                onChanged: (value) {
                  print("DropdownButtonFormField widget onChange execute");
                },
              ),
              ElevatedButton(
                  onPressed: () {
                    _formKey.currentState?.reset();
                  },
                  child: const Text("reset")),
            ],
          )),
    );
  }
}

Thanks for the PR! Are you able to add a test for this?
Yes, tests have been added.
The Linux docs_test action check is not passing, but I'm not sure why.

Looks like there are still docs test failures, it mentions [onSubmitted].

@yeleibo Thanks for the contribution! Will you be able to continue working on this? It's totally fine if not; we can take it over (though it might take longer). I'm just asking because I'm trying to clean out our review queue.

Closing this PR because I filed https://github.com/flutter/flutter/pull/134295 based on the work done here.
Thanks @yeleibo for initiating this work!


[CONFIG] [Github Actions] Now use fixed version of Github Actions ima…

…ges.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (fccb37c) to head (3ad030e).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #18   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           10        10
  Lines          123       123
=========================================
  Hits           123       123

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[DNM] String processing crossmodule test

For testing https://github.com/apple/swift-experimental-string-processing/pull/746

Please test with following PR:
https://github.com/apple/swift-experimental-string-processing/pull/746
@swift-ci Please test


Gray area at the bottom of PulseUI MainView

Environment: iOS 15.0, iPhone 13 Pro Max and iOS 15.1, iPhone 11 Pro

If you open a particular request the area at the bottom enlarges.

I'm not familiar with SwiftUI behaviour, it could be related to it. Here we can see UISplitViewController (using lookin).

try https://github.com/kean/Pulse/pull/73


Install on frontier

Problem Description
Can you please provide install instructions for frontier machine in OLCF
Operating System
HPE Cray OS
CPU
4-core AMD “Optimized 3rd Gen EPYC” CPU
GPU
AMD Instinct MI250X
ROCm Version
ROCm 5.7.1, ROCm 5.6.0, ROCm 5.5.1
ROCm Component
No response
Steps to Reproduce
No response
(Optional for Linux users) Output of /opt/rocm/bin/rocminfo --support
No response
Additional Information
No response

Output of rocminfo attached.
frontier_rocminfo.txt


Upgraded to Nan 2.0.x

This patch rewrote mdns with Nan 2.0.x to support latest<EMAIL_ADDRESS>

Awesome job! @agnat I think we need Travis integration, would be nice to see it confirmed in real time.

Thanks @ghostoy. Nice job. I'm going to review it and get back with nits and comments. If any...
Regarding travis, I'd love to have CI too. But last time I checked I had the impression that they switch the account to full x-ray mode. That is they get permission to look at all repositories, including private ones, of all organizations I'm member with. That's to greedy, even if it is "only" metadata.
BUT, if there is a way to do this right, like founding an organization or adjusting permissions, &c... I'm open to it ;)

There is one deeper issue left. The exception (and return value) handling has seen so many changes that it finally is a little out of whack. The code has evolved from this:
  return throwError('Kaputt');

to this:
info.GetReturnValue().Set<v8::Value>(throwError("Kaputt"));
return;

... with intermediate versions not shown. I think we can refactor the code back to the first version, which removes a lot of clutter and greatly improves readability.
I know it's another large change, so I'm asking: @ghostoy, wanna give it another pass? Let me know what you think, then I'll sketch out what I have in mind...

Awesome!
Any reason to keep the return statement separate? I believe returning void like so return throwError(...); is perfectly legal and works just fine.
Also, add your name to the list of contributors in  package.json and the README.
Finally, please squash the changes into a single commit.
Oh, and what about the version number? Since NAN 2.0 drops support for old node versions we should probably bump major, too? @ronkorving?

It does not drop support for anything.
On Wednesday 02 September 2015 05:31:26 David Siegel wrote:

Awesome!
Any reason to keep the return statement separate? I believe returning void
like so return throwError(...); is perfectly legal and works just fine.
Also, add your name to the list of contributors in
[package.json](https://github.com/agnat/node_mdns/blob/master/package.json#
L36) and the
[README](https://github.com/agnat/node_mdns/blob/master/README.md#contribut
ors).
Finally, please squash the changes into a single commit.
Oh, and what about the version number? Since NAN 2.0 drops support for old
node versions we should probably bump major, too? @ronkorving?

Reply to this email directly or view it on GitHub:
https://github.com/agnat/node_mdns/pull/140#issuecomment-137058057

No? ... my bad. I'm sure you know best... ;)

Yeah I don't think major is needed.

@agnat I forget to make it into one statement during the refactoring throwX. :) I'll push another fix.

Thank @ghostoy!
Released as 2.2.10.


cannot run on noetic or c++ 14?

Have you solved it,  @karolmajek? I debugged LidarFeatureExtractor::FeatureExtract_with_segment and figure out that something wrong with the index in
data[point_num * 4 + 0] = point.x; data[point_num * 4 + 1] = point.y; data[point_num * 4 + 2] = point.z; data[point_num * 4 + 3] = point.intensity;
Another issue that I discovered is when I printed out the value of p.x, p.y. and p.z, they are all a same constant value.

No
Tried docker with 18.04, but I had a problem with X.
Finally I'm just waiting to check it on a different laptop with 18.04, melodic (I heard it was working on such machine)

I have met the same problem

Hi, friend. Have you solved this problem? I have the same problem

No, but I recommend you to try out an alternative FAST-LIO which is also good

this problem is caused by
some functions do not return a value.
function : PCSeg::DoSeg  ,FreeSeg      in  segment.cpp
3 function : ComputeError   in  Estimator.h

I had the same problem and solved exactly by what @zengzhiw said.

I had the same problem and solved exactly by what @zengzhiw said.
@zengzhiw
please, can you show how you do it?

Change C++ version in CMakeLists.txt into 14
After that, do what @zengzhiw said. Set return values for those functions.

I had the same problem and solved exactly by what @zengzhiw said.
@zengzhiw @HowoongJun
please, can you show how you do it?

Change C++ version in CMakeLists.txt into 14
After that, do what @zengzhiw said. Set return values for those functions.

I had the same problem and solved exactly by what @zengzhiw said.
@zengzhiw @HowoongJun
please, can you show how you do it?

Change C++ version in CMakeLists.txt into 14 After that, do what @zengzhiw said. Set return values for those functions.

I had fixed the cmakelist as is a quite common issue, but the return issue, I have not idea of programming, I really don't know how to do it. I asked to chatgpt , nice girl but the answer didn't work .

I had the same problem and solved exactly by what @zengzhiw said.
@zengzhiw @HowoongJun
please, can you show how you do it?

Change C++ version in CMakeLists.txt into 14 After that, do what @zengzhiw said. Set return values for those functions.

I had fixed the cmakelist as is a quite common issue, but the return issue, I have not idea of programming, I really don't know how to do it. I asked to chatgpt , nice girl but the answer didn't work . Would be great if someone can copy the lines, the file or a fork for people like me.
Thanks by answer

If you carefully analyze the LIO-Livox code, you can notice that return values of those functions are actually not used. This means that any return values are okay for running this code.
Just in case, if the function is declared in integer type (ex. int func()) the return type must integer, and if it is double, return type should be double.

I had the same problem and solved exactly by what @zengzhiw said.
@zengzhiw @HowoongJun
please, can you show how you do it?

Change C++ version in CMakeLists.txt into 14 After that, do what @zengzhiw said. Set return values for those functions.

I had fixed the cmakelist as is a quite common issue, but the return issue, I have not idea of programming, I really don't know how to do it. I asked to chatgpt , nice girl but the answer didn't work . Would be great if someone can copy the lines, the file or a fork for people like me.
Thanks by answer

If you carefully analyze the LIO-Livox code, you can notice that return values of those functions are actually not used. This means that any return values are okay for running this code temporary. Just in case, if the function is declared in integer type (ex. int func()) the return type must integer, and if it is double, return type should be double. Therefore, this means that if the function is declared like this: int func(), possible code for return value is : return 0; int func(){ return 0; }

Thanks for your help sir , it looks compiled and it works in some way. but maybe I did not well as I cannot see any point in the topic /livox_full_cloud_mapped , does this topic works in your setup?, in RVIZ it says "Failed to transform from frame [/world] to frame [livox_frame] or [/world] depending what I use in the as global frame,(world or livox_frame).
Can anyone if that is a expected behaviour.

I had the same problem and solved exactly by what @zengzhiw said.
@zengzhiw @HowoongJun
please, can you show how you do it?

Change C++ version in CMakeLists.txt into 14 After that, do what @zengzhiw said. Set return values for those functions.

I had fixed the cmakelist as is a quite common issue, but the return issue, I have not idea of programming, I really don't know how to do it. I asked to chatgpt , nice girl but the answer didn't work . Would be great if someone can copy the lines, the file or a fork for people like me.
Thanks by answer

If you carefully analyze the LIO-Livox code, you can notice that return values of those functions are actually not used. This means that any return values are okay for running this code temporary. Just in case, if the function is declared in integer type (ex. int func()) the return type must integer, and if it is double, return type should be double. Therefore, this means that if the function is declared like this: int func(), possible code for return value is : return 0; int func(){ return 0; }

Thanks for your help sir , it looks compiled and it works in some way. but maybe I did not well as I cannot see any point in the topic /livox_full_cloud_mapped , does this topic works in your setup?, in RVIZ it says "Failed to transform from frame [/world] to frame [livox_frame] or [/world] depending what I use in the as global frame,(world or livox_frame). Can anyone say me if that is a expected behaviour and it that topic works for you?

There is two way to solve that issue.
First, inside rviz window "Global Options", you can set frame. Change "world" into "/world"
Second method is more fundamental solution. Inside code lio/PoseEstimation.cpp, change 513rd line "/world" into "world"

thank you sir , very kind, I will try in a while, I hope this will help others.

I had the same problem and solved exactly by what @zengzhiw said.
@zengzhiw @HowoongJun
please, can you show how you do it?

Change C++ version in CMakeLists.txt into 14 After that, do what @zengzhiw said. Set return values for those functions.

I had fixed the cmakelist as is a quite common issue, but the return issue, I have not idea of programming, I really don't know how to do it. I asked to chatgpt , nice girl but the answer didn't work . Would be great if someone can copy the lines, the file or a fork for people like me.
Thanks by answer

If you carefully analyze the LIO-Livox code, you can notice that return values of those functions are actually not used. This means that any return values are okay for running this code temporary. Just in case, if the function is declared in integer type (ex. int func()) the return type must integer, and if it is double, return type should be double. Therefore, this means that if the function is declared like this: int func(), possible code for return value is : return 0; int func(){ return 0; }

Thanks for your help sir , it looks compiled and it works in some way. but maybe I did not well as I cannot see any point in the topic /livox_full_cloud_mapped , does this topic works in your setup?, in RVIZ it says "Failed to transform from frame [/world] to frame [livox_frame] or [/world] depending what I use in the as global frame,(world or livox_frame). Can anyone say me if that is a expected behaviour and it that topic works for you?

There are two ways to solve that issue. First, inside rviz window "Global Options", you can set frame. Change "world" into "/world"
Second method is more fundamental solution. Inside code lio/PoseEstimation.cpp, change 513rd line "/world" into "world"

After tested , both solutions non worked. Anything I do , it will show world instead /world, I modified the rviz.cfg too, and removed from the launch, it always will say world instead world. In every part of any file , I checked all files and there is not more files with the word "world" I'm going to make, maybe there is missing a publisher por world no idea, Im going to try make a TF stacking publisher in the .launch /world to /livox_frame

I tried to revise suspecious part, then I needed to add return in some code; then odometry and path have been updated.
https://github.com/ixs-yuichiro-okui/LIO-Livox/tree/noetic
Simply, some function in segment.cpp and estimator.h didn't own return declaration.
estimator.h some function should return error value but nothing in previous code.

Environment

Name
Value

OS
Ubuntu 20.04 with VirtualBox 6.1

ROS
Noetic

CPU Processor Number
6 CPUs

我noetic 运行的特别卡，把IMU去掉才能实时运行，大佬怎么这是为什么阿


Editor ui fixes

@xavijam could you take a look?

Fix https://github.com/CartoDB/cartodb/issues/7820

Fix https://github.com/CartoDB/cartodb/issues/7884

Fix https://github.com/CartoDB/cartodb/issues/7829

Add animation for slider

:+1:


Replace network_mode: host from docker-compose.yml

network_mode: host isn't compatible with OSX.  Use alternatives such as Docker linking.

This has been removed.


Show warning for username mismatch in credential popup and remote URL

When a repository's remote URL contains an explicit username and the user enters a different username in the credentials popup, the password doesn't get saved to the credential store with the URL's username (as it should IMO)
Showing a message telling the user to consider changing the URL's username or removing it should improve that experience
For context, see #227

Alternatively, pre-fill and grey out the username field when the URL contains a username


Testing jest-playwright

https://github.com/mmarkelov/jest-playwright/issues/1#issuecomment-583255213

I can start with that later. Thought first about a stub test to launch the browsers, open a html file and check if the heading is equal to an expected one.

Seems to be also done right? @mmarkelov
Or do you want to cover some other functionalities?

@mxschmitt I suppose we can close it, cause I opened this issue for creation just starter tests


Initial implementation of accesskey controller

This implements the controller, but it has not been wired to a real bitbucket server rest API client yet.

cc @larhauga


fixed typo in player message

changed uncredible to incredible

That's better indeed! Thank you for contributing.


Removal of namespaces after multiclusterapp is deleted is not working

Lot of changes/fixes have gone in for multiclusterapp controller, and one of them seems to have fixed this. Closing this.


Don't run CI on Node 0.10

It's out of maintenance and we already broke it by updating Lerna version which is incompatible.
So might as well stop testing that we gracefully crash in it.

Instead of a PR reverting it, shall we just use the shiny Revert button github provides?

Sure (that'll create a PR I think)

Ah, that was majorly uneventful. I was expecting some fireworks and auto merge or something.


Add light/dark mode in wavy footer

Issue Type:

[ ] Bug Report
[x] Feature Request
[ ] Documentaion

Describe the bug

Possible solution

Describe the solution you thought of.

Screenshots

If applicable, add screenshots to help explain your problem.

hyy @arpit456jain ,assign this to me

go ahead @singlapriyanka315

@arpit456jain  could u please assign it to me ?

@ishika1501 r u gssoc'22 participant?

Sir i have already completed this task , so can u pls assign it to me

Hey, I'm GSSOC'22 participant. If this issue is still unresolved kindly assign this to me.

Hey, I'm GSSOC'22 participant. If this issue is still unresolved kindly assign this to me.
i work on this issue and i solved this issue if need i have to  add my pull request.
Plz ,assign me for this issue.

Hey, I'm GSSOC'22 participant. If this issue is still unresolved kindly assign this to me.
i work on this issue and i solved this issue if need i have to add my pull request.
Plz ,assign me for this issue.

Sir i have already created it ,so please can u assign this task to me

I created toggle button for light and dark theme
Created a Animated wave for footer and it will change its color according to theme

sorry but we have to follow the first come first serve if she is unable to do it then i can assign u meanwhile check other templates if u want to add dark mode in any of it then make a issue i will assign u @HarshitShukla01

ok sir no problem
Although this what I made
https://user-images.githubusercontent.com/75080333/155930702-f1847e18-4e26-4b36-87f0-46bdc7013ee0.mp4

sure sir , thankyou @arpit456jain

@ishika1501 ?


NodeJS multi-thread support

Current NodeJS bindings are not able to run in a multi-threaded setup with worker_threads reliably. Most of the times the parent process crashes with a segmentation fault. I'm working on creating a minimal reproducible POC that always crashes, but it's proving very difficult.
First of all, could you say if current SWIG NodeJS bindings are safe to multi-thread? There's some directions about to load the same bindings in multiple threads in the NodeJS docs. I wonder if the current SWIG setup achieves any of this directions. https://nodejs.org/api/addons.html#addons_worker_support
In our particular case I would be happy with a threaded setup where threads don't share any resources and only communicate with the main thread through messages.

As I said yesterday. "There is a remaining issue with Workers, and it's being worked on." In other words, the problem is recognized and even understood, so you don't have to spend time on PoC, but be a little bit patient:-) Meanwhile require("blst") in the main script before you create workers, even if the main script doesn't use it, this minimizes chances of crash at startup...

Thanks! Would you mind sharing a bit about your understatement of the problem?

Meanwhile require("blst") in the main script before you create workers, even if the main script doesn't use it, this minimizes chances of crash at startup...

A dirty work-around that seems to work consistently is to duplicate the .node file so each file is required by only one thread

The problem is two-fold, a) initialization of SWIG private structures is not MT-safe, b) it's not sufficient to make init context-aware, it has to be even isolate-aware. First problem manifests as crashes at require time and can be mitigated by require-ing blst before creating workers. I have solution for it. Second problem customarily manifests as crash when a thread or whole script finishes. This one is being worked on. Duplicating .node file should indeed do the trick for both, but obviously suboptimal.

@dapplion, could you test https://github.com/swig/swig/pull/1973?

@dapplion, could you test swig/swig#1973?

Didn't had a chance to test yet. Will update then, let me know if you have any updates too. Thanks!

@dapplion, could you test swig/swig#1973?

Early tests seem to work fine! Thank you so much for pushing this :tada: Will work on POC inside Lodestar to confirm it's all good

This is what I customarily call a "wrong-attitude" question:-) When it comes to software, question shouldn't be if something is possible, but how to achieve the goal. So let's start with the goal. Or rather take next step from stated goal to send pairing context between workers. What is possible to send? I mean I don't actually know. Is it possible to send ArrayBuffer-s? To express it in more programmer-friendly manner would following be useful/usable in terms of Typescript prototype:
--- a/bindings/node.js/blst.hpp.ts
+++ b/bindings/node.js/blst.hpp.ts
@@ -190,7 +190,8 @@ export interface Pairing {
     aug?: bytes
   ): BLST_ERROR;
   commit(): void;
-  merge(ctx: Pairing): BLST_ERROR;
+  asArrayBuffer(): ArrayBuffer;
+  merge(ctx: Pairing | ArrayBuffer): BLST_ERROR;
   finalverify(sig?: PT): boolean;
 }

One can probably even say that merge could accept only ArrayBuffer...

What is possible to send?

Primitive types, objects and arrays of primitive types and TypedArray instances (Buffer, ArrayBuffer, Uint8Array, etc). Stricter definition is arguments consumable by this function https://nodejs.org/api/v8.html#v8_v8_serialize_value

Is it possible to send ArrayBuffer

Yes!

To express it in more programmer-friendly manner would following be useful/usable in terms of Typescript prototype

This API sketch would work well yes.

Some questions to study the viability

Do you know what is the cost in CPU cycles (or some other metric) of turning the Pairing into an ArrayBuffer and vice-versa?
What is the expected size in bytes of a Pairing context (as a function of signatures aggregated if variable)

To preface my question I'm wondering what's the optimal strategy to validate a large enough amount of signatures in Javascript / Typescript. A naive approach is to just slice the signature set and divide into workers, then add the resulting booleans.
However, seeing that Go, Rust and Nim use the same strategy it would be worth studying the viability: thus my petition get the Pairing context as raw bytes.
It's important to note that in Javascript the communication between threads has significant lag, between 0.2 - 0.05 ms one way.  However a SharedArrayBuffer can help for big payloads.
Maybe a better strategy would be to do the multi-threading in C land, inside the binding, where inter-thread communication is orders of magnitude faster and sharing memory is okay. So, do you know if it's possible to generate native binding for Node with SWIG capable of doing multi-threading themselves?

This API sketch would work well yes.

Then add this at the end of SWIGJAVASCRIPT_V8 section in blst.swg.
// allow Pairing context to be passed and merged as ArrayBuffer...
%extend blst::Pairing {
    blst::Pairing* asArrayBuffer() { return $self; }
}
%typemap(out) blst::Pairing* asArrayBuffer() {
    size_t sz = blst_pairing_sizeof();
    auto ab = v8::ArrayBuffer::New(v8::Isolate::GetCurrent(), sz);
    memcpy(ab->GetData(), $1, sz);
    $result = ab;
}
%typemap(in) (const blst::Pairing* ctx) %{
    if ($input->IsArrayBuffer()) {
        auto ab = v8::Local<v8::ArrayBuffer>::Cast($input);
        if (ab->ByteLength() < blst_pairing_sizeof())
            SWIG_exception_fail(SWIG_TypeError, "in method '$symname', "
                                                "<ArrayBuffer> is too short");
        $1 = reinterpret_cast<$1_ltype>(ab->GetData());
    } else {
        // based on SWIGTYPE* in $SWIG_LIB/typemaps/swigtype.swg
        void *argp = nullptr;
        int res = SWIG_ConvertPtr($input, &argp, $descriptor, $disown);
        if (!SWIG_IsOK(res)) {
            SWIG_exception_fail(SWIG_ArgError(res), "in method '$symname', "
                                                    "argument $argnum of type '$type'");
        }
        $1 = reinterpret_cast<$1_ltype>(argp);
    }
%}

If you confirm that it's working as expected, I'll push to the repository...

Do you know what is the cost in CPU cycles (or some other metric) of turning the Pairing into an ArrayBuffer and vice-versa?

I don't quite follow. If you want to be in the business of counting CPU cycles, how come you ended up on Javascript side? :-) :-) :-) But on serious note, I can't really afford delving into this to the depth you might expect. As you can see the overhead cost is allocating some memory from V8 heap plus memcpy, and checking type and casting on the receiving side. And that's about as far as I'd go.

What is the expected size in bytes of a Pairing context (as a function of signatures aggregated if variable)

It's always ~3K. Formally speaking one can truncate commit-ted Pairing context to less than 1K, but I'd rather not go there, not without good reason.

If you want to be in the business of counting CPU cycles, how come you ended up on Javascript side?

🙃🙃 I'll just say that I'm learning Rust..
In a serious note, our node spends between 50-80% of total CPU time doing BLS sig verification, so if we have to spend time optimizing something, this is a great target. Throwing all the work to a thread will be a massive improvement too.

the overhead cost is allocating some memory from V8 heap plus memcpy, and checking type and casting on the receiving side. And that's about as far as I'd go.

That's good enough thanks!

It's always ~3K.

Thanks, I don't think it would be a problem at all then, no need to truncate.
I'll report back when I can do a test with your SWIG snippet.
@dot-asm Is your branch swig/swig#1973 safe to use in production?

@dot-asm Is your branch swig/swig#1973 safe to use in production?

I personally would say so, yes.

What's the standing with asArrayBuffer add-on interface?
On related note, my impression is that passing ArrayBuffer between threads doesn't actually involve any data duplication or serialization. Or rather I see no reason why it would have to. ArrayBuffer data storage appears to be allocated off V8 pool, and it can be detached and reattached. So that transfer of an ArrayBuffer can be achieved by passing a pointer to the off-pool storage...

What's the standing with asArrayBuffer add-on interface?
On related note, my impression is that passing ArrayBuffer between threads doesn't actually involve any data duplication or serialization. Or rather I see no reason why it would have to. ArrayBuffer data storage appears to be allocated off V8 pool, and it can be detached and reattached. So that transfer of an ArrayBuffer can be achieved by passing a pointer to the off-pool storage...

Yeah that sounds right. I haven't had time to implement the transfer Pairing strategy, so can't comment on that front yet. I did some benchmarks and even tho transfering ArrayBuffer to threads is done with pointers only there's still a time cost in message passing, which is around 1ms per one-way transfer in a few machines I've tested.
Due to that the current strategy is to bundle as many signature sets as possible to reduce the communication between workers and the main thread without under-utilizing all threads.

there's still a time cost in message passing, which is around 1ms per one-way transfer in a few machines I've tested.

"1ms" as in "millisecond"? If so, then it doesn't sound right. LAN is faster than that. If real, then node should be notified...

there's still a time cost in message passing, which is around 1ms per one-way transfer in a few machines I've tested.

"1ms" as in "millisecond"? If so, then it doesn't sound right. LAN is faster than that. If real, then node should be notified...

:laughing: yeah it's ridiculous but that's the state of the art.

I can run it, but I can't confirm you're not crazy:-):-):-) Not qualified, you know...:-):-):-)
But on serious note! For starters, I don't actually see 1ms:
0 main -> worker 0.7323275699999999 ms
0 worker -> main 0.11640998600000001 ms
1 main -> worker 0.429437391 ms
1 worker -> main 0.123062587 ms
2 main -> worker 0.338589356 ms
2 worker -> main 0.13179326133333333 ms
3 main -> worker 0.295062732 ms
3 worker -> main 0.1400632265 ms
...

However, I reckon that these are not actually representative numbers. First, it's appropriate to disregard first results, because you have to give JIT compiler a chance to kick in. Secondly, as you use setTimeout, and with increasing timeout value, you allow processor to ramp down operating frequency, which would manifest itself as operations appearing slower. This is apparently why main-to-worker averages slower than worker-to-main. I mean setTimeout falls asleep prior main-to-worker, frequency drops, but then, by the worker-to-main time, it's increasing... Either way, if I fix the frequency and discount results from the first iteration of the outer loop, I get following:
1 main -> worker 0.057152096 ms
1 worker -> main 0.060167767999999996 ms
2 main -> worker 0.06846348 ms
2 worker -> main 0.062043496 ms
3 main -> worker 0.07300487333333333 ms
3 worker -> main 0.06437548666666666 ms
...

In other words messages are passed in ~60μs, "μs" as in "microseconds," at the nominal processor frequency. It's still arguably higher than expected, but I wouldn't be surprised that it's an adequate result for the snippet in question. I mean I would imagine that the process.hrtime() output gets serialized to JSON, which would take its toll...

can run it, but I can't confirm you're not crazy:-):-):-) Not qualified, you know...:-):-):-)

Actually, you are super qualified to disregard my initial results! Thanks for taking the time to analyze it, definitely now things make sense. Happy to know the latency is low in practice.

Just in case for reference, I used node v14.16. No, it doesn't mean that I know if there were some relevant improvements, or if prior versions were "bad." It was just a convenient choice.


API links in menu and main page lead to different GraphQL UIs

The API link in the top-right menu leads to a shiny new /api route within the single-page app, but the Access data with our GraphQL API link under Getting started on the home page leads to the older page exposed by the Scala-based API server.
I'd noticed the new GraphiQL browser on https://platform.opentargets.org/api and tried to navigate back to it, but when I scrolled down the home page and clicked the link there, I found myself on https://api.platform.opentargets.org/ instead, looking at the three-link page that the Scala code serves, including the to-be-phased-out GraphQL Playground.
I expected to reach same page via both links, probably the newer GraphiQL view of the React app.
To Reproduce
Steps to reproduce the behaviour:

Go to https://platform.opentargets.org/
Click on API in the top-right menu
Find yourself on an interactive GraphQL browser page with the URL https://platform.opentargets.org/api, that still shows the platform's footer and toolbar
Go back
Scroll down to the heading Get started with the Platform
Click on the second icon under that heading, labelled Access data with our GraphQL API
Find yourself on a much simpler page with the URL https://api.platform.opentargets.org/, showing just three links to paths on that same host.

Do feel free to close if this is not a bug per se, and my expectations were wrong.

Ticket will be scoped as part of the 22.02 release.
@LucaFumis can you please adjust the link on the homepage so that the "Access data with our GraphQL API" link points to https://platform.opentargets.org/api?

issue addressed


Can't run when kernal_size is even

https://github.com/thuml/Autoformer/blob/e116bbcf41f537f4ab53d172d9babfc0a026330f/layers/Autoformer_EncDec.py#L31

You need to change the padding protocol to make the series length invariant after the moving average.


Improving example main.cpp to handle oob() case

Hi, @SenRamakri and @deepikabhavnani
Current example is focused on just sending AT-commands to the target serial end point.
Any chance we enable AT-command receiver example using oob() callback registration?
My important customer wants to reuse Mbed-OS AT-cmd parser for their NB-IoT AT-command server.
In other words, Mbed target board receiving AT-command need to use oob() calls and parse AT-commands.
My very important customer would like to have an example on this feature so that they don't have to reinvent the wheel.
Thanks,

Hi,
I worked on improving the server-side code and got something working in this comment.
Later, I will try to make a PR. Thanks

Thanks and good work - @andrewc-arm

BTW, this is the server-side code PR made. https://github.com/ARMmbed/mbed-os-example-atcmdparser/pull/4


cc33

[x] Top-level README “Table of Contents” is updated
 - [x] README for this challenge is complete
       - [x] Summary, Description, Approach & Efficiency, Solution
       - [x] Picture of whiteboard
       - [x] Link to code
 - [x] Feature tasks for this challenge are completed
 - [x] Unit tests written and passing
       - [x] “Happy Path” - Expected outcome
       - [x] Expected failure
       - [x] Edge Case (if applicable/obvious)


[kudu1, bionic] Enable keyboard shortcut on windows

Want to close a window by shift + f + c(lose) but on kudu1 this has been disabled since it got upgraded to Bioninc (even before #370).

Switched (back) to GNOME FlashBack as recommended in https://askubuntu.com/a/1073932/24203 and this is no longer an issue.


Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)

I've the following error. I'm using a conda installation of tensorflow. I'm struggling to try to use it with my GPU.
Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100).  If using a binary install, upgrade your CuDNN library to match.  If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
F tensorflow/core/kernels/conv_ops.cc:526] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
Aborted (core dumped)

which nvcc returns
/usr/local/cuda-7.5/bin/nvcc
nvcc version returns
Cuda compilation tools, release 7.5, V7.5.17
I tried downloading CuDNN v5.1 and did the following but it didn't work either
sudo cp lib* /usr/local/cuda-7.5/lib64/
sudo cp include/cudnn.h /usr/local/cuda-7.5/include/
sudo ldconfig

I tried on the other folder too
sudo cp lib* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo ldconfig

@ritchieng Please provide info on your environment.  I.e. fill out the template that's provided when you click on the green "New issue" button.  Thanks!

Automatically closing due to lack of recent activity. Please reopen when further information becomes available.

E tensorflow/stream_executor/cuda/cuda_dnn.cc:368] Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5105 (compatibility version 5100).  If using a binary install, upgrade your CuDNN library to match.  If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
F tensorflow/core/kernels/conv_ops.cc:526] Check failed: stream->parent()->GetConvolveAlgorithms(&algorithms)
Abort trap: 6

Mac: 10.11.6
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Sun_Sep_18_22:16:08_CDT_2016
Cuda compilation tools, release 8.0, V8.0.46
GPU Driver Version: 10.10.14 310.42.25f02
GPU: GTX 750M
Python 2.7.10
tf.version ='0.11.0rc1'


Annotate references with the name of the function in which they occur

When performing Find References, it would be really useful if each reference was annotated with the name of the functin in which the reference occurs (in addition to the name of the file, which is already there).

Why can't we just add the information to TextDocumentPositionParams (or some derived type that the references message uses)? This approach eliminates the need for subclass serialization.

TextDocumentPositionParams is what the request message uses. We need a place to put the information in the response message.

this requires more info in QueryLocation and uses. I recently changed Id from size_t to uint32_t

It looks like the necessary information is available from libclang via CXIdxEntityRefInfo::container. Currently, we only use it for functions, to populate IndexFuncRef::id inside IndexFunc::callers. To implement this, we will need to store the container for variables and types as well.

For a symbol occurrence (uses variables in query.h and indexer.h), what we need to record:

Range range;
Maybe<Id<void>> parent; container information
QueryFileId path;
SymbolKind parent_kind  for a variable, the container may be either a type or a function. there should be someway to differentiate them.
CXSymbolRole read/write/call ...

QueryFileId path; looks to me the most useless one, but we may need to encode the file information in Query{Func,Type,Var}.

I filed an LSP spec issue for this: https://github.com/Microsoft/language-server-protocol/issues/396.

Renamed {Index,Query}File::callers to uses because the uses can also be f = &foo;
360a4ca0ebf057ff4b32c66bb8ccd2f121d79738 added config->extension.referenceContainer
but someone should turn all
  Maybe<typename F::Range> definition_spelling;
  Maybe<typename F::Range> definition_extent;

to
Use (because Use records the lexical parent information)

The uses of Query{Func,Type,Var} have been unified to std::vector<Use> uses;
struct IndexFunc {
...
  std::vector<Use> uses;
};

Use::kind Use::id represents the lexical parent.


basic webpack setup for simulator

basic webpack setup for simulator
bunch of additions for refactoring
modules refactored into individual classes
refactored
refactored
Fixes #
Describe the changes you have made in this PR -
Screenshots of the changes (If any) -
Note: Please check Allow edits from maintainers. if you would like us to assist in the PR.

Coverage decreased (-0.2%) to 84.223% when pulling b1540a38e7dd188b1b77da27781562070becb721 on shubhankarsharma00:setting-up-webpacker into 3553368dc7e37c6ceaf64c55c576079f6e81c484 on CircuitVerse:master.

Very good progress here

@tachyons I thought you used expose-loader instead of provide plugin on purpose. Or do you mean something else by using plugin?