Better path presentation in quick open window

The way a file path is being presented in quick open window makes it sometimes hard to realise which file to pick. Let's consider two files:

some_project/some_longer_pathsome_longer_pathsome_longer_pathsome_longer_path/fruits/apples/Main.js
some_project/some_longer_pathsome_longer_pathsome_longer_pathsome_longer_path/fruits/bananas/Main.js

If we type "Main" in searchbox the list of results shows only begining of paths and the filenames and it looks ... excactly the same. At this point we have to randomly pick one of the files to check if it's the one we'd like especially since there's no preview editor triggered while navigating through result list (#8939).

The solution is to present the ending of a path rather than begining, just like it's done in Sublime Text (please notice where ellipsis is added):

Additionally path could be presented in a separate line for more clarity.

Previously requested at #58040 but didn't receive enough upvotes.

The proposed solution is different though. Give it a chance :D

https://github.com/microsoft/vscode/issues/58040#issuecomment-419849427 suggested smarter positioning of ellipsis. At the moment I think we're just getting default quickpick handling of these.
Two lines per entry would halve the number visible at a time.
Are you aware that by pressing RightArrow you can open the selected item without also closing the list? Perhaps a workaround for your case.

I'm aware of that but still it's not handy, since it doesn't close editor after switching to next result. I have many files in my project with the same names. If I check 10 results this way, I have to close 9 editors after finding the right file ... not handy.

A bit easier if you use Ctrl+RightArrow to open the candidates in a new editor group, then drag the correct one to your other group, then use Close All on the second group.
I'm not arguing against an improvement here, just offering ideas to work around current limitations.

I feel like we could introduce a setting that puts the file path on a second line rather than all in one line for users who do want more context.
Also, I'm curious @bpasero... have there been any experiments around showing the end of the path over showing the beginning or a combo like what Sublime does? I imagine the quick pick API doesn't have a way to do this today...

have there been any experiments around showing the end of the path over showing the beginning or a combo like what Sublime does

No, mainly because there is no native support from browsers to put the "..." in the middle or at the end, would be great to have that though for performance reasons. Otherwise we need to draw these labels one by one and measure the width they consume. Might not be very efficient.

So we can get the ellipsis on the left in pure CSS using:
https://codepen.io/tylerleonhardt/pen/BamMEdY
this is a decent option (behind a setting, I think)
There is also this pure CSS way to put the ellipsis in the middle... but I don't think it looks good because it clips the characters:
https://jsfiddle.net/93ymy3oL/
I guess we could do like
start/of/path… …/end/of/path.txt

that would fix the clip issue…but it seems like not a great use of space in an already cramped area.

Ellipsis on the left is a good option :) And configurable file path in a second line too.

Yeah I think that's reasonable

is anyone working on this issue？ maybe I can try  to resolve this problem.

Go for it!
You'll need to look at my above CodePen on how to do the left ellipsis.
The css for the quick pick is here:
https://github.com/microsoft/vscode/blob/main/src/vs/base/parts/quickinput/browser/media/quickInput.css
Here is where we add classes to the quick pick:
https://github.com/microsoft/vscode/blob/main/src/vs/base/parts/quickinput/browser/quickInputList.ts#L113
And if you can get to a point where you have the ellipsis on the left, then we can talk about making that behavior configurable.

Go for it!
You'll need to look at my above CodePen on how to do the left ellipsis.
The css for the quick pick is here:
https://github.com/microsoft/vscode/blob/main/src/vs/base/parts/quickinput/browser/media/quickInput.css
Here is where we add classes to the quick pick:
https://github.com/microsoft/vscode/blob/main/src/vs/base/parts/quickinput/browser/quickInputList.ts#L113
And if you can get to a point where you have the ellipsis on the left, then we can talk about making that behavior configurable.

thanks for 有

Go for it!
You'll need to look at my above CodePen on how to do the left ellipsis.
The css for the quick pick is here:
https://github.com/microsoft/vscode/blob/main/src/vs/base/parts/quickinput/browser/media/quickInput.css
Here is where we add classes to the quick pick:
https://github.com/microsoft/vscode/blob/main/src/vs/base/parts/quickinput/browser/quickInputList.ts#L113
And if you can get to a point where you have the ellipsis on the left, then we can talk about making that behavior configurable.

Thank you for the information you provide. I will research this issue.

Go for it!
You'll need to look at my above CodePen on how to do the left ellipsis.
The css for the quick pick is here:
https://github.com/microsoft/vscode/blob/main/src/vs/base/parts/quickinput/browser/media/quickInput.css
Here is where we add classes to the quick pick:
https://github.com/microsoft/vscode/blob/main/src/vs/base/parts/quickinput/browser/quickInputList.ts#L113
And if you can get to a point where you have the ellipsis on the left, then we can talk about making that behavior configurable.

Thank you for the information you provide. I will research this issue now. I'm a little busy the other day.

@TylerLeonhardt Thank you for the information you provide. I will research this issue now. I'm a little busy the other day.

I have changed the code to add the requested feature. May I request a pull request.

@luoriyuhui21 Hiho, are you still working on this issue? If not or if you are struggling I will also take a deeper look. Thx

I'm not familliar with development process on github, but it's seems there's already a solution for the described problem and it only needs aprovals? Meanwhile this issue stuck for almost 2 years ... Can anyone move it forward?

I would suggest that if two options are identical for the number of visible characters, there should be a first ellipsis centered within the visible characters, fast-forwarding to the first unique character. (It's a simple "two-pointer" algo.)
I am trying to get the npm build running on my local machine so I can contribute, but I have had no success so far. However, anyone can take my idea and run with it.


[Snyk] Fix for 69 vulnerabilities

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `maven` dependencies of this project.
Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

jobs/pacman-tenable-enricher/pom.xml

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Upgrade
Breaking Change
Exploit Maturity
Reachability

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1009829
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1047324
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1052449
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1052450
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1054588
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056414
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056416
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056417
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056418
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056419
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056420
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056421
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056424
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056425
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056426
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1056427
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-1061931
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-174736
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

525/1000  Why? Has a fix available, CVSS 7.5
Denial of Service (DoS) SNYK-JAVA-COMFASTERXMLJACKSONCORE-2421244
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

520/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 5.9
Denial of Service (DoS) SNYK-JAVA-COMFASTERXMLJACKSONCORE-3038424
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

670/1000  Why? Proof of Concept exploit, Is reachable, Has a fix available, CVSS 5.9
Denial of Service (DoS) SNYK-JAVA-COMFASTERXMLJACKSONCORE-3038426
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
Reachable

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-31507
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-31573
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-32043
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-32044
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-32111
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

520/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 5.9
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-450207
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

705/1000  Why? Mature exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-450917
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Mature
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-455617
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-467014
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

675/1000  Why? Mature exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-467015
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Mature
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-467016
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-469674
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-469676
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-471943
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-472980
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-540500
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-548451
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-559094
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-559106
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-560762
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-560766
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-561362
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-561373
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

630/1000  Why? Proof of Concept exploit, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-561585
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-561586
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-561587
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-564887
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-564888
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-570625
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-572300
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-572314
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-572316
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

555/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-6056407
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

780/1000  Why? Proof of Concept exploit, Is reachable, Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-608664
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
Proof of Concept
Reachable

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72445
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72446
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72447
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72448
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72449
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72450
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72451
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72882
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72883
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

563/1000  Why? Has a fix available, CVSS 8.1
Deserialization of Untrusted Data SNYK-JAVA-COMFASTERXMLJACKSONCORE-72884
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

485/1000  Why? Is reachable, Has a fix available, CVSS 3.7
Information Exposure SNYK-JAVA-COMMONSCODEC-561518
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
Reachable

540/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 5.3
Allocation of Resources Without Limits or Throttling SNYK-JAVA-IONETTY-6483812
com.amazonaws:aws-java-sdk:  1.12.290 -> 1.12.687
No
Proof of Concept
No Path Found

415/1000  Why? Has a fix available, CVSS 5.3
Improper Input Validation SNYK-JAVA-ORGAPACHEHTTPCOMPONENTS-1048058
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
No Path Found

565/1000  Why? Is reachable, Has a fix available, CVSS 5.3
Directory Traversal SNYK-JAVA-ORGAPACHEHTTPCOMPONENTS-31517
com.amazonaws:aws-java-sdk-core:  1.12.239 -> 1.12.687
No
No Known Exploit
Reachable

(*) Note that the real score may have changed since the PR was raised.
Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Deserialization of Untrusted Data
🦉 Denial of Service (DoS)
🦉 Allocation of Resources Without Limits or Throttling
🦉 More lessons are available in Snyk Learn

Checkmarx One – Scan Summary & Details – c60bc450-7cfb-4704-9c29-b569d811641a
New Issues

Severity
Issue
Source File / Package
Checkmarx Insight

CVE-2023-52428
Maven-com.nimbusds:nimbus-jose-jwt-9.8.1
Vulnerable Package

CVE-2024-22243
Maven-org.springframework:spring-web-5.0.8.RELEASE
Vulnerable Package

CVE-2024-22257
Maven-org.springframework.security:spring-security-core-5.0.7.RELEASE
Vulnerable Package

CVE-2024-22259
Maven-org.springframework:spring-web-5.0.8.RELEASE
Vulnerable Package

CVE-2024-23672
Maven-org.apache.tomcat.embed:tomcat-embed-core-8.5.32
Vulnerable Package

CVE-2024-23672
Maven-org.apache.tomcat.embed:tomcat-embed-websocket-8.5.32
Vulnerable Package

CVE-2024-29180
Npm-webpack-dev-middleware-5.3.0
Vulnerable Package

CVE-2024-24549
Maven-org.apache.tomcat.embed:tomcat-embed-core-8.5.32
Vulnerable Package


Support for authorization configuration

Follow up from #61: Added configuration options where developers can define client ID and redirect URL. Added static redirection handler static file. It can be served in the same way as UI and JSON schema. Added test.

Can this go in a new beta version? I would like to try and use this functionality @vitalybibikov

It is now, please check it => https://www.nuget.org/packages/AzureExtensions.Swashbuckle/3.3.1-beta


Better error logging for quota limit

Drive API seems to have a daily limit, which is hit a lot with the full tests, (clasp create is called 10 times for every PR).
This changes the error message from Error creating script. to Rate limit exceeded. Check quota. so that we know when this happens if builds fail.
Looks like I can request a higher quota here: https://support.google.com/code/contact/drive_quota?
but it's unclear what to put for Project ID in the form..
Signed-off-by: campionfellin<EMAIL_ADDRESS>
[ ] npm run test succeeds.
[x] npm run lint succeeds.
[ ] Appropriate changes to README are included in PR.

Coverage decreased (-32.5%) to 27.298% when pulling 80e89046a2746c04312b674ae812e2fbcb0b67e1 on campionfellin:quota-limit into 069852fed159cee5455f3548fb437105498fe9f0 on google:master.

Coverage decreased (-32.5%) to 27.298% when pulling 80e89046a2746c04312b674ae812e2fbcb0b67e1 on campionfellin:quota-limit into 069852fed159cee5455f3548fb437105498fe9f0 on google:master.

Coverage decreased (-32.5%) to 27.298% when pulling 80e89046a2746c04312b674ae812e2fbcb0b67e1 on campionfellin:quota-limit into 069852fed159cee5455f3548fb437105498fe9f0 on google:master.

Coverage decreased (-32.5%) to 27.298% when pulling 80e89046a2746c04312b674ae812e2fbcb0b67e1 on campionfellin:quota-limit into 069852fed159cee5455f3548fb437105498fe9f0 on google:master.

Coverage decreased (-32.5%) to 27.298% when pulling 80e89046a2746c04312b674ae812e2fbcb0b67e1 on campionfellin:quota-limit into 069852fed159cee5455f3548fb437105498fe9f0 on google:master.

Coverage decreased (-32.5%) to 27.298% when pulling 80e89046a2746c04312b674ae812e2fbcb0b67e1 on campionfellin:quota-limit into 069852fed159cee5455f3548fb437105498fe9f0 on google:master.

Coverage decreased (-32.5%) to 27.298% when pulling 80e89046a2746c04312b674ae812e2fbcb0b67e1 on campionfellin:quota-limit into 069852fed159cee5455f3548fb437105498fe9f0 on google:master.

I've requested 50 QPS and 100000 QPD with my Google email.
The Apps Script API is whitelisted for this project, but not the Drive API.
I'll see what happens.

Sounds good, if you want to switch over the .clasp.json.enc file to your account let me know and I can help with that.


Flyway OutOfOrder issue

Installed rank and version rank mismatch....
I cant be 100% sure this is a bug. But every time we run flyway migrate  all our deployment have a OutOrder status. I know for a fact that the deployments are not out or order e.g i have scripts V1.sql, V2.sql and V3.sql. V1 and V2 have been deployed successfully and flyway info reports that v1 and v2 have a status of success. Now everytime I run flyway migrate for v3.sql. the migrations is successful but the status of the last migration is OurOrder instead of sucess.
Possible Cause....
When I look into the fly way metadata table I notice that the install rank value is different from version rank value.  I proceeded to delete the last entry in the metadata table so I can re-rerun the migration.
when I deleted the last entry in the metadata table. I notice the installed rank and the version rank columns have exactly the same values for all my previous migration . But when I run a new migration. I notice the version rank for the new migration is incremented by 2 while the installed rank value for the same migration is incremented by 1

Please post a small GitHub project or the exact steps to reproduce the issue.

Closing due to lack of response from original reporter


docker-replay generates both --hostname and --uts host options

When run against a container that was started in --uts host mode, docker-replay will generate a command line that contains both the --hostname and --uts host arguments. These options to the Docker CLI are incompatible and attempting to specify a hostname when running with --uts host will result in a fatal error.

this is fixed in the 1.5 release, now published on pypi


Remove boto package dependency

The boto library (long ago superseded by boto3) has not had an official
release in over two years or even a commit in the last 18 months.  Importing
the package (or indirectly importing it by via moto) generates a deprecation
warning.  Additionally, an ever-increasing number of moto users who have
left boto behind for boto3 are still being forced to install boto.
This commit vendors a very small subset of the boto library--only the code
required by moto to run--into the /packages subdirectory.  A README file
is included explaining the origin of the files and a recommendation for how
they can be removed entirely in a future release.
NOTE: Users of boto will still be able to use moto after this is merged.
closes #2978
closes #3013
closes #3170
closes #3418
relates to #2950

Coverage decreased (-0.3%) to 94.27% when pulling ae85c539fd57034c4d5cfd0f95af41ff19862dd1 on bpandola:remove-boto-dependency into bd4aa65635be338090e9be59cc0b260023968090 on spulec:master.

Looks great; thanks for the help!


Updated node and npm to minimum supported

Updated node and npm to minimum supported version.
Signed-off-by: Abhijeet Singh<EMAIL_ADDRESS>

Hi @aps120797 this PR is fine for me, do you think you could add your sign-off to the first commit or squash your commits into a new commit with a sign-off? Thanks


Writing Cucumber scenario including datable

Before everything, thank you Łukasz for your work! It's amazing 🥇
I was just wondering if I could use scenario including a Datatable, like this for example:
The scenario
Scenario: Writing scenario with datatable
    Given a table step
      | Cucumber     | Cucumis sativus |
      | Burr Gherkin | Cucumis anguria |

The step definition
given(`a table step`, function(table) {
    const expected = [
        ['Cucumber', 'Cucumis sativus'],
        ['Burr Gherkin', 'Cucumis anguria']
    ]
    assert.deepEqual(table, expected)
})

But when I do that Cypress displays an AssertionError :

expected undefined to deeply equal [ Array(2) ]

table seems to be undefined. Did I do something wrong?

Thank you :-)
This is fixed in the newest version of https://github.com/TheBrainFamily/cypress-cucumber-preprocessor by @fcurella , you can see an example here:
https://github.com/TheBrainFamily/cypress-cucumber-preprocessor/blob/master/cypress/integration/Plugin.feature
https://github.com/TheBrainFamily/cypress-cucumber-preprocessor/blob/master/cypress/support/step_definitions/dataTable.js

( if you have more questions/issues related to the plugin please open an issue in the other repo :-) let's keep this one for the example purpose - which I think at this point is not even necessary, with CI and tests in the plugin repo itself )

@lgandecki I don't see any data table in the links you've provided. 🤔
Did you mean to link to this? https://github.com/TheBrainFamily/cypress-cucumber-preprocessor/blob/master/cypress/integration/DataTable.feature
When I try to use this though it doesn't work.
My feature file:
Feature: Being a plugin handling Scenario Outline

    As a cucumber cypress plugin which handles Scenario Outline
    I want to allow people to write Scenario Outline tests and run it in cypress

    Scenario Outline: Using Scenario Outlines
        When I add <provided number> and <another provided number>
        Then I verify that the result is equal the <provided>

        Examples:
            | provided number | another provided number | provided |
            | 1               | 2                       | 3        |
            | 100             | 200                     | 300      |

Steps:
import { When } from "cypress-cucumber-preprocessor/steps";

export let data = ''

When(`I add {int} and {int}`, async (int1, int2) => {

    console.log('ok when ', int1, ' ', int2)

})

import { Then } from "cypress-cucumber-preprocessor/steps";

Then(`I verify that the result is equal the {int}`, async (int3) => {

    console.log('then ', int3)

})

Results in Error: "Timed out retrying: Expected to find element: table, but never found it."

It would be nice if there was any mention of this at all in the README...

That error seems unrelated. The feature file you found is run on CI on every commit and merge to make sure that functionality works. You can find step definitons of that .feature file as well in the same repo

@lgandecki I don't see any data table in the links you've provided. 🤔
Did you mean to link to this? https://github.com/TheBrainFamily/cypress-cucumber-preprocessor/blob/master/cypress/integration/DataTable.feature
When I try to use this though it doesn't work.
My feature file:
Feature: Being a plugin handling Scenario Outline

    As a cucumber cypress plugin which handles Scenario Outline
    I want to allow people to write Scenario Outline tests and run it in cypress

    Scenario Outline: Using Scenario Outlines
        When I add <provided number> and <another provided number>
        Then I verify that the result is equal the <provided>

        Examples:
            | provided number | another provided number | provided |
            | 1               | 2                       | 3        |
            | 100             | 200                     | 300      |

Steps:
import { When } from "cypress-cucumber-preprocessor/steps";

export let data = ''

When(`I add {int} and {int}`, async (int1, int2) => {

    console.log('ok when ', int1, ' ', int2)

})

import { Then } from "cypress-cucumber-preprocessor/steps";

Then(`I verify that the result is equal the {int}`, async (int3) => {

    console.log('then ', int3)

})

Results in Error: "Timed out retrying: Expected to find element: table, but never found it."

you should remove "Examples:"

Can we add the functionality to include the Examples:? Currently, I need to comment the word Examples: as workaround:
Feature: Being a plugin handling Scenario Outline

    As a cucumber cypress plugin which handles Scenario Outline
    I want to allow people to write Scenario Outline tests and run it in cypress

    Scenario Outline: Using Scenario Outlines
        When I add <provided number> and <another provided number>
        Then I verify that the result is equal the <provided>

        #Examples:
            | provided number | another provided number | provided |
            | 1               | 2                       | 3        |
            | 100             | 200                     | 300      |

If we cannot do this now, at least can we a useful debugging error message if we use the word Examples:?


Add Musia Adapter support [PS2 Windows]

Not sure if I did this right but hopefully :pray:  Sorry if anything is incorrect or not formatted properly fairly new to this.

Thanks!


Handling Variables in Images eg: Database Password

If one reproduces an image, is the image then set in stone with a certain password?
Examples include apps requiring databases.
Is the database password (and other such variables) changeable with each deployment of said image?
Say I deploy an image someone else has created, is the password already set or…?

You should not build an image based on your deployment because it may or may not contain sensitive data (although many Makejails separate this using volumes). But even without containing sensitive information a deployment may assume that some data must be on a certain path within the jail, so if you deploy an image that does not contain such data, it will probably fail. Examples of the latter case are Nextcloud and MariaDB.
This is the reason why I separate Makejail and build.makejail, so you should only share your image based on build.makejail, not Makejail. The repository containing the replay configuration files builds only build.makejail, so it is safe to share the image.


Error: fatal: could not read Username for 'https://gitlab.example.com': No such device or address

This is my configuration for my self-hosted Gitlab instance:
{
  "$schema": "https://raw.githubusercontent.com/sourcebot-dev/sourcebot/main/schemas/v2/index.json",
  "repos": [
    {
      "type": "gitlab",
      "url": "https://gitlab.example.com",
      "token": {
        "env": "GITLAB_TOKEN"
      },
      "revisions": {
        "branches": [
          "main",
          "master"
        ]
      },
      "groups": [
        "foo",
        "bar"
      ],
      "projects": [
        "baz/foo"
      ],
      "exclude": {
        "archived": true,
        "forks": true
      }
    }
  ]
}

In my log, I see a lot of these errors. No repo is synchronizing.
2024-11-07 13:54:40 [backend] |     at Object.action (file:///app/node_modules/simple-git/dist/esm/index.js:4462:25)
2024-11-07 13:54:40 [backend] |     at PluginStore.exec (file:///app/node_modules/simple-git/dist/esm/index.js:4501:25)
2024-11-07 13:54:40 [backend] |     at file:///app/node_modules/simple-git/dist/esm/index.js:1369:43
2024-11-07 13:54:40 [backend] |     at new Promise (<anonymous>)
2024-11-07 13:54:40 [backend] |     at GitExecutorChain.handleTaskData (file:///app/node_modules/simple-git/dist/esm/index.js:1367:16)
2024-11-07 13:54:40 [backend] |     at GitExecutorChain.<anonymous> (file:///app/node_modules/simple-git/dist/esm/index.js:1351:44)
2024-11-07 13:54:40 [backend] |     at Generator.next (<anonymous>)
2024-11-07 13:54:40 [backend] |     at fulfilled (file:///app/node_modules/simple-git/dist/esm/index.js:45:24)
2024-11-07 13:54:40 [backend] |     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
2024-11-07 13:54:40 [backend] | 2024-11-07T12:54:40.104Z info: [main] Fetching gitlab.example.com/libs/styx...
2024-11-07 13:54:40 [backend] | 2024-11-07T12:54:40.178Z error: [main] fatal: could not read Username for 'https:// gitlab.example.com': No such device or address
2024-11-07 13:54:40 [backend] |
2024-11-07 13:54:40 [backend] | Error: fatal: could not read Username for 'https://gitlab.example.com': No such device or address

My GitLab Personal access token is valid and has these permissions: read_api, read_user, read_repository. I have tried the latest version v2.4.0; the latest version that works for me is v2.0.2. What might be the issue? Do you have any ideas?

Heya - do you mind sending along more of the logs? I see there is an exception being thrown, but it's not obvious where it's being thrown.

Yesterday I was debugging this; I deleted the whole Docker volume with data, and today I can't replicate the problem again. Maybe it was a problem with the subsequent upgrades; I started with the same volume from the very first release of Sourcebot 🤷
If it happens again, I'll let you know. Thanks!

Interesting - yea I could see it being a symptom of migrating from v1 to v2. Glad to hear it is fixed!


how to train

hello, first of all, thank you for sharing your code :)
i've run your code in my local environment and found out there is no training code or evaluation code.
could you provide training and evaluation code for both dear and vret model ?
and also, could you elaborate more on how you got scene node and graph embedding as an input of vret?

Hello, thank you for trying my code.

The code for training, verification ,testing and evaluation of the two models can be downloaded from the website of the corresponding paper. The entry can be found at README.
The construction of  Semantic–visual relational graph is described in detail in Chapters 3.2 and 3.3.2 of the vret paper.
If there have any questions, keep asking.


doc: minor updates

This PR adds two minor updates to the documentation:

Add a note about containerized context
Add a note about deprecated branches of ceph-ansible

jenkins test docs


Streamer onCreatePublication applied twice

Bug Report
What happened?
By looking at the code, it seems the onCreatePublication lambda is being applied twice to the Publication.Builder:
https://github.com/readium/kotlin-toolkit/blob/540c80fc1c57f04d09db45764f103724177aedf9/readium/streamer/src/main/java/org/readium/r2/streamer/Streamer.kt#L137
        // Transform provided by the reading app in `Streamer.open()`.
        builder.apply(onCreatePublication)

        val publication = builder
            .apply(onCreatePublication)
            .build()
            .apply { addLegacyProperties(asset.mediaType()) }

Expected behavior
It should only be applied once.
How to reproduce?
Open a publication using the Streamer class.
Additional context
This bug will only have an impact if the lambda provided is not idempotent.

Good point, thank you!
You can open a PR if you want, otherwise I'll fix it this Friday.


Auto-advance sections

A toggle could be added to the settings that would automatically advance the section of the timer expired. This could be more useful for workouts. Enabling auto-advance would disallow the timer from tracking progress made beyond the time limit.

Added in #361. When the timer behavior is set to "Skip", the next section will automatically start.


[New game]:  Ninja frog Game

🎮 Game Request
Game logic and basic description
Point down the features
Game points this game Make By using Godot Scripts
Select program in which you are contributing
No response
Code of Conduct

[X] I follow CONTRIBUTING GUIDELINE of this project.

Hey @ujjwalshriv3 !
Thank you for raising an issue 💗
You can self assign the issue by commenting /assign in comment 😀
Make sure you follow CODE OF CONDUCT and CONTRIBUTING GUIDELINES 🚀
Don’t Forget to ⭐ our GameZone🎮
Make sure you join our Discord🕹

/assign


[AIFlow]Add stop/resume scheduling job to cli document.

What is the purpose of the change
[AIFlow]Add stop/resume scheduling job to cli document.

Codecov Report

Merging #246 (199c3c6) into master (b539c89) will decrease coverage by 0.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #246      +/-   ##
==========================================
- Coverage   66.81%   66.80%   -0.02%
==========================================
  Files         206      206
  Lines       15500    15500
  Branches     2329     2329
==========================================
- Hits        10356    10354       -2
  Misses       4577     4577
- Partials      567      569       +2

Impacted Files
Coverage Δ

...w_plugins/blob_manager_plugins/oss_blob_manager.py
83.78% <0.00%> (-2.71%)
:arrow_down:

ai_flow/store/sqlalchemy_store.py
75.21% <0.00%> (-0.19%)
:arrow_down:

..._service/notification_service/high_availability.py
85.41% <0.00%> (+1.38%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b539c89...199c3c6. Read the comment docs.


Change wording of right-click menu option on frequency functions

Please change the synthetic frequency function right-click menu item on frequency functions to read "Import Synthetic Analytical Flow-Frequency Function from DBF"

Original:

Updated version:

This is fixed on branch: last_edit_tooltip

behaves as expected


GitHub Blog 翻译

GitHub contributes to UN free speech expert's report on content moderation

From fake news to copyright infringement, content moderation—and who should do what to address it—is all over the news and policymaking arenas. Although we are a platform that hosts primarily code uploaded by developers, many of those discussions are relevant to GitHub.

We highlight how we promote transparency, for example by involving our community in the development of the policies that govern use of our platform and by posting takedown notices in public repos in real time. We explain that users can appeal removal of content and that we’ll provide reasons for our decision.

We note that our approach is consistent with international human rights law—specifically Articles 19 and 20 of the International Covenant on Civil and Political Rights, which establish the right to free expression and prohibition of propaganda and hate speech. We also explain that we designed our Community Guidelines to protect the interests of marginalized groups and encourage users to respect each other.

Finally, we explain that we open source our site policies (we’re GitHub, after all!) and hope that our approach gets recognized as a best practice that other platforms adopt.

Contributing to Special Rapponteur Kaye’s report is one way we’re working to define and build on best practices for platform moderation. We also directly participate in the discourse about content moderation, for example at last week’s Conference Moderation Summit and this week at RightsCon. In addition, we continue to advocate for approaches to content moderation that promote transparency and free expression while limiting abuse.

We thank the Special Rapporteur for his thoughtful attention to this timely issue and we look forward to reading his report!


Evaluate performances depending on green light duration

Double green light duration : (10 -> 20)

30->50


Bug - make all - Diagnostic Services Trusted Storage Access object Id

fresh install
run make all
it will fail at
module.azure_monitor.azurerm_role_assignment.appinsights_storage_permission: Still creating...
╷
│ Error: authorization.RoleAssignmentsClient#Create: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="PrincipalNotFound"
Message="Principal 6243488d10d84ea0884ec2d5d1b7462d does not exist in the directory 2b0d1330-312c-497a-a034-f2374ee0be2a.
Check that you have the correct principal ID. If you are creating this principal and then immediately assigning a role, this error might be related to a replication delay.
In this case, set the role assignment principalType property to a value, such as ServicePrincipal, User, or Group.  See https://aka.ms/docs-principaltype"
│
│   with module.azure_monitor.azurerm_role_assignment.appinsights_storage_permission,
│   on azure-monitor/azure-monitor.tf line 109, in resource "azurerm_role_assignment" "appinsights_storage_permission":
│  109: resource "azurerm_role_assignment" "appinsights_storage_permission" {
│
╵
Script done, file is<PHONE_NUMBER>-tre-core.log
Terraform Error
this is because principal_id used for Diagnostic Services Trusted Storage Access is equal to object Id that belongs to Microsoft Tenant.
it should be changed to your object id tenant the installation sits in.
There should be a script to get the object ID from the tenant from the application id which is unique along tenants.

Thanks @chboudry, for creating a bug,
had this reported a couple of times over last few days.
@tamirkamara @stuartleeks is this related to the recent app insights changes?


Remove IPFS dependencies

The current IPFS dependencies are not out of date (showing deprecation warnings).
We should update to the latest toolchain there.

I've renamed this issue to "remove IPFS dependencies". I think it would be better to deprecate this support given it doesn't have a lot of uptake and the libraries are deprecated.

Landed in https://github.com/jspm/generator/pull/329.


Fix 'buildSrc' issue

Description
Following android studio issues has been fixed in this PR.

https://github.com/edx/edx-app-android/issues/1030
https://github.com/edx/edx-app-android/issues/1047
https://github.com/edx/edx-app-android/issues/798

Android studio error message

Side benefits:

It has also resolved "Gradle project sync failed. ..." yellow bar issues which often come at top bar of android studio abnormally.

Sadly this fix doesn't work with latest Gradle, because

'buildSrc' cannot be used as a project name as it is a reserved name

I think that it is IDEA bug, because from command line it works fine.
I created bug for it here
https://youtrack.jetbrains.com/issue/IDEA-224846
But Jebrain will never care about bug with no votes from another developer.


refactor(sqllogictests): port group by test to sqllogic

Which issue does this PR close?
Port group by tests from group_by.rs.
Work towards #4495
Rationale for this change
N/A
What changes are included in this PR?
N/A
Are these changes tested?
Yes
Are there any user-facing changes?
No

Thank you @aprimadi  -- we really appreciate the help

Not sure if we should port group_by_dictionary test case @alamb.
It seems that if we port it into sqllogic, the test would be longer. While doing it programmatically seems to be very concise.

This is probably enough for now, all the other tests use a one-time-use test data.

@alamb not sure how to port group_by_date_trunc and group_by_dictionary without writing setup code. Do we want to migrate those also?

My idea is mainly based on these two test cases and what they cover.

group_by_date_trunc based on the method name, is to test date_trunc. I think we can use an existing test data and move to sqllogictests
group_by_dictionary based on the code, is testing DictionaryArray. In my opinion, it should not be migrated to sqllogictest.

I think both group_by_date_trunc and group_by_dictionary test should not be moved.
For group_by_date_trunc the data is procedurally generated and it also generates multiple partition file.
For group_by_dictionary, I totally agree with you @jiangzhx
IMO, the data setup should be as close to the code that test it except if it's being used multiple times.

Btw,, those are the only two tests from group_by.rs not being moved to sqllogic.

I really appreciate the help @aprimadi  ❤


Fuego connection sporadically goes down

Hi all,
We've had a fuego instance running for several months now.  From time to time the collector seems to stop writing new info to disk and we have to kill both processes (or just one, if it died) and restart.
Most recently, even a restart of the processes didn't do the trick on our main fuego instance.  We have other instances (for example on our staging server) that we don't always run but that we can still start up without issue.
I was wondering if anyone has run into this or any other flavors of connection issues with Twitter via fuego- I'm thinking Twitter blocked our IP, but I don't know for sure and will probably need to dig into the stream connection code to find out.

it turns out twitter streaming api doesn't like clock drift ...
https://twittercommunity.com/t/streaming-api-with-oauth-was-working-fine-now-returning-401-unauthorized-error/7550/4
fixed it with sudo ntpdate ntp.ubuntu.com

👍🏽👍🏽👍🏽

On Feb 18, 2016, at 5:12 PM, Joe Flowers<EMAIL_ADDRESS>wrote:
it turns out twitter streaming api doesn't like clock drift ...
https://twittercommunity.com/t/streaming-api-with-oauth-was-working-fine-now-returning-401-unauthorized-error/7550/4
fixed it with sudo ntpdate ntp.ubuntu.com
—
Reply to this email directly or view it on GitHub.


Uninstall not uninstall all

C:\fife\fife-editor
C:\fife\fife-python-demos
C:\fife\fife-python-tutorials
C:\fife\python
get not removed because "user created" files.

fixed.


Support for nested git repositories #37947

Based on the discussion here: #37947

Subdirectories with their own .git folder will no longer be considered part of an outer repository
This allows vscode to correctly detect repositories in subdirectories of an outer repository

@nteymory, thank you very much for your contribution. I will pull down your changes next week and I will try to do some manual testing to see if there are any other issues that have to be addressed other than enabling the discovery of nested git repositories. I would highly appreciate if you could do some tests on your end as well. Thank you!

Addressed by https://github.com/microsoft/vscode/pull/159291


Publish 7.6-20220904232438+0000

Publish 7.6-20220904232438+0000

@bot-gradle test and merge

OK, I've already triggered a build for you.


fix single collector special case

Codecov Report

Merging #2014 (ef038f8) into main (c599bf3) will increase coverage by 0.09%.
The diff coverage is 100.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@            Coverage Diff             @@
##             main    #2014      +/-   ##
==========================================
+ Coverage   94.33%   94.42%   +0.09%
==========================================
  Files         320      319       -1
  Lines       59024    59209     +185
==========================================
+ Hits        55678    55908     +230
+ Misses       3346     3301      -45

Impacted Files
Coverage Δ

src/aggregation/segment_agg_result.rs
95.45% <100.00%> (+2.27%)
:arrow_up:

... and 44 files with indirect coverage changes


Changes in arparse output breaks test for python3.10

There have been changes in argparse output https://bugs.python.org/issue9694 which breaks https://github.com/CrossNox/m2r2/blob/development/tests/test_cli.py#L61.
There is a pull request in m2r which updates it https://github.com/miyakogi/m2r/pull/62, it applies cleanly to m2r2. Ive tested with python3.9 and python3.10 with both passing tests.

Should be fixed in v0.3.1, pls let me know if you run into this issue still!


collections: simple search for collection

Originally by annetteh on 2011-02-25
Collections should be included in the search index to enable a simple search
"Rappold thesis"
instead of
"Rappold collection:thesis"
or
"fin a rappold and tc thesis"

It should be possible with RFC #2638 and implementation in #2587.

I can confirm that collection index now contains all system collections not only values from 980 (see 0d45658).


feat(curriculum): add bookmark manager lab

Checklist:

[x] I have read and followed the contribution guidelines.
[x] I have read and followed the how to open a pull request guide.
[x] My pull request targets the main branch of freeCodeCamp.
[x] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

Thanks for your feedback @moT01 Do you think this could work?


How to prevent the cli to redownload the crates

This issue is reporting a bug in the code of Perseus. Details of the scope will be available in issue labels.
The author described their issue as follows:

running perseus build or perseus serve redownloads wasb-bindgen is there a way to stop the download to instead work with already downloaded crates?
For some of us using metered bandwidth, it can be costly.

The steps to reproduce this issue are as follows:

perseus build
perseus serve

A minimum reproducible example is available at <>.

Hydration-related: false
The author is willing to attempt a fix: false

Tribble internal data
dHJpYmJsZS1yZXBvcnRlZCxDLWJ1ZyxBLWNsaQ==

Redownloading should only happen when the cached artefacts are no longer available. Assuming you're on Linux, what's the output of  ls ~/.cache/perseus_cli/tools?
If this is happening continuously, it might be that your cache is being cleared very regularly, which might be to do with the amount of storage space left on your system? If that is the case, you could always copy the artefacts out of the cache path in the above command and provide paths to the binaries manually with the --wasm-bindgen-path and --wasm-opt-path arguments (both take a path afterward). The cache will contain folders for wasm-bindgen-<version> and wasm-opt-<version>. You should copy the appropriate binaries (wasm-bindgen for bindgen and bin/wasm-opt for wasm-opt) and then put those somewhere that won't be cleared. Then you could alias perseus="perseus --wasm-bindgen-path <path> --wasm-opt-path <path>" so you don't have to type that every time.

Closing this because it's been a while, feel free to reopen if you're still having this problem!


Add Dockerfile for serving containerised frontend

Description

This PR allows the frontend to be served in a container using nginx and adds:

Dockerfile for serving the frontend and proxying calls to the bff.
An example docker-compose for running the stack.
Webpack config for proxying and url rewriting for the frontend in dev mode.
A frontend Makefile for building the docker image

How Has This Been Tested?

Run the example docker-compose file: podman compose up -d (swap podman for docker if that's your bag)
Verify the frontend loads in a browser at: localhost:8080
Verify the reverse proxy to the backend works via curl: curl localhost:8080/api/v1/model-registry/ - this should return a valid response from the bff
Run the frontend in dev mode using: npm run start:dev - run the bff directly using make run PORT=4000 MOCK_K8S_CLIENT=true in a separate terminal and verify the dashboard loads in a browser and the proxy functions by running: curl localhost:9000/api/v1/model-registry/.
Run the frontend Makefile make CONTAINER_TOOL=podman (leave out the CONTAINER_TOOL param to use docker)

Merge criteria:

[x] The commits and have meaningful messages; the author will squash them after approval or will ask to merge with squash.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

I've addressed all the feedback given:

the proxy no longer uses the /p/ prefix, so you can query using /api/v1/model-registry/ directly. I've updated the instructions in the PR.
I've updated the build stage of the container build, it should no longe rely on you having the correct node_modules installed.

/lgtm


Optimize price display formatting

What is the motivation for adding / enhancing this feature?

core/filters/price.js line: 35
why dont we leverage the function toLocaleString more?
const options = { style: 'currency', currency: currencyCode, minimumFractionDigits: fractionDigits, maximumFractionDigits: fractionDigits };
if we insert style and currencyCode we dont need to applyCurrencySign for example.... what do u think?
the seperators are also set fine... so why use replaceSeparators?
and if we dont do the Math.abs the negative sign is also included fine for me:
(-99).toLocaleString('de-DE', { style: 'currency', currency: 'EUR' })
"-99,00 €"

What are the acceptance criteria

[ ] Price display formatting simplified

Can you complete this feature request by yourself?

[x] YES
[ ] NO

Which Release Cycle state this refers to? Info for developer.
Pick one option.

[x] This is a normal feature request. This should be available on https://test.storefrontcloud.io and then after tests this can be added to next Vue Storefront version. In this case Developer should create branch from develop branch and create Pull Request 2. Feature / Improvement back to develop.
[ ] (Pick this option only if you're sure) This is an important improvement request for current Release Candidate version on https://next.storefrontcloud.io and should be placed in next RC version. In this case Developer should create branch from release branch and create Pull Request 3. Stabilisation fix back to release.
[ ] (Pick this option only if you're sure) This is a critical improvement request for current Stable version on https://demo.storefrontcloud.io and should be placed in next stable version. In this case Developer should create branch from hotfix or master branch and create Pull Request 4. Hotfix back to hotfix.

Additional information

@simonmaass won't it increase the bundle size?

browser support is not that great... would therefore maybe not recommend in the end...

and pollyfil would indeed increase bundle size... i will just close this...

@simonmaass I think you missed the BigInt when you checked caniuse.com for support.
It doesn't list support for Number.prototype.toLocaleString, but MDN says it's supported from very early versions and the only problem with IE/Edge is limiting precision to 15 decimal digits:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString
After all, I don't think using more of its options would increase bundle size.

@Qrzy good point - thank you!

@pkarw @gibkigonzo here my suggestion...


Model decorators

Solves #1764

Codecov Report
Attention: Patch coverage is 30.76923% with 9 lines in your changes are missing coverage. Please review.

Project coverage is 65.83%. Comparing base (34830a7) to head (fcdd81a).
Report is 1473 commits behind head on main.

Files
Patch %
Lines

superduperdb/components/model.py
14.28%
6 Missing :warning:

superduperdb/ext/torch/model.py
25.00%
3 Missing :warning:

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1813       +/-   ##
===========================================
- Coverage   80.33%   65.83%   -14.51%
===========================================
  Files          95      124       +29
  Lines        6602     8853     +2251
===========================================
+ Hits         5304     5828      +524
- Misses       1298     3025     +1727

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


TecPlates: Randomly assign properties and rasterize

Description
Let's port over the random assignment of tectonic plate properties, rasterization, whatever other data structures we need for tectonic plates. Let's also create the world map renderer (probably print to image but maybe not).
Acceptance Criteria
Tasks
Use this section to keep track of work

QA Notes
Environments
Steps

Folded partly into #223, will split out the rest of the rasterization into a separate ticket.


ignore linter warnings for G115

Description
ignore linter warnings for g115 https://github.com/securego/gosec/issues/1185
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Testing performed?

[ ] Unit tests
[ ] Integration tests
[ ] Acceptance tests

Checklist:

[x] This PR is being made against the main branch, or relevant version branch
[ ] I have made corresponding changes to the documentation
[ ] I have added testing for my changes

If you have any questions, or want to get attention for a PR or issue please reach out on the #logging-and-metrics channel in the cloudfoundry slack

Hopefully the gosec ignores won't be necessary in the long run.  There's discussion going on in securego/gosec#1185 about it.


Log verbosity defaults to blank

And thus passes 'null' to the syncs. Which doesn't break em, but isn't right either.

This was only in 3.1.4


Fix data race in remove accents

This PR fixes a data race associated with reuse of removeAccentsTransformer - when IsProfane() or other methods are called from multiple goroutines (ex. in a HTTP Server handler), sanitization fails with slice bounds out of range errors.
The issue is fixed by using a new instance of removeAccentsTransformer for every call to removeAccents.
To reproduce, run the newly added BenchmarkIsProfaneConcurrently_WithAccents with
go test -race -benchmem -bench ^BenchmarkIsProfaneConcurrently_WithAccents$

(note - it will past on the last commit of this branch that contains a fix).
Summary
Fix a data race in removeAccents, making ProfanityDetector safe for use from multiple goroutines.
Checklist

[x] Tested and/or added tests to validate that the changes work as intended, if applicable.
[x] Updated documentation in README.md, if applicable.

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

Comparison is base (f5715a1) 100.00% compared to head (b22822e) 100.00%.
Report is 2 commits behind head on master.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff            @@
##            master       #80   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            1         1
  Lines          191       167   -24
=========================================
- Hits           191       167   -24

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

@rafax Thank you for the contribution!


Do not show Add file button if user has no rights to add files to repo

Description
Currently button with empty submenu is shown
Gitea Version
1.17.2
Can you reproduce the bug on the Gitea demo site?
Yes
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
Not relevant
Database
No response

I believe it has been fixed by #20718, and backport #20719 has been merged too.
I can't reproduce the error on v1.17.2, maybe this is a false positive?

I can confirm this has been fixed in branch v1.17.


Global epistasis model isn't monotonic

The current implementation of the global epistasis model doesn't guarantee monotonicity between the output of the initial linear layer and the final output. In my experience, the easiest way to guarantee monotonicity is to transform the weights in the nonlinear layer to non-negative values using a softplus or something similar. (I've tried it using torch but assume it will work similarly well in keras.)

As an example of a non-monotonic function the current setup can learn, consider a simplified version of your nonlinear function:
# Output of linear layer for three inputs
l = [[-1], [0], [1], [2]]
# Project out to k=2 dimensions + Relu
w_0 = [[2, -2]]
# Output: [[0, 2], [0, 0], [2, 0], [4, 0]]
# Reduce back down to 1 dimension
w_1 = [[.75], [2]]
# Output (squeezed): [2, 0, 1.5, 3]

Clearly this is monotonic and all we did was use a single hidden layer + ReLU for the non-linearity.


[V3] Loader: middlewares don't use the loader options

So I'm loading a spritesheet with a PIXI.Loader, and passing some options to it.
The spritesheetParser middleware recognizes that as a spritesheet and adds the associated .png to the loader queue. Thing is, the spritesheetParser is passing its own options hash.
It causes an issue since we are working on a server that doesn't allow loadType: Resource.LOAD_TYPE.IMAGE (the option that the middleware uses).
Not a big deal, will monkeypatch, but not easily overridable (need to hack into node_modules).

@englercj

at doesn't allow loadType: Resource.LOAD_TYPE.IMAGE

Not sure what you mean, the server doesn't really know the difference between an image or xhr request, they look the same? What is the issue you are encountering?

Yeah it was related to this one.
By "doesn't allow" I made a shortcut but basically the page is password protected and I'm not sure we can put the password into the URL (we are deploying to different targets, some with password some without and don't want that in clear.
Do you think it makes sense that the spritesheetParser should fallback on the loader configuration? Or is it something to manage differently on my end.

If you are doing basic auth the password is unencrypted over the wire whether you pass it in the url or not. I can look into trying base loader config instead of what it passes in, but it gets complicated because the parser knows it wants an image, and passing IMAGE is faster and more compatible that using XHR and blob parsing.
Honestly the best solution is for you to handle auth (if it is just basic auth) in the url, or cookies (if session auth). Either way, the load method doesn't matter so it all just works.

Thanks! Honestly, I think I will just keep copy pasting my config in the spritesheetParser file since it's just the testing server. But isn't kind of unexpected behavior to be allowed to pass options and they get overwritten by a piece of code that you can't control?

@ayamflow But you don't pass options for the resources that the parser decides it needs to load. You pass options for that resource itself (via .add). You passed in that it should load the json via XHR, but you can't pass in how it should interpret that json and load sub data. 99% of the time you want the parser to decide for you, because it knows what it needs.
This is the only case where you might want to change it, and honestly I'm not convinced that introducing complexity the parsers have to be aware of is the way to go. Especially when there is a best practice to do it with current tech already. If you build a PR we can review and merge it, but I don't think I will be adding sub-resource option passing anytime soon without a more compelling use-case.

Hm yeah it makes sense. :+1:

Thanks for being so understanding :smile:


Fix jstest for latest legacy-mongo-shell

Due to https://github.com/FerretDB/deps/commit/592a1e4b3822216fc2f237f9c5497c0018dc9451 we cannot mount the mongo submodule at /mongo. This PR fixes that issue and prevents tests from breaking.

I found an easy solution. Will push it soon.


Add primitives support handling to the generator for proper conversion

This adds the primitives support from the Clojure side and should make the Clojure unit tests pass

Thanks for helping out on this!.


:seedling: Avoid duplicate builds

Please check if the PR fulfills these requirements

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] PR title follows the guidelines defined in  https://github.com/ossf/scorecard/blob/main/CONTRIBUTING.md#pr-process

What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)

What is the current behavior? (You can also link to an open issue here)

What is the new behavior (if this is a feature change)?
Avoiding duplicate builds on main
https://github.community/t/how-to-trigger-an-action-on-push-or-pull-request-but-not-both/16662/2

Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)

Other information:

Codecov Report

Merging #1661 (5c4ddb2) into main (1306b34) will not change coverage.
The diff coverage is n/a.

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

@@           Coverage Diff           @@
##             main    #1661   +/-   ##
=======================================
  Coverage   56.17%   56.17%
=======================================
  Files          72       72
  Lines        6506     6506
=======================================
  Hits         3655     3655
  Misses       2606     2606
  Partials      245      245


⚠ Jenkins Plugins Artifactory has degraded performance

In e517d7d, Jenkins Plugins Artifactory (https://get.jenkins.io/plugins/artifactory/) experienced degraded performance:

HTTP code: 200
Response time: 1213 ms

Resolved: Jenkins Plugins Artifactory performance has improved in 1a5550a after 28 minutes.


PyTorch pre-trained weights?

Hi, Thanks for the great work!
I was wondering if pretrained weights for pytorch are available.
Best,
Junhwa

Hi, thank you for contacting me.
This is the link for downloading pretrained pytorch weights (including benchmark weights). This is a quick release, and I will re-check these files and update the readme file within next few weekdays.

Thank you very much for your fast response 👍👍


refactor(@angular/cli): use memory FS for i18n extraction

Eliminates the need to write and then delete the build output.
memory-fs was an existing transitive dependency that was moved to a direct dependency due to its now explicit usage.

Writing to the temp dir wasn't a bug, so I'm fine with refactor.


Add support for eth_sendRawTransaction

With tests!
All tests pass

@kumavis FYI: Fixed eth_getTransactionCount and eth_getBalance for "non-existent" requests, where they'd return undefined instead of 0x0. Also found a nasty bug with eth_getTransactionCount which would call its callback twice, which I've included here. And I fixed some cors-headers stuff for @simondlr. Waiting for him to test this, then I'll merge.

Got the green light from @simondlr, this fixes his issue. Merging.


More than one digit codes possible?

Hey, I found your project in the HA forums and it works out of the box for my use case. Thank you very much for your effort on making DTMF call tones usable in HA, this was another missing piece in my home automation paradise. :-)
Unfortunately, I'm not able to enter codes that are longer than one digit, that limits me to only 12 (1...9|*|#) possible codes but much more interesting: It could be used as a kind of "pin code" detection and offer endless possibilities with SIP and DTMF. :-)
Are you planning to implement this feature or is it possible to extend the digit detection to more digits and I simply missed the according configuration option? Give me a hint if I can help you out on this.

Hi EnerGeh,
thanks for the feedback!
I see two use-cases in your issue, which would be

Add a PIN protection to a menu
Have menu entries consisting of more than one digit.

The reason I would not misuse 2 to achieve 1 is, that you would probably like to be told as soon as possible that the menu entry you've entered does not exist. If you do that with a PIN code, it's much easier to brute-force that.
Would you still need 2 if you have 1? We would need to add some validation for this, because having an entry with "1" and another with "10" would be impossible.

Okay, I got your point. I never thought about the voice messages and especially about something like "invalid input". What I dream of is some kind of "DTMF to digit converter", but this is very unlikely your target with this integration.
In General the PIN protected menu sounds good, maybe there is some broader integration possible to fit my needs. E.g. like a top menu protection "Enter pin", where the only submenu entry is "start ha action" and that one is triggerd directly after PIN input (configurable at best).
A more than one digit menu then sounds as a nice to have. It is very unlikely that you will listen to a voice message with more than 12 options 😉

Would that be triggered by a human or a machine in your use-case?

Do you mean the PIN entry? That would be triggered by humans via a kind of keypad. So there has to be a error handling when someone enters the wrong pin.
But when I try to describe this use case more detailed, I feel more that I definetly like to have a converter that simply writes the DTMF digits into a variable so that I can work independently with this way of input. Even the voice part in these calls is not really needed and so maybe I misused your integration according its intention?!

I'm still not sure what you want to accomplish. If you have the entered keys in a variable inside of the add-on, what would happen next? Probably you would need to feed that string back to home assistant somehow?
What would the error handling on a wrongly entered PIN would look like, if there is no sound output on the input device?
The intention of ha-sip was to solve a very specific use-case of mine, but I tried to keep it as flexible as possible for other use-cases. Currently I do not understand your use-case completely, so hard to say if there is a mismatch.

Is this still something you want to discuss?

Oh, I feel so sorry, I missed your last reply. Yes of course I'd like to discuss this further. As far as I understand your use case: You're using the menu in a kind of a "intelligent voice routing" (IVR) solution to accomplish stuff like "Press 1 to turn on the light, press 2 to open cover, press 3 to active sound system".
This is a very cool idea, but I'd like to use it as a more secure solution for the pin entry at my door access system: Currently, the access code is processed inside the door station and then the "access granted" or "access denied" output is triggered. What I'd prefer is: The door station triggers "someone asks for access" (this is configurable in the door station) and then, HA should call that door station, the call is picked up automatically (configurable in the door station), maybe a voice command announces "Please enter your access code", then the user can enter its PIN via DTMF.
This PIN could then be used in HA to accomplish: "User with limited access", "Access prohibited", "Access granted but logged", "Family access, disarm camera surveillance" and unlimited other use cases.
Maybe I was more clear in my description now? Sorry for being that unspecific in the last posts.

Yes, that's much clearer. I came up with the following;
service: hassio.addon_stdin
data_template:
  addon: c7744bff_ha-sip
  input:
    command: dial
    number<EMAIL_ADDRESS>    menu:
      message: Please enter your access code
      protected:
        error_message: No.
        pins:
          '12345':
            id: owner
            message: Welcome beautiful.
          '45678':
            id: limited
            message: Please put the parcel under the doormat.
          '98765':
            id: logged
            message: Your access has been logged.

After entering the correct PIN the Id would be sent to a webhook so you can react on that in home assistant.
Would that solve your use-case? I actually like the idea of having multiple PINs, so you know who leaked the PIN or entered the building.

I noticed that the pin section is very similar on what we have with choices, so I had another idea:
"""yaml
service: hassio.addon_stdin
data_template:
addon: c7744bff_ha-sip
input:
command: dial
number<EMAIL_ADDRESS>menu:
id: main
message: Please enter your access code
error_message: No.
choices_are_pin: true
choices:
'12345':
id: owner
message: Welcome beautiful.
'45678':
id: limited
message: Please put the parcel under the doormat.
'98765':
id: logged
message: Your access has been logged.
"""
I like that a bit better, because it does not introduce that special protected section.
What do you think?

Both solutions are looking promising to me, where the second proposal seems to be more straight-forward and comparable to the current YAML configuration of the IVR menu. Did I get that right that both are blueprint proposals and you'd have to adjust the current source code to implement this?
The error_message: no option will prevent a "wrong input" announcement to the user in case the pin is incorrect or does it prevent the early trigger of "wrong input" if you dail a digit that is not used in a pin, e.g. pressing 2 while the allowed pin starts with 1, 3 or 9 as you mentioned earlier?
What happens if you trigger the right code? I assume you will hear the message and the webhook is triggered, right?
When you entered a typo, what would happen? Will the call end after the (in your example) fifth digit? Can you trigger another webhook to log a failed event?

Yes, both are not implemented currently.
The error message is the message that is played after entering a wrong PIN. Maybe "No" was a bad example :-). Should've been something like "Wrong code, please try again.".
The early trigger of wrong input is deactivated with the choices_are_pin: true option. In this case you need to enter the number of digits in the longest specified PIN before triggering the error path.
Your assumption about the handling of the correct code is correct.
Currently after entering a wrong code and playing the error_message you would by able to try again. Maybe it makes sense to add more options here.
Also the idea of triggering the webhook for wrong inputs makes sense.
This could be handled like that, and also the error_message option could be removed:
service: hassio.addon_stdin
data_template:
    addon: c7744bff_ha-sip
    input:
        command: dial
        number<EMAIL_ADDRESS>        menu:
            message: Please enter your access code
            choices_are_pin: true
            choices:
                '1234':
                    id: owner
                    message: Welcome beautiful.
                '5432':
                    id: maintenance
                    message: Your entrance has been logged.
                'default':
                    id: wrong_code
                    message: Wrong code, please try again
                    post_action: hangup

Very nice discussion we're having here!

In regards of the dynamic creation of the commands to ha-sip I have to say I never did something like that, but I guess you could use some template data for that, Would like to know if you achieve that and add that to the docs.
Timeout is currently not handled, but I would put that on my To-Do list.
Which architecture do you run your home-assistant on? Probably one of aarch64 or amd64? I would like to provide a beta version for this on https://github.com/arnonym/ha-plugins-next and compiling the docker image for all architectures takes a really long time, so I would only compile the version you need for testing.
Aus welcher Gegend Deutschlands kommst du?

Yes, I think template data should be possible in that context, I'll try this out and give feedback on this. I'd be very happy to contribute my 2ct to the docs!
In my opinion, a timeout is a must-have for the pin handling, but of course, this is something we can focus on after the beta tests.
I'm running a full home assistant os in kvm on a amd64 hardware but hopefully get my home assistant amber in a couple of weeks, so this would be arm64 I think. I'm really looking forward to amber so that I can switch this important part of our daily life to a dedicated hardware.
Ich komm aus der Südpfalz. Wenn du mal in der Gegend bist, sagst Bescheid, auch hier gibt es gutes Bier ;-)

The first beta is now available on. Add https://github.com/arnonym/ha-plugins-next  to your add-on repositories and install the -next plugin after.
You need to change the addon bit in your action to 8cd50eef_ha-sip-next like in the example below. Timeout option is already included. The time-out count-down starts when the message starts to play, so add some seconds if you have a long message.
Looking forward to your feedback!
service: hassio.addon_stdin
data_template:
  addon: 8cd50eef_ha-sip-next
  input:
    command: dial
    number<EMAIL_ADDRESS>    menu:
      message: Please enter your access code
      choices_are_pin: true
      timeout: 10
      choices:
        "1234":
          id: owner
          message: Welcome beautiful.
          post_action: hangup
        "5432":
          id: maintenance
          message: Your entrance has been logged.
          post_action: hangup
        default:
          id: wrong_code
          message: Wrong code, please try again
          post_action: return

Thanks for that fast implementation. I ported my configuration to the new plugin recently and struggled a bit with the current door bell setup, so I cannot fully confirm that it's working but several staging tests have been successful. But all issues during my testings are related to the door bell's hard- or software - I'll have to dig deeper into that as well.
Some feedback:
I really like the possibility to configure the post_action that restarts the whole menu in a loop.
I'll definitely have a look into variable choices as well as working with the webhooks but this could need a couple of days from now. I hope this will not annoy you to much as I really appreciate your progress on that.
Some funny stuff I love with tts software in general:
It's so cool when you enter your door pin and your door bell welcomes you with "Welcome home, Mr. Bond." ;-)
For the next steps: Should we head over to the HASS forums and post that new way of entering pins to the alarm integration so that more people get aware of that and start beta testing?

I would rather keep that next repo not so widely used because that might break anytime for my own testing. I also use this one now for my daily door ringing needs, so would merge that, if you don't find any problems. After that I'm happy if you make that more public and drive the star count up here on github :-).
I also hope your wife gets her own PIN and message :-).

I fully understand your point according the next repo.
I recently discovered that I completely misunderstood the configuration of my doorbell in that point and currently it seems to be impossible to trigger an action from the doorbell by simply swiping your access card (it has an inbuilt card reader) without entering a PIN on the door station. I'll discuss this with the vendor - they look promising responsive in their forums.
I'd prefer using both (PIN and card) over a PIN only setting (2nd-factor-like: something you own & something you know).
But of course I did some testings with your PIN implementation in General and could confirm that it's working great. I found no flaws or issues but as I said: I'm absolutely not a hacking talent ;-)
I will now look into the template options how to read the PINs from a HASS variable.
Btw: Of course Mrs. Bond has her own PIN and message ;-)

That's a bummer that your plan did not work out. Let's hope the vendor can provide the missing link. May I ask which doorbell we are talking about?
I also added the possibility to answer calls through ha-sip, so I can call home-assistant and after entering the PIN the front-door will be opened (also MFA: you need to have my SIM card, because only known numbers are answered and know the PIN).
For this I revamped the whole docs, as they were organically growing and a bit unstructured lately. If you would like to do me a favor I would be happy if you could read through them and see if everything is clear to you: https://github.com/arnonym/ha-plugins-next
Oh, and the bug: I think I fixed that in the latest version on "next" already. So if you have time you can check that again!

Hi Arne, good news: I opened a ticket with the vendor and got a hint that pushed me to the right direction. Now, I'm able to configure the door station to trigger an event on a simple card swipe without a local PIN input. :smiley:
In the next days, I will further integrate that into my HASS instance and finally enable ha-sip for the entry PIN check.
I'm currently using Grandstream "facility access systems" (sic!) and I own both devices, GDS3705 and GDS3710 where the latter features an additional FullHD camera. The main reason why I choose these (I think chinese manufactured) devices was the reasonable price tag compared to the "typical" Siedle or Behnke devices. They feature both a number key pad, a card reader, an ok-ish microphone and speaker combination, a hall sensor as tamper protection (not unimportant as you bring an ethernet cable outside your house) and a pretty solid manufacturing quality. I also didn't want any of these cloud connected door bells like ring, doorbird etc. - I'm not a cloud fan at all.
Answering calls trough ha-sip is a very nice feature, I'll definitely find a use case for that as well :zany_face: Your development speed is extraordinary - I have completely no hacking skills, so I'm very impressed! :+1:
I will definitely check the docs (probably next weekend) and review the bug fix. All I need is a nuance more spare time... I'll keep you posted!

Nice you got that worked out! Interesting product with an interesting price point you got there. I have also the goal that everything in my house should work without internet connection. Home Assistant works really well with that.
Looking forward to your test results!

Can you please update to latest beta before you start testing? I had to do some refactoring, and it would be nice, if this is included in the tests also!

I upgraded to beta8 tonight and got the following error:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
parse error: Expected string key before ':' at line 1, column 4
[22:12:53] ERROR: Unknown HTTP error occured
Traceback (most recent call last):
File "/ha-sip/main.py", line 143, in
main()
File "/ha-sip/main.py", line 100, in main
port=int(config.PORT),
ValueError: invalid literal for int() with base 10: 'null'
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped`
I used the configuration from beta6 without any changes but couldn*t find any issues in my config. Do you have a hint or is it related to your last refactoring of the code?

I don't get that. Can you check the config in ha again? is there by chance a ":" missing after port?

This is released as of version 2.0. If you still have problems or need support feel free to re-open this ticket or create another one.

I'm so devastated that I didn't answer for such a long time. @arnonym I've seen that with the recent updates the PIN input feature evolved massively and is unbelievable useful. Thank you so much for your effort in this!
@Dunkelschunkel unfortunately, I didn't find any suitable way to import a variable in runtime. In my opinion it should be possible with a kind of custom code but I'm still learning how to deal with that... In the meanwhile: Sorry, no, I didn't find a solution so far.

Hey @EnerGeh, don't worry, sometimes life gets in the way. I sometimes get questions about those door stations that call ha-sip, but as I don't have one I can't answer from my own experience. Could you write some paragraphs with example yaml code for the docs for that? I would appreciate that very much!

Could you write some paragraphs with example yaml code for the docs for that? I would appreciate that very much!

It would be a pleasure to do that but my time is still very limited. Give me some weeks to write a couple of lines - it's in my backlog. Feel free to ping me if I didn't answer for let's say 8 weeks or so.
Do you mean questions about these Grandstream door stations or sip door stations in General?

Maybe it makes sense to use the Grandstream door station and its quirks as an example. So how your incoming_sip.yaml config is looking (if there's one), which automations did you create, etc. Looking forward to your contribution!

You're question is still in my backlog (and in my head). Life is hard currently.


cmd/compile: "redo growslice calling convention" caused a 14.7% regression in AppendMsgReplicateDecision

We should determine if this is worth fixing, if the benchmark is too noisy (or not really useful), or if there's a real bug here.

https://perf.golang.org/dashboard/?benchmark=AppendMsgReplicateDecision-8&days=90&end=2022-10-26T19%3A24

Definitely not a great benchmark. With a sub-1ns running time, lots of noise. I think we can probably get rid of it. (Anyone know how to do that? Where's the config of what is run?) @dr2chase
That said, it does look like there is something happening here. The inner loop looks like it has an extra bounds check in it. That may be fixable, I'd need to extract a repro from this giant repository first.

I can reproduce with:
package p

import (
	"testing"
)

func BenchmarkAppendMsgReplicateDecision(b *testing.B) {
	v := ReplicateDecision{}
	bts := make([]byte, 0, v.Msgsize())
	bts, _ = v.MarshalMsg(bts[0:0])
	b.SetBytes(int64(len(bts)))
	b.ReportAllocs()
	b.ResetTimer()
	for i := 0; i < b.N; i++ {
		bts, _ = v.MarshalMsg(bts[0:0])
	}
}

func (z ReplicateDecision) MarshalMsg(b []byte) (o []byte, err error) {
	o = Require(b, z.Msgsize())
	// map header, size 0
	o = append(o, 0x80)
	return
}

type ReplicateDecision struct {
	targetsMap map[string]int64
}

func Require(old []byte, extra int) []byte {
	l := len(old)
	c := cap(old)
	r := l + extra
	if c >= r {
		return old
	} else if l == 0 {
		return make([]byte, 0, extra)
	}
	c <<= 1
	if c < r {
		c = r
	}
	n := make([]byte, l, c)
	copy(n, old)
	return n
}

func (z ReplicateDecision) Msgsize() (s int) {
	s = 1
	return
}

The default bent benchmarks are here: https://cs.opensource.google/go/x/benchmarks/+/3255f073:cmd/bent/configs/benchmarks-50.toml
It needs a decoder ring to tell you what benchmark+package that is, but it's in minio.
(Decoder ring, scroll down: https://perf.golang.org/search?q=upload:20221026.20 )

Simple repro:
package p

import (
	"testing"
)

func BenchmarkFoo(b *testing.B) {
	s := make([]byte, 1)
	for i := 0; i < b.N; i++ {
		s = append(s[:0], 0)
	}
}

The generated code is a bit worse after my CL because the compiler doesn't realize that growslice definitely makes the returned slice have length 1.
Previously, the new length was computed as 0+1, which makes the length known after the append. But my change reloads the length from the result of growslice so we don't have to spill/restore the length. But if the length is constant, spill/restore isn't really a worry. This is probably fixable with a special case. More invasive may be teaching the prove pass about the equality of length between the input and output of growslice.

FWIW, this did not seem to fix the benchmark: https://perf.golang.org/dashboard/?benchmark=AppendMsgReplicateDecision-8&days=90&end=2022-10-28T15%3A45
The most recent run is for https://go.dev/cl/444715, which was submitted after https://go.dev/cl/445875.

You're right, it fixes my simple repro but not the original repro.

Now it is better!
https://perf.golang.org/dashboard/?benchmark=AppendMsgReplicateDecision-8&days=200&end=2022-12-21T15%3A45


on overlap tile triggers inconsistently while overlapping

Describe the bug
it only triggers while moving, and only when moving into the tile (inconsistent with sprite overlap); it's currently tied to the wall collision code, which only ever checks the tiles that could potentially block the tile from moving (e.g. if moving just to the right, only ever checks tiles on the right edge of the sprite); it should probably be separated from that logic and made to trigger similar to how sprite events do
To Reproduce
Steps to reproduce the behavior:

Go to https://makecode.com/_Ks17mJdR1ggp
see that there's a tile that is behind the large sprite, that has an associated overlap event
see it doesn't trigger the event until you move away from the tile and then try and move back over it (e.g. move up until you see tile, then back down)

Expected behavior
should behave like sprite overlaps

Likely dupe of https://github.com/microsoft/pxt-arcade/issues/1772

Will re-test once https://github.com/microsoft/pxt-common-packages/pull/1116 is merged.

@eanders-MS can you please test this?

I get tilemap-related code errors when trying to load this in beta. Here is the level:

error: _tilemap.ts(6,18): error TS2451: Cannot redeclare block-scoped variable 'tile0'.
error: main.ts(3,18): error TS2451: Cannot redeclare block-scoped variable 'tile0'.

Both main.ts and _tilemap.ts declare myTiles.tile0.
Same issue running local against latest.
@riknoll could this be related to your tilemap changes?

But also good news: After manually deleting one of the tile0 declarations, the game was able to run, and the issue appears to be fixed.

Closing this issue. Will open a new one for the tilemap errors.


[FEATURE] Condense Simple Calendar Timestamps in chat into one header line

Is your feature request related to a problem? Please describe.
Currently when using simple calendar for message time stamps, it increases the message header to two lines. When using a module that adds tags for the visibility type of the message, it even goes up to 3 lines, which is massive.
Describe the solution you'd like
Having the Simple Calendar timestamp be formatted in the same way as the default timestamp is and having it be on the same line as everything else, like the default timestamp would be really nice and would allow the message header to stay one line
Describe alternatives you've considered
Patching this with a world script and custom css
Additional context

This is kind of a 2 part answer, first part is in version 2.4.3 I updated the styling a little so it should play better with other modules.
The second part is there is a setting to customize the date that is shown to what ever information you would like. You can do that by changing the Calendar Configuration -> Display Options -> Chat Message Timestamp Format setting to what you would like. Because users can set this to whatever they want the timestamp can end up really long so I don't want to provide any sort of condensed styling for it.


Ci and fmt

add ci and do some cleaning.

some tips:
for [f64; 3], the map method directly returns [T; 3], so we can directly use map if all operators are the same.
also, I noticed that there seems lack some
impl struct {
   fn method() ...
}

mind I open another PR to add them?

and for vscode user, https://rust-analyzer.github.io/manual.html#inlay-hints
this is pretty useful since I can see the type and shape directly.

fix #3

All your edits look great! I've merged the PR. Thanks 👍


Introduce BoolVar struct

Description
Introducing struct BoolVar whose creation automatically enforces a bool_gate(), distinguishing from normal Variable to avoid repeated checks and make API clearer.
closes: #91

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[x] Targeted PR against correct branch (main)
[x] Linked to GitHub issue with discussion and accepted design OR have an explanation in the PR that describes this work.
[x] ~Wrote unit tests~
[x] Updated relevant documentation in the code
[x] Added a relevant changelog entry to the Pending section in CHANGELOG.md
[ ] Re-reviewed Files changed in the GitHub PR explorer

In general I want to advocate my "circuit ref" idea. For example
struct BoolVar<'a> {
  index: Variable,
  cs: &'a ConstraintSystem
}

On top of overloading operators here are some additional thoughts:

to access the variable, we should use an API get_index(&self)->Variable -- i think it is a bit cleaner than into()

it makes more sense to me to implement Into/From for Vec<BoolVar> and Variable, in both directions, which are binary (de)composition

to create new variables we should use associated function BoolVar::new(cs: &ConstraintSystem, value: bool) rather than Circuit::create_bool_variable(...) and so on...
to check variable bound we can simply call bool_var.check_bound(), and we do not need to pass parameters

LGTM2


fonts.OpenFace undefined (type gopi.Driver has no field or method OpenFace)

from: http://djthorpe.github.io/gopi/VGFONT.html
 // Create a set of font faces
  fonts, err := gopi.Open(rpi.VGFont{
    PPI: 72
  }, logger)
  if err != nil { /* Handle error */ }
  defer fonts.Close()

Thanks, I will take a look at this shortly and get back to you.

This is fixed the new V2 branch....two years later....