npm run jetty failure

Failed to start, looks like there is a conflict resolving an angular dependency:

><EMAIL_ADDRESS>jetty /Users/npblair/git/uw-frame
> cd uw-frame-java && mvn jetty:run

/Users/npblair/git/uw-frame/uw-frame-java
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building uw-frame-parent 2.2.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] >>> jetty-maven-plugin:9.3.0.M2:run (default-cli) > test-compile @ uw-frame >>>
[INFO]
[INFO] --- git-commit-id-plugin:2.1.13:revision (default) @ uw-frame ---
[INFO]
[INFO] --- maven-resources-plugin:2.7:copy-resources (copy-resources) @ uw-frame ---
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 1 resource
[INFO]
[INFO] --- maven-resources-plugin:2.7:copy-resources (copy-components-over) @ uw-frame ---
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 141 resources
[INFO]
[INFO] --- exec-maven-plugin:1.3.2:exec (default) @ uw-frame ---
bower angular-aria#1.4.9    not-cached git://github.com/angular/bower-angular-aria.git#1.4.9
bower angular-aria#1.4.9       resolve git://github.com/angular/bower-angular-aria.git#1.4.9
bower angulartics-google-analytics#~0.1.4       not-cached git://github.com/angulartics/angulartics-google-analytics.git#~0.1.4
bower angulartics-google-analytics#~0.1.4          resolve git://github.com/angulartics/angulartics-google-analytics.git#~0.1.4
bower angular-bootstrap#0.13.4                      cached git://github.com/angular-ui/bootstrap-bower.git#0.13.4
bower angular-bootstrap#0.13.4                    validate 0.13.4 against git://github.com/angular-ui/bootstrap-bower.git#0.13.4
bower jquery#>=1.6                                  cached git://github.com/jquery/jquery-dist.git#2.2.0
bower jquery#>=1.6                                validate 2.2.0 against git://github.com/jquery/jquery-dist.git#>=1.6
bower jquery#>= 1.9.0                               cached git://github.com/jquery/jquery-dist.git#2.2.0
bower jquery#>= 1.9.0                             validate 2.2.0 against git://github.com/jquery/jquery-dist.git#>= 1.9.0
bower angulartics#~1.0.3                            cached git://github.com/angulartics/angulartics.git#1.0.3
bower angulartics#~1.0.3                          validate 1.0.3 against git://github.com/angulartics/angulartics.git#~1.0.3
bower angular-mocks#1.4.9                       not-cached git://github.com/angular/bower-angular-mocks.git#1.4.9
bower angular-mocks#1.4.9                          resolve git://github.com/angular/bower-angular-mocks.git#1.4.9
bower angular-route#1.4.9                           cached git://github.com/angular/bower-angular-route.git#1.4.9
bower angular-route#1.4.9                         validate 1.4.9 against git://github.com/angular/bower-angular-route.git#1.4.9
bower bootstrap#3.1.1                               cached git://github.com/twbs/bootstrap.git#3.1.1
bower bootstrap#3.1.1                             validate 3.1.1 against git://github.com/twbs/bootstrap.git#3.1.1
bower angular-sanitize#1.4.9                        cached git://github.com/angular/bower-angular-sanitize.git#1.4.9
bower angular-sanitize#1.4.9                      validate 1.4.9 against git://github.com/angular/bower-angular-sanitize.git#1.4.9
bower ngstorage#0.3.10                              cached git://github.com/gsklee/ngStorage.git#0.3.10
bower ngstorage#0.3.10                            validate 0.3.10 against git://github.com/gsklee/ngStorage.git#0.3.10
bower requirejs#~2.1.22                             cached git://github.com/jrburke/requirejs-bower.git#2.1.22
bower requirejs#~2.1.22                           validate 2.1.22 against git://github.com/jrburke/requirejs-bower.git#~2.1.22
bower angulartics-google-analytics#~0.1.4         download https://github.com/angulartics/angulartics-google-analytics/archive/0.1.4.tar.gz
bower jquery#>= 1.9.0                                  new version for git://github.com/jquery/jquery-dist.git#>= 1.9.0
bower jquery#>= 1.9.0                              resolve git://github.com/jquery/jquery-dist.git#>= 1.9.0
bower jquery#>=1.6                                     new version for git://github.com/jquery/jquery-dist.git#>=1.6
bower jquery#>=1.6                                 resolve git://github.com/jquery/jquery-dist.git#>=1.6
bower jquery#>= 1.9.0                             download https://github.com/jquery/jquery-dist/archive/2.2.1.tar.gz
bower jquery#>=1.6                                download https://github.com/jquery/jquery-dist/archive/2.2.1.tar.gz
bower angular-aria#1.4.9                          download https://github.com/angular/bower-angular-aria/archive/v1.4.9.tar.gz
bower angular-mocks#1.4.9                         download https://github.com/angular/bower-angular-mocks/archive/v1.4.9.tar.gz
bower jquery#~2.2.1                             not-cached git://github.com/jquery/jquery-dist.git#~2.2.1
bower jquery#~2.2.1                                resolve git://github.com/jquery/jquery-dist.git#~2.2.1
bower angular-gravatar#0.4.1                    not-cached git://github.com/wallin/angular-gravatar.git#0.4.1
bower angular-gravatar#0.4.1                       resolve git://github.com/wallin/angular-gravatar.git#0.4.1
bower angular-resource#1.4.9                    not-cached git://github.com/angular/bower-angular-resource.git#1.4.9
bower angular-resource#1.4.9                       resolve git://github.com/angular/bower-angular-resource.git#1.4.9
bower jquery#~2.2.1                               download https://github.com/jquery/jquery-dist/archive/2.2.1.tar.gz
bower bootstrap#3.3.6                               cached git://github.com/twbs/bootstrap.git#3.3.6
bower bootstrap#3.3.6                             validate 3.3.6 against git://github.com/twbs/bootstrap.git#3.3.6
bower angular-gravatar#0.4.1                      download https://github.com/wallin/angular-gravatar/archive/0.4.1.tar.gz
bower SHA-1#*                                       cached git://github.com/linkgod/SHA-1.git#0.1.1
bower SHA-1#*                                     validate 0.1.1 against git://github.com/linkgod/SHA-1.git#*
bower angular-resource#1.4.9                      download https://github.com/angular/bower-angular-resource/archive/v1.4.9.tar.gz
bower angular#1.4.9                                 cached git://github.com/angular/bower-angular.git#1.4.9
bower angular#1.4.9                               validate 1.4.9 against git://github.com/angular/bower-angular.git#1.4.9
bower angulartics-google-analytics#~0.1.4          extract archive.tar.gz
bower angulartics-google-analytics#~0.1.4         resolved git://github.com/angulartics/angulartics-google-analytics.git#0.1.4
bower angular-aria#1.4.9                           extract archive.tar.gz
bower angular-aria#1.4.9                          resolved git://github.com/angular/bower-angular-aria.git#1.4.9
bower angular-gravatar#0.4.1                       extract archive.tar.gz
bower angular-mocks#1.4.9                          extract archive.tar.gz
bower angular-gravatar#0.4.1                      resolved git://github.com/wallin/angular-gravatar.git#0.4.1
bower angular-mocks#1.4.9                         resolved git://github.com/angular/bower-angular-mocks.git#1.4.9
bower jquery#>= 1.9.0                              extract archive.tar.gz
bower angular-resource#1.4.9                       extract archive.tar.gz
bower jquery#>=1.6                                 extract archive.tar.gz
bower jquery#~2.2.1                                extract archive.tar.gz
bower angular-resource#1.4.9                      resolved git://github.com/angular/bower-angular-resource.git#1.4.9
bower jquery#>= 1.9.0                             resolved git://github.com/jquery/jquery-dist.git#2.2.1
bower jquery#>=1.6                                resolved git://github.com/jquery/jquery-dist.git#2.2.1
bower jquery#~2.2.1                               resolved git://github.com/jquery/jquery-dist.git#2.2.1
bower                                            ECONFLICT Unable to find suitable version for angular
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 5.290 s
[INFO] Finished at: 2016-03-08T10:32:44-06:00
[INFO] Final Memory: 11M/208M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.3.2:exec (default) on project uw-frame: Command execution failed. Process exited with an error: 1 (Exit value: 1) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

npm ERR! Darwin 14.5.0
npm ERR! argv "/usr/local/Cellar/node/5.0.0/bin/node" "/usr/local/bin/npm" "run" "jetty"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.9
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>jetty: `cd uw-frame-java && mvn jetty:run`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>jetty script 'cd uw-frame-java && mvn jetty:run'.
npm ERR! This is most likely a problem with the uw-frame package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     cd uw-frame-java && mvn jetty:run
npm ERR! You can get their info via:
npm ERR!     npm owner ls uw-frame
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/npblair/git/uw-frame/npm-debug.log

Oddly enough, if I cd into uw-frame-components first, run npm test (which fails with a different error), then cd back up and run npm run jetty, the app starts.

thought, delete node_modules and bower_components and do a fresh npm install

I did notice bower is weird with updates to dependencies if someone else did the bower upgrade.

Also, noticed you are just doing mvn jetty:run. Try using npm run jetty instead as there is pre steps that npm does.

I also added a note to the release notes. I'm going to close this as "upgrade issues".

I'm not running mvn jetty:run, I'm running npm run jetty per the docs. What you see at the top is the output from npm.
I'll try to reproduce.

npm run clean did the trick. A fresh git clone from this repo also worked with npm run jetty, so I suspect something was off with my bower_components folder. This is ok to close.

Sweet, thanks for the follow up @nblair . This confirms my assumption. When we upgraded a bunch of bower dependencies, that breaks if you have a stale bower_components in your repo.

Maybe we should make clean a prerequisite step?
"prejetty": "npm run clean"

Totally could, but then every build would have to re-download the whole bower folder. Not apposed but will put a crimp in build time.

Oh, good point


gcc: fix Hydra builds for bootstrapTools.mips64el-linux-gnuabin32

Description of changes
The Hydra builds for bootstrapTools.mips64el-linux-gnuabin32.build are currently failing due to make-bootstrap-files.nix expecting to find libraries in $PREFIX/lib, whereas on mips gcc uses the slightly awkward IRIX convention:
$PREFIX/lib   = mips32
$PREFIX/lib32 = mips64n32
$PREFIX/lib64 = mips64n64

We already work around a similar problem on x86_64 by creating symlinks from lib64 to lib.  This PR disables that workaround if isMips64n32 and enables an analogous workaround to link lib32 to lib.
Things done

Built on platform(s)

[x] powerpc64le-linux (cross to mips64n32)
[x] mips64n32-linux (bootstrap from newly-built bootstrap-files, up to hello)

[X] Tested compilation of many packages that depend on this change
[X] Tested basic functionality of all binary files (usually in ./result/bin/)
[X] Fits CONTRIBUTING.md.

Using bootstrap-files built from this PR:
nix build -f . -L --arg localSystem '(import ./lib).systems.examples.mips64el-linux-gnuabin32' hello
...
hello> make[3]: Leaving directory '/build/hello-2.12'
hello> make[2]: Leaving directory '/build/hello-2.12'
hello> make[1]: Leaving directory '/build/hello-2.12'
hello> post-installation fixup
hello> shrinking RPATHs of ELF executables and libraries in /nix/store/5d04x57amfyc1sb42g21jrjxfhx2pd4n-hello-2.12
hello> shrinking /nix/store/5d04x57amfyc1sb42g21jrjxfhx2pd4n-hello-2.12/bin/hello
hello> gzipping man pages under /nix/store/5d04x57amfyc1sb42g21jrjxfhx2pd4n-hello-2.12/share/man/
hello> strip is /nix/store/29jinn47ar9s1brdyi8qfyb8n74g63k8-gcc-wrapper-10.4.0/bin/strip
hello> stripping (with command strip and flags -S) in /nix/store/5d04x57amfyc1sb42g21jrjxfhx2pd4n-hello-2.12/bin
hello> patching script interpreter paths in /nix/store/5d04x57amfyc1sb42g21jrjxfhx2pd4n-hello-2.12
hello> checking for references to /build/ in /nix/store/5d04x57amfyc1sb42g21jrjxfhx2pd4n-hello-2.12...

nix@oak:/nix/nixpkgs$ result/bin/hello
Hello, world!

Note that the nix binary in the example above needs to be built with #6456 (or else use --disable-syscall-filters).

This Hydra build is the first one to include this PR, so it ought to produce a working bootstrap-files.

Hmm, yes: https://hydra.nixos.org/eval/1777726?filter=mips
Some failing jobs remain, but those steps probably shouldn't be attempted and "fix" would be by removing them (or something similar).

This Hydra build is the first one to include this PR, so it ought to produce a working bootstrap-files.

Nice: #188334

Hmm, yes: https://hydra.nixos.org/eval/1777726?filter=mips
Some failing jobs remain, but those steps probably shouldn't be attempted and "fix" would be by removing them (or something similar).

When I click the link above, I see the failures, all for attrnames of the form bootstrapTools.${PLATFORM}.bootstrapTools.
Hydra should never attempt to build bootstrapTools.${PLATFORM}.bootstrapTools unless with stdenv; buildPlatform.canExecute hostPlatform.
Indeed, there are a ton of Hydra failures in this category; I count 17 of them:
https://hydra.nixos.org/eval/1777726?filter=.bootstrapTools&compare=1777572&full=#tabs-still-fail
I'm preparing a PR to fix this.

Indeed, there are a ton of Hydra failures in this category; I count 17 of them:

The fix is #188339.


[MM-37065] - No way to complete onboarding in mobile view

Summary
This fixes a known overflow-y on iOS. See https://stackoverflow.com/questions/35469227/overflow-y-not-working-in-safari-inside-a-modal
Ticket Link
MM-37065
Release Note
NONE

Hello @stevemudie gentle reminder on this

Cherry pick is scheduled.

/cherry-pick cloud

Cherry pick is scheduled.


v5.1.0: Can't use workspace related settings

Hi @glenn2223,
Can you please assist me with defining settings based on workspaces? I have two projects and different settings are needed.
I have defined the necessary settings in .vscode/settings.json for each workspace, but they are not used.
{
	"liveSassCompile.settings.showOutputWindowOn": "None",
	"liveSassCompile.settings.forceBaseDirectory": "/resources/sass",
	"liveSassCompile.settings.formats": [
		{
			"format": "expanded",
			"extensionName": ".css",
			"savePath": "/public/css"
		},
		{
			"extensionName": ".min.css",
			"format": "compressed",
			"savePath": "/public/css"
		}
	]
}

When saving the .scss file, a new .css file is generated in the same folder /resources/sass, not in the one that I've assigned /public/css.

Very strange. First, I just want to make sure that you're using one of the v5.1.0-rc releases.
It's also worth noting that the forceBaseDirectory setting affects the output path, this means that it should be outputting the file to /resources/sass/public/css
Finally, can you provide two things:

a screenshot of the folder structure (if you can)
the trace output log
You can do this by:

setting showOutputWindowOn to Trace
save a file - which will output a load of information
paste the log here

This is the result from showOutputWindowOn:
VS Code event: "onDidSaveTextDocument"
--------------------
SASS file saved
A SASS file has been saved, starting checks
--------------------
Checking SASS path isn't excluded
Path: /Users/sorinhaidau/questo.lrvl/resources/sass/styles.scss
--------------------
Checking all workspace folders in project
--------------------
Checking folder 1 of 1
Folder: questo.lrvl
--------------------
`forceBaseDirectory` setting found, checking validity
--------------------
No problem with path, changing from workspace folder
New folder: /Users/sorinhaidau/questo.lrvl/resources/sass
--------------------
Searching folder
--------------------
File found, not excluded
--------------------
Change detected - 7/17/2021, 11:38:04 PM
styles.scss
--------------------
File is not a partial
The file is not a partial so we will compile only this one
Path: /Users/sorinhaidau/questo.lrvl/resources/sass/styles.scss
--------------------
Starting format 1 of 1
Settings: {"format":"expanded","extensionName":".css","savePath":null,"savePathSegmentKeys":null,"savePathReplaceSegmentsWith":null}
--------------------
Calculating file paths
Calculating the save paths for the css and map output files
Originating path: /Users/sorinhaidau/questo.lrvl/resources/sass/styles.scss
--------------------
Searching for workspace
Need to find a workspace folder that holds the file
--------------------
Workspace has folder
Searching for the workspace folder where this file is located
Path: /Users/sorinhaidau/questo.lrvl/resources/sass/styles.scss
--------------------
Checking folder 1 of 1
Folder: questo.lrvl
MATCH
--------------------
Using: /Users/sorinhaidau/questo.lrvl
--------------------
Starting compilation
Starting compilation of file
Path: /Users/sorinhaidau/questo.lrvl/resources/sass/styles.scss
--------------------
Autoprefixer isn't false, applying to file
Path: /Users/sorinhaidau/questo.lrvl/resources/sass/styles.scss
--------------------
Preparing autoprefixer
--------------------
Changing BROWSERSLIST_DISABLE_CACHE setting
Was: 1
Now: 1
--------------------
Starting autoprefixer
--------------------
Completed autoprefixer
--------------------
Restored BROWSERSLIST_DISABLE_CACHE to: 1
--------------------
Saving file
Saving a file to the system
Target: /Users/sorinhaidau/questo.lrvl/resources/sass/styles.css.map
--------------------
Saving file
Saving a file to the system
Target: /Users/sorinhaidau/questo.lrvl/resources/sass/styles.css
--------------------
Generated:
Changing status bar to: Success
Registered timeout to switch state back
--------------------
/Users/sorinhaidau/questo.lrvl/resources/sass/styles.css.map
/Users/sorinhaidau/questo.lrvl/resources/sass/styles.css
--------------------
Registered timeout to revert UI to correct watching status
--------------------
Switching UI state
--------------------
Changing status bar to: Watching
--------------------
Watching...
--------------------
Firing timeout function to switch back
--------------------
Changing status bar to: Watching
--------------------

Thanks for that. I have identified the fault and resolved it.
Please can you confirm that the latest release has resolved your issue?

It's working perfectly!
Thank you very very much.

That's great! Thanks for confirming 😁


[Linux] fix drawmatrix transform order to match Windows.

same as andlabs/libui#383

I don't think any of the "Page 6" tests intest/drawtests.c expose this bug?
Does your logo test still expose this bug? Some screenshots of the different behavior would also help.

Direct2D: How to Scale an Object from tester "Page 6" perhaps? I will try that.

Okay just tested with "Page 6" and confirmed: Windows code is correct, other two are wrong.
I will need to port the fix over to macOS next.
See old issue

Update: this PR doesn't actually work..
Still wrong behavior on Linux, even with this patch applied:

Correct on Windows:

You can see that the smaller rectangle is supposed to be inside the larger one.
MSDN screenshot for reference:

Well, it was just cherry-pick from https://github.com/Arisotura/melonDS/commit/dd529f0f5cdf37e4196c1793c3c538be8ebe4cd9
I personall  am completely ignorant in that tranformations, sorry.
Maybe it's jet another bug,

Yeah, affine transformations can be a bit tricky.. I've now fixed the bug on Linux and macOS:

Replaced by #265.


Do not rate limit in dev

I ran into a rate limit while running the service tests, which seems not ideal!
I wonder if it would be better to set RATE_LIMIT=true on the server and default to false.

Warnings

:warning:

This PR modified package.json, but not package-lock.json - Perhaps you need to run npm install?

Messages

:book:

:sparkles: Thanks for your contribution to Shields, @paulmelnikow!

  Generated by :no_entry_sign: dangerJS

@RedSparr0w Would you mind giving this a look?

Yeah this sounds good, doesn't make sense to rate limit ourselves, Would whitelisting localhost/<IP_ADDRESS> also work?
https://github.com/badges/shields/blob/09a2ca144d6529d95e835ac7ee6acff904234a47/lib/sys/monitor.js#L21-L28

Would whitelisting localhost/<IP_ADDRESS> also work?

That is a great idea! Maybe that would be a simpler way to make this change.

Hmm, this code doesn't have any tests, though. Maybe it's better to merge the fix I'm confident in.

I can't seem to hit the rate limit, I've tried setting:
    this.period = 5000;
    this.maxHitsPerPeriod = 10;

and also set RATE_LIMIT=true,
But still seems to pass the limit.
Even made 2 test using the static badge which ran 3500 times each and went through fine.
/badge/test-test-blue.json
/badge/test${i}-test${i}-blue.json

Hmm, did you run the service tests? The static badges aren't rate limited. Not sure whether cached badges would be, either.

That would probably be why then, just tried it on the static badge.
Will give it another go on new badge using a local JSON resource.

@RedSparr0w I've updated this. Would you mind taking it for another spin?

Since you haven't been able to reproduce this, I think I'll close it until I run into the problem again.


Seems doesn't work on Unity2022.3.6f1

As VRC shift to 2022.3.6f1 a few shader need a little rework to make it compatiable with it. eg.Mochiri Shader from Wataameya.
Not sure this is the Generetor problem or the origenal shader problem but UnlitWF shade itself have no problem only the DPS version of UnlitWF cannot compile.
In addition, even with importing a generated UnlitWF DPS from Unity2019project, there are shader errors.

Disappear9 made 2022 compatible DPSShaderGenerator. here is her repository.
https://github.com/Disappear9/DPSShaderGenerator2
and i made unitypackage with her code.
DPSShaderGenerator12.zip


Search records in a CSV file

Description
The idea is to search records in a given CSV file based on provided filters.
Because the return type will basically be the same of csvReader {...}, we could simply integrate filters in it.
Checklist

[x] Implement.
[x] Test.
[x] Refactor.
[x] Document.
[x] Update Work in progress section in changelog.

Done.


Add on_delete options to foreign keys

As suggested by a comment in https://github.com/luckyframework/migrator/issues/22
belongs_to User, on_delete: :cascade
belongs_to User, on_delete: :restrict
add_foreign_key from: :users, to: :comments, on_delete: :nullify # Should only be allowed to use `:nullify` if the column is nilable though!

The method should raise at runtime if you pass an option that is not supported: on_delete: :cascad is not supported. Please use :cascade, :restrict, or :nullify

Closing in favor of more specific: https://github.com/luckyframework/migrator/issues/31
The options for add_foreign_key were covered in https://github.com/luckyframework/migrator/commit/177cfc9e3d96f123eca3a26356cbfc0ddf1b442d


Error: Variables not allowed

kubernetes git:(main) tofu plan
var.proxmox
Enter a value:
╷
│ Error: Variables not allowed
│
│   on  line 1:
│   (source code not available)
│
│ Variables may not be used here.
╵
╷
│ Error: No value for required variable
│
│   on variables.tf line 1:
│    1: variable "proxmox" {
│
│ The root module input variable "proxmox" is not set, and has no default value. Use a -var or -var-file command line argument to provide a value for this variable.

I had previously done all of step 1.  when i deployed "c0depool-iac" which worked. Im now moving to try homelab as it has more features.
for step 2. i created a proxmox.auto.tfvars with
    cluster_name = "pve"
    endpoint = "https://<IP_ADDRESS>:8006"
    insecure = false
    username = "root"
    api_token = "terraform-prov@pve!uic=d1ee6e3c-0f31-48d1-9c15-f148c56203cc"
}```

which is now throwing

Changes to Outputs:
  + talos_config = (sensitive value)
╷
│ Error: Invalid value for input variable
│
│   on variables.tf line 1:
│    1: variable "proxmox" {
│
│ The given value is not suitable for var.proxmox, which is sensitive: attribute "name" is required. Invalid value defined at proxmox.auto.tfvars:1,11-7,2.
╵

You need to provide the name attribute with any value assignment (it's not used in vergard's homelab code).  I've missed that in my posting.  Added it.
Sorry for the oversight, I've copy-pasted my *auto.tfvars file which is based on a patched version of the tofu/kubernetes/variables.tf file where I've remove the name = string definition because it's unused in the code.  PR also pending.

@outbackdingo , the next error you will run into is the one I've stumbled over and which is documented with a workaround in #106

Let me paste my current revised version of the README (which is also giving hints on creating the sealed secrets key as part of the bootstrapping).  Please note that you also need to change the nodes definition in main.tf -- and maybe also deactivate some proxmox volume definitions as well as change IPs for the cluster definition in the same file.
cd tofu/kubernetes      # if not there already
mkdir bootstrap/sealed-secrets/certificate
openssl req -x509 -days 365 -nodes -newkey rsa:4096 -keyout bootstrap/sealed-secrets/certificate/sealed-secrets.key -out bootstrap/sealed-secrets/certificate/sealed-secrets.cert -subj "/CN=sealed-secret/O=sealed-secret"

vi credentials.auto.tfvars

tofu init
tofu apply -target=module.talos.talos_image_factory_schematic.this
tofu apply

talosctl config merge output/talos-config.yaml

CLUSTER="talos"; kubectl config delete-context admin@$CLUSTER; kubectl config delete-user admin@$CLUSTER; kubectl config delete-cluster $CLUSTER

cp ~/.kube/config ~/.kube/config.bak && KUBECONFIG="~/.kube/config:output/kube-config.yaml" kubectl config view --flatten > /tmp/config && mv /tmp/config ~/.kube/config

After the cluster is bootstrapped, you would also need to adapt the K8S code to your environment

adapt any IP (192.168.1.x) and domain (*.stonegarden.dev)
change the email in letsencrypt definition in k8s/infra/controllers/cert-manager/cluster-issuer.yaml
change sealed secrets, see #141 (WIP)
change parameters for cloudflared tunnel in k8s/infra/network/cloudflared/config.yaml
for running ArgoCD with the builtin admin user set admin.enabled: true in k8s/infra/controllers/argocd/values.yaml
before doing so, also change github URLs in all application-set.yaml and project.yaml files used by ArgoCD

and next.... yeah after your comments and help above i started poking around the tree, and it appears quite proprietary to his environment/needs, which some what also fulfil my needs short of a few things added i dont need, im thinking to fork it and make it less proprietary, as in dns names can be vars and such. id like to see it working first though so i know what im dealing with.
Changes to Outputs:

kube_config  = (sensitive value)

Do you want to perform these actions?
OpenTofu will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
module.talos.proxmox_virtual_environment_download_file.this["abel_dcac6b92c17d1d8947a0cee5e0e6b6904089aa878c70d66196bb1138dbd05d1a_v1.8.1"]: Creating...
module.talos.proxmox_virtual_environment_download_file.this["euclid_dcac6b92c17d1d8947a0cee5e0e6b6904089aa878c70d66196bb1138dbd05d1a_v1.8.1"]: Creating...
module.talos.proxmox_virtual_environment_download_file.this["cantor_dcac6b92c17d1d8947a0cee5e0e6b6904089aa878c70d66196bb1138dbd05d1a_v1.8.1"]: Creating...
╷
│ Error: Error initiating file download
│
│   with module.talos.proxmox_virtual_environment_download_file.this["abel_dcac6b92c17d1d8947a0cee5e0e6b6904089aa878c70d66196bb1138dbd05d1a_v1.8.1"],
│   on talos/image.tf line 19, in resource "proxmox_virtual_environment_download_file" "this":
│   19: resource "proxmox_virtual_environment_download_file" "this" {
│
│ Could not get file metadata, unexpected error: error fetching metadata from download url, unexpected error in GetQueryURLMetadata: error retrieving URL metadata for
│ 0xc000492c38: received an HTTP 500 response - Reason: hostname lookup 'abel' failed - failed to get address info for: abel: No address associated with hostname
╵
╷
│ Error: Error initiating file download
│
│   with module.talos.proxmox_virtual_environment_download_file.this["cantor_dcac6b92c17d1d8947a0cee5e0e6b6904089aa878c70d66196bb1138dbd05d1a_v1.8.1"],
│   on talos/image.tf line 19, in resource "proxmox_virtual_environment_download_file" "this":
│   19: resource "proxmox_virtual_environment_download_file" "this" {
│
│ Could not get file metadata, unexpected error: error fetching metadata from download url, unexpected error in GetQueryURLMetadata: error retrieving URL metadata for
│ 0xc00089afc8: received an HTTP 500 response - Reason: hostname lookup 'cantor' failed - failed to get address info for: cantor: No address associated with hostname
╵
╷
│ Error: Error initiating file download
│
│   with module.talos.proxmox_virtual_environment_download_file.this["euclid_dcac6b92c17d1d8947a0cee5e0e6b6904089aa878c70d66196bb1138dbd05d1a_v1.8.1"],
│   on talos/image.tf line 19, in resource "proxmox_virtual_environment_download_file" "this":
│   19: resource "proxmox_virtual_environment_download_file" "this" {
│
│ Could not get file metadata, unexpected error: error fetching metadata from download url, unexpected error in GetQueryURLMetadata: error retrieving URL metadata for
│ 0xc00058ac80: received an HTTP 500 response - Reason: hostname lookup 'euclid' failed - failed to get address info for: euclid: No address associated with hostname
╵

@outbackdingo

it appears quite proprietary to his environment/needs

I feel proprietary is too harsh, but I understand what you mean. I only have a limited time to work on this as a hobby, though I like to think I'm doing incremental improvements.

im thinking to fork it and make it less proprietary, as in dns names can be vars and such.

That would be very welcome! I've been thinking about a template similar to onedr0p's cluster template, but I've prioritised features instead.
A system similar to Spring Initializr, but with more templating would be awesome. Maybe a mega Helm chart?
The biggest hurdle would be customisability though... Nothing wrong with some copy, paste and edit though.

@vehagn your docs are awesome, almost TL;DR.. but you have definatly helped me comprehend a lot of what you did

That would be very welcome! I've been thinking about a template similar to onedr0p's cluster template, but I've prioritised features instead.

I started with c0depool/c0depool-iac.git which also uses sops and after some tweaks had it spun up in a day, caveat to that it had no argo, and some  manual requirements like adding cilium and things. And was pretty clear cut in explaining how to get it spun up, basically step by step, which in my opinion simply makes it easier for those wanting to learn, Im simply trying to get to a point where i have the added features wanted, like auth and security, and since im on a static ip at home, its in my "lab". I understand your fitting the needs to your environment, like cloudflare tunnels and multimedia things, where i dont require them. so im looking to minimize whats deployed.

@sebiklamar

@vehagn, you've used variables before according to a code/commit comment, I remember; how comes you've changed that?

That's for my own convenience. I could alternatively separate it into two variable files, one with public information I can check into the repo and another with private information, but I've been lazy.

See a PoC example for my homelab/k8s/apps/dev/whoami app.

That's a neat approach! I haven't dug into the details yet, but I think I get the gist of it.
I've been planning to replace some of the Argo CD Application resources with ApplicationSets following this article by The Norwegian Mapping Authority. I think that could allow for a more centralised config.

@vehagn, I know onedr0p's cluster template. How would you allow the user to gain from any code changes from upstream that happen after template instantiation?

I would have to dogfood the template myself then.
@outbackdingo

@vehagn your docs are awesome, almost TL;DR.. but you have definatly helped me comprehend a lot of what you did

Thanks! I do have a habit of over-explaining, but that's mostly for myself when I have to understand what I did before.
At the time being this is just a hobby — so time is limited, though I do feel the urge to make it more accessible.

@vehagn i think if i could integrate your mini-lab into my deployment i would be there, my overall issue if theres a ton to change to simply get a cluster up as out environments are a bit different, im on a single DELL R640 in my Home Office/Den on a public IP, behind a opnsense firewall. Simply put your ArgoCD apps deployment, cilium, gateway, cert-manager, sealed secrets, keycloak, and maybe proxmox-csi are mosly what i need to add/integrate to get my lab up, i took down the c0depool deployment, but can easily spin that back up, i think id get stuck at adding the argocd and the missing apps to it.


externals function is called repeatedly for the same request, instead of being cached.

Bug report

What is the current behavior?
For a given request, like "foo", an externals function is called every time the "foo" import is encountered.
Shouldn't it be cached, to save on performance cost?
If the current behavior is a bug, please provide the steps to reproduce.
Add an externals function, like
externals: [function (ctx, request, callback) {
  if (request === 'foo') console.log('foo')
  callback()
}]

and notice that it is called multiple times for the same request (change the code to match an actual request that you have, where it is imported many times throughout your project).
I don't see any reason why the same request would need to be handled differently every time.
What is the expected behavior?
The function should only be called once, the first time a given request is encountered.
Other relevant information:
webpack version:  4.27.1

As a workaround, I do the following. The following is not representative of my more complicated actual code):
externals: [(function() {
  const cache = new Set

  return function skipFoo(ctx, request, callback) {
    if (cache.has(request)) { callback(); return }
    if (request === 'foo') {
      console.log('foo')
    }
    callback()
  }
}())]

I don't see any reason why the same request would need to be handled differently every time.

There is also ctx which could also be different.
Anyway there could be reason why it should be handled differently. e. g. you only want to make foo in one package external.
That's how the resolving works. It context-dependent. non-external import "foo" can also resolve to different modules in your application depending on where it's placed and what's the nearest node_modules contains.


[BUG] Group By regression failure

SELECT Name, COUNT(*) AS Name
FROM $astronauts

Returns
Field `Name` does not exist.

why didn't the regression test find this?

Because this should fail with an error like
"Field Name not found in GROUP BY clause"

Aggregate can't easily determine all situations where a SELECT is made on a column that doesn't exist in a GROUP BY.


WaitFreeExecutionSerializer memory footprint

Motivation:
WaitFreeExecutionSerializer is created for every actor instance, AtomicBoolean and AtomicInteger can be substituted with primitive types to save memory.
Modifications:
Replaced AtomicBoolean and AtomicInteger with volatile int and static AtomicIntegerFieldUpdaters.
Result:
Fixes #214.

@DanielSperry fyi :)

http://normanmaurer.me/blog/2013/10/28/Lesser-known-concurrent-classes-Part-1/


Infinite loop while parsing corrupted pdf

In the function skip_over_whitespace there are these lines
while tok in PDF_WHITESPACE:
    tok = stream.read(1)

if the stream has reached the end then tok == b"". This causes an infinite loop.
This bug can be exploited by passing a corrupted pdf where the pointer to the xref table actually points behind the end of file.
In particular these lines in read_xrefs
stream.seek(startxref)
if misc.skip_over_whitespace(stream):
    ...

Proposed solution is to check against the empty buffer and raise an error.

Thanks, as always! Good catch, and indeed a dangerous bug. I have a fix queued up, hang on :)

Merged (as you probably noticed), and I also just did a bugfix release (0.17.1) to address this. Thanks again!

You might want to handle the skip_over_comment as well. Not sure if it can be exploited, but why take chances.

Ah, good point... I only looked at usages of PDF_WHITESPACE, but skip_over_comment indeed has a similar issue. Will take a look at that one as well.

Also dealt with. Thanks!


[Bug]: There is a bug in List View

What happened?
The bookmark and visit button are not aligned properly
Add screenshots

What browsers are you seeing the problem on?
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Do you want to work on this

Do you want to work on this

Yah I can

I would like to work on this issue plz assign me !! @JasonDsouza212


Add QSL card standard to paper sizes

I'm looking to design my HAM radio club's QSL cards with Typst and figured it'd be nice to include the standard QSL card format in the available paper dimensions.

I think this is a bit too specialized to be built in. It's very easy to set custom width and height, after all.


File with uppercase extension were not considered as image

Hi @BaptisteLemarcis
Thanks for this contribution, I'm going to pull it into #549 as I'm consolidating a bunch of changes there.


@alloy - [EOY] End of year list QA (closes #569)

This closes the small amount of feedback @briansw had but I noticed another bigger issue came up after last night.
https://www.dropbox.com/s/1vbef7ab19o2y5y/Screenshot 2016-12-16 10.34.31.png?dl=0
The gravity /artists/:id/image endpoint is now giving an unauthorized response. @mzikherman is there a better alternative we could be using?

Looks like force has an endpoint that does the same thing, we will just use that.


Unexpected EOF error

moreover with some files, I get
Error during decoding: Error { kind: UnexpectedEof, message: "failed to fill whole buffer" }

Originally posted by @mschnell1 in https://github.com/TechnikTobi/little_exif/issues/32#issuecomment-2438852691
Required:

Example file that produces the above error

www.bitvibe.de/Upload/IMG-20180904-WA0002.jpg

Problem found and fixed. Will be available in the next beta.

Great !


CCS2 throws unexpected exception

Report from the field, see email on 12/7/2015 from mseetin.

This was an unhandled AlphaBetaMismatch from Polish, which we now catch appropriately. Still need to figure out why we're getting them, however.

This indicates a mathematical error and is not yet diagnosed or handled correctly, I wasn't even aware we tried to band aid it with a catch statement.

Actually, I might be totally off base here, are we referring to: https://github.com/PacificBiosciences/ConsensusCore2/pull/7 or is this unrelated?

This is unrelated. This is "Unexpected exception" warnings being thrown in the Polish step, which we know happen due to possible issues in CC2. You fixed this in 5c877533d1200a95f94cfacd1a63ff1e8b01a10f.

doh! Sorry for reopening.


Just generate the SQL based on a xml template so it can be used in custom JDBC call

Hi
we do use custom jdbc connectors for different databases but we still like to use mybatis for the dynamic sql generation. I would like to hape an option to get the generated sql as text instead of executing it with the built in functions.
Regards
Petr

It is possible to get the generated SQL statement via Configuration.
configuration.getMappedStatement(statementId).getBoundSql(parameterObj).getSql();

But it is a task for a template engine like FreeMarker or Velocity.

Thank You!
We will do a full migration later but we need to start somewhere.
Regards
Petr
2017-06-05 18:18 GMT+02:00 Iwao AVE<EMAIL_ADDRESS>
It is possible to get the generated SQL statement via Configuration.
configuration.getMappedStatement(statementId).getBoundSql(parameterObj).getSql();
But it is a task for a template engine like FreeMarker or Velocity.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/mybatis/mybatis-3/issues/1021#issuecomment-306232416,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AD3l8O013_Pj-5XMk6akEFpG-3aSN_AAks5sBCplgaJpZM4NqaZq
.

No problem. Good luck! =)

Hi Petr,
This can help: https://github.com/mnesarco/mybatis-jdbc
On Tue, Jun 6, 2017 at 2:19 PM, Iwao AVE<EMAIL_ADDRESS>wrote:

No problem. Good luck! =)
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/mybatis/mybatis-3/issues/1021#issuecomment-306589768,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABCXVRRnR9O_3SJWvVdqMhXMVt2Ky2zwks5sBaZKgaJpZM4NqaZq
.

--
Frank D. Martínez M.


Added AsymmetricKey support (New, Get and Remove)

Type of Change

[ ] Bug fix (non-breaking change, fixes # )
[x] New feature (non-breaking change, adds functionality, fixes # )
[ ] Breaking change (effects multiple commands or functionality, fixes # )
[x] Ran manual Pester test and has passed (`.\tests\manual.pester.ps1)
[ ] Adding code coverage to existing functionality
[x] Pester test is included
[x] If new file reference added for test, has is been added to github.com/sqlcollaborative/appveyor-lab ?
[ ] Nunit test is included
[x] Documentation
[ ] Build system

Purpose

To make sure we're fully supporting backup encryption we need to have some means of handling Asymmetric keys. So we needed these command:
Get-DbaDbAsymmetricKey
New-DbaDbAsymmetricKey
Remove-DbaAsymmetricKey
Approach
Added the commands. All follow standard dbatools style (ie; I've used copy and paste liberally)
No EKM (Provider) support yet as I don't have anything to test against. But, should be moving to Azure Key Vault soonish, so will add it then
Commands to test
Examples in the help
Screenshots

Sorry forgot about the new style commit messages. Will fix up tomorrow when back at a proper keyboard

It is just the one you development that we are trying to get consistent right now. Your branch commits are fine.

holding off as I realised at 3am (thank you insomnia) that there's a false positive in the tests as I haven't merged a file into dev in the lab repo

Changes are now in 1.0.61 👍


Remove section for Help

That's for the old CHM-style help files that no longer exist in the product.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8116c71f-c2e1-0d19-7a06-10daf832cc62
Version Independent ID: 93d928a8-b733-1dec-b31b-339c0730ab84
Content: Accessibility - Configuration Manager
Content Source: sccm/core/understand/accessibility-features.md
Product: configuration-manager
GitHub Login: @aczechowski
Microsoft Alias: aaroncz

@aczechowski Can this issue be closed? Was the help section already removed?

Yes, thanks for catching it @jpcast88!


PLease add the link to add additional nodes

<<add additional HGS nodes to your cluster?? LINK is missing on Bastion forest setups (TPM/KEY/AD mode)

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 6ae25db7-fa78-b9bd-463c-a6debe7387f9
Version Independent ID: 9384ad42-9e6a-ecd6-b07f-7baf55cbe4eb
Content: Initialize the HGS cluster using TPM mode in a bastion forest
Content Source: WindowsServerDocs/security/guarded-fabric-shielded-vm/guarded-fabric-initialize-hgs-tpm-mode-bastion.md
Product: windows-server
Technology: security-guarded-fabric
GitHub Login: @rpsqrd

I am following all of these steps verbatim, and I cannot get the HGS Service initialized. It appears that I am not included the correct parameters / flags. I want to initialize the service with HTTP and HTTPS (HGS server module states this is required, but HGS documentation says otherwise).
What am I doing wrong here? Please advise.
Error Message:
Write-StreamAndLog : Exception calling "Invoke" with "2" argument(s): "Value does not fall within the expected range."
At C:\windows\system32\WindowsPowerShell\v1.0\Modules\HgsServer\HgsServer.psm1:2407 char:17
Initialize Command + Parameters:
Initialize-Hgsserver -UseExistingDomain
-ServiceAccount 'USAHGSgMSA' -JeaReviewersGroup 'USHgsJeaReviewers'
-JeaAdministratorsGroup 'USHgsJeaAdmins' -HgsServiceName 'USAHgsService'
-ClusterName 'USAHgsCluster' -SigningCertificateThumbprint $Thumbprint
-EncryptionCertificateThumbprint $Thumbprint -HttpsCertificateThumbprint $Thumbprint
-Http -Https
-TrustTpm -LogDirectory 'C:\hgsdata'
-Verbose

Hi @carlosmayol - I'm not sure I agree that it's best to go here. Can you provide some more information on what your thought is for where it would go, please?

#assign:dknappettmsft

Sure, happy to help, as well in other scenarios like initializing in a dedicated forest https://docs.microsoft.com/en-us/windows-server/security/guarded-fabric-shielded-vm/guarded-fabric-initialize-hgs-tpm-mode-default you will notice at the end of the section there is a link to "ADD additional nodes"  We want the same sentence to appear in the deployment using a Bastion Forest , so basically you just need to copy/past the part: That's it! In a production environment, you should continue to add additional HGS nodes to your cluster.

Thanks for the clarification. I've added this and the change should be visible later today.
#please-close


getSelectedItem() doesn't return object correctly

Describe the bug
While writing the tests it was noticed that the method "getSelectedItem()" of the control "sap.m.Select" (https://sapui5.hana.ondemand.com/#/api/sap.m.Select%23methods/getSelectedItem) does not return a WDI5Control object.
Instead, the object is output as a string on the console and returned as a simple object (Not of the type WDI5Control).
This makes it impossible to continue working with the requested control.
To Reproduce
Steps to reproduce the behavior:

First you need a simple SAP UI5 application with a sap.m.Select control
Then you have to create the required test files for WDI5 for this application.
My used code for the tests is further described below.
When the test environment has been created, you now start the WDI5 tests
During the test a very long string is output to the console (Console output is included as an appendix) and the tests would fail if you continue to work with this object
See error and the object is output to the console as string

Expected behavior
The object is not output to the console and is instead stored as an WDI5Control object in a variable.
Logs/Console Output
Output.txt
const identifier = {
            forceSelect: true,
            selector: {
                interaction: "root",
                controlType: "sap.m.Select",
                viewName: "NameSpace.view.Detail",
                labelFor: {
                    text: "LabelForSelect"
                }
            }
}

const checkSelect = async () => {
    // Returns WDI5Control object
    const location = await browser.asControl(identifier);

    // Returns object (Inside Output.txt)
    const locationSelected = await location.getSelectedItem();

    // This test will fail, because locationSelected is missing the function getText()
    expect(await locationSelected.getText()).toEqual("Text of selected item");
}

describe("Tests for detail view", () => {
    it("should have select item 'Text of selected item', checkSelect);
});

Screenshots

Runtime Env (please complete the following information):

wdi5/wdio-ui5-service-version: 0.9.3
UI5 version: 1.102.1
wdio-version (output of wdio --version): 8.3.2
node-version (output of node --version): v14.18.3
OS: mac os x
chrome (v102.0.5005.115)

thanks for providing such a detailed error description and log!
i just checked and indeed we don't have a sap.m.Select in our tests yet.
let us get onto this, then we'll check back in here with the results.

bug confirmend, fix underway

please also note that due to the implementation of the sap.m.Select, you have to first interact with the dropdown before its' items appear in the DOM and are thus selectable.
See the respective test for a code example: https://github.com/js-soft/wdi5/blob/10eae1d3fd07aa26d4335bafa290f142535c9e03/examples/ui5-js-app/webapp/test/e2e/locators-basic.test.js#L71-L80

Wow you guys are really fast!
Thank you dear WDI5 team for the quick solution 🙏

hmm. Just wondering: will select.open() work (be enough) if the select is disabled (enabled=false and/or editable=false)?

you'll need the select.open() only for getting to the items aggregation.
for locating the select itself, browser.asControl(selector) is sufficient.

getSelectedItem wasn't working before the patch (which is an aggregation, but an aggregation to a single item, visible while select is closed - but I have not the slightest idea whether the rendered HTML has enough information to describe that item object).
I'm not sure whether we ever need the getSelectedItem for a disabled select. but without getSelectedItem there is no way to find out, what is currently shown in the select control (what is visible to the user)
PS: I guess, using getSelectedKey should work if we know the key, which may be a "random" guid, though
PPS: select.setEnabled(true) + select.open() should work in combination, so probably not that big deal after all...


Force update brew after installation. task fails if homebrew_user is different than ansible_user_id

In my playbook I'm creating a new user and setting homebrew_user to that user (ci_user). However when running the homebrew role, I get this error, because become causes the user to be root instead of ci_user:
TASK [ansible-role-homebrew : Ensure proper ownership on homebrew_install_path subdirs.] *************************************************************************************************************************************
ok: [parallels-vm] => {"changed": false, "gid": 20, "group": "staff", "mode": "0775", "owner": "ci_user", "path": "/usr/local/Homebrew", "size": 640, "state": "directory", "uid": 5013}

TASK [ansible-role-homebrew : Check if homebrew binary is already in place.] *************************************************************************************************************************************************
ok: [parallels-vm] => {"changed": false, "stat": {"exists": false}}

TASK [ansible-role-homebrew : Symlink brew to homebrew_brew_bin_path.] *******************************************************************************************************************************************************
changed: [parallels-vm] => {"changed": true, "dest": "/usr/local/bin/brew", "gid": 20, "group": "staff", "mode": "0755", "owner": "root", "size": 28, "src": "/usr/local/Homebrew/bin/brew", "state": "link", "uid": 0}

TASK [ansible-role-homebrew : Ensure proper homebrew folders are in place.] **************************************************************************************************************************************************
changed: [parallels-vm] => (item=Cellar) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "Cellar", "mode": "0755", "owner": "ci_user", "path": "/usr/local/Cellar", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=Homebrew) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "Homebrew", "mode": "0775", "owner": "ci_user", "path": "/usr/local/Homebrew", "size": 640, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=Frameworks) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "Frameworks", "mode": "0755", "owner": "ci_user", "path": "/usr/local/Frameworks", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=Caskroom) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "Caskroom", "mode": "0755", "owner": "ci_user", "path": "/usr/local/Caskroom", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=bin) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "bin", "mode": "0775", "owner": "ci_user", "path": "/usr/local/bin", "size": 160, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=etc) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "etc", "mode": "0755", "owner": "ci_user", "path": "/usr/local/etc", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=include) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "include", "mode": "0755", "owner": "ci_user", "path": "/usr/local/include", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=lib) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "lib", "mode": "0755", "owner": "ci_user", "path": "/usr/local/lib", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=opt) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "opt", "mode": "0755", "owner": "ci_user", "path": "/usr/local/opt", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=sbin) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "sbin", "mode": "0755", "owner": "ci_user", "path": "/usr/local/sbin", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=share) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "share", "mode": "0755", "owner": "ci_user", "path": "/usr/local/share", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=share/zsh) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "share/zsh", "mode": "0755", "owner": "ci_user", "path": "/usr/local/share/zsh", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=share/zsh/site-functions) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "share/zsh/site-functions", "mode": "0755", "owner": "ci_user", "path": "/usr/local/share/zsh/site-functions", "size": 64, "state": "directory", "uid": 5013}
changed: [parallels-vm] => (item=var) => {"ansible_loop_var": "item", "changed": true, "gid": 20, "group": "staff", "item": "var", "mode": "0755", "owner": "ci_user", "path": "/usr/local/var", "size": 64, "state": "directory", "uid": 5013}

TASK [ansible-role-homebrew : Force update brew after installation.] *********************************************************************************************************************************************************
fatal: [parallels-vm]: FAILED! => {"changed": true, "cmd": ["/usr/local/bin/brew", "update", "--force"], "delta": "0:00:00.416366", "end": "2020-07-12 10:11:34.050940", "msg": "non-zero return code", "rc": 1, "start": "2020-07-12 10:11:33.634574", "stderr": "Error: Running Homebrew as root is extremely dangerous and no longer supported.\nAs Homebrew does not drop privileges on installation you would be giving all\nbuild scripts full access to your system.", "stderr_lines": ["Error: Running Homebrew as root is extremely dangerous and no longer supported.", "As Homebrew does not drop privileges on installation you would be giving all", "build scripts full access to your system."], "stdout": "", "stdout_lines": []}

RUNNING HANDLER [elliotweiser.osx-command-line-tools : Cleanup] **************************************************************************************************************************************************************

I know that this feature has been tested before it was merged, but I don't understand why it is not working for me. Any ideas?

Looks like I've found out the culprit. I forgot that I had left the following variables in group_vars/all.yml from a very early stage of my playbook:
ansible_user: ppombeiro
ansible_become_user: root

Once I removed those values the role behaved as expected. Blame it on my Ansible rookiness!


Make GatherPipe's internals analogous to Aggregate in terms of Looping

Done. However, I need to write more extensive test cases --- be sure to do that.


Floating-point parsing operations no longer throw fail or throw an OverflowException

Floating-point parsing operations no longer fail on overflows
The floating-point parsing methods no longer throw an OverflowException or return false when they parse a string whose numeric value is outside the range of the Single or Double floating point type.
Version introduced
3.0
Old behavior
In .NET Core 2.2 and earlier versions, the Double.Parse and Single.Parse methods throw an OverflowException for values that outside the range of their respective type. The Double.TryParse and Single.TryParse methods return false for the string representations of out-of-range numeric values.
New behavior
Starting with .NET Core 3.0, the Double.Parse, Double.TryParse, Single.Parse, and Single.TryParse methods no longer fail when parsing out-of-range numeric strings. Instead, the Double parsing methods return Double.PositiveInfinity for values that exceed Double.MaxValue, and they return Double.NegativeInfinity for values that are less than Double.MinValue. Similarly, the Single parsing methods return Single.PositiveInfinity for values that exceed Single.MaxValue, and they return Single.NegativeInfinity for values that are less than Single.MinValue.
Reason for change
This conforms to the expected behavior for floating-point types as defined in IEEE 754:2008.
Recommended action
This change can affect your code in either of two ways:

Your code depends on the handler for the OverflowException to execute when an overflow occurs. In this case, you should remove the catch statement and place any necessary code in an If statement that tests whether Double.IsInfinity or Single.IsInfinity is true.
Your code assumes that floating-point values are not Infinity. In this case, you should add the necessary code to check for floating-point values of PositiveInfinity and NegativeInfinity.

Category

CoreFx

Affected APIs

System.Double.Parse
System.Double.TryParse
System.Single.Parse
System.Single.TryParse

Issue metadata

Issue type: breaking-change

//cc @tannergooding

Should it be documented that this was done for better IEEE 754:2008 compliance (which is the spec that defines the correct behavior for these operations)?
Does it need to be explicitly called out that it is not a value that is greater than double.MaxValue or less than double.MinValue, but rather a value that when rounded according to the IEEE rounding rules is closer to double.Positive/NegativeInfinity? More precisely, a value that is greater than double.MaxValue + (double.MaxValue - Math.BitDecrement(double.MaxValue)) (where such a value actually representable) will round to PostiveInfinity. Values less than this, but still greater than double.MaxValue will round to double.MaxValue (Full Framework exhibits similar behavior for when deciding to overflow).

Otherwise, LGTM

For the purpose of the breaking change, I don't think we need to be more precise about when parsing returns a value other than Infinity, @tannergooding. I will revise the PR that modifies the API documentation to note it, however.


feat: Add aria-hidden prop to View component

Summary
This adds the  aria-hidden prop to the View component as requested on https://github.com/facebook/react-native/issues/34424, being an alias importantforAccessibility='no-hide-descendants' on Android and an alias for accessibilityElementsHidden on iOS. This PR also updates RNTester AccessibilityExample in order to facilitate the manual QA.
Changelog
[General] [Added] - Add aria-hidden prop to View component
Test Plan

Open the RNTester app and navigate to the Accessibility page
Test the aria-hidden prop through the View with hidden children from accessibility tree section, this can be tested either by enabling Voice Over if you're using a real device or through the Accessibility Inspector if you're using a simulator

https://user-images.githubusercontent.com/11707729/187814455-6937e33e-7edd-434e-b7d3-ee6c03f635ca.mov

We should also add this to Text and other core components.

We should also add this to Text and other core components.

Hi @necolas, my bad I forgot to update the other components, I've just pushed a commit adding  aria-hidden to Pressable, TouchableBounce, TouchableHighlight, TouchableNativeFeedback, TouchableOpacity, TouchableWithoutFeedback. I couldn't add it to the Text component tho as it does not seem to support either importantforAccessibility or accessibilityElementsHidden (at least not based on https://github.com/facebook/react-native/blob/c34659a5d3ef24e6a0ace2a5cac242487225fed0/Libraries/Text/TextProps)


Support localized redirect url in storefrontRedirect

Hello,

I had few cases were I couldn't use storefrontRedirect so I had to do my own implementation (by copy-pasting storefrontRedirect code and modify it).

The main thing is that it doesn't handle route params, e.g locale.

For example, there is a redirect configured in Shopify like following:
From: /myUrlFrom, To: /myUrlTo

The storefront redirect will not handle theses:

/fr/myUrlFrom/ -> doesn't match any redirect url

So we should have a parameter or something to deal with locale.

In my own implementation I added 2 paramaters:

/* locale (e.g: fr-fr) to prefix redirect url, if the redirect url is absolute then we don't prefix it  /
localePrefix?: string;
/ Full string url. e.g: https://example.com/search?query=param, it will be used to match the redirect url */
matchingUrl: string;
Since we are not tied anymore to the request parameter we can pass everything we want. Also if we want to prefix the redirect url we can.

Context https://github.com/Shopify/hydrogen/discussions/2562#discussion-7228900

Yes, this is something we've solved several times with a form of fork of storefrontRedirect() which feels tough.
I've added two params to our custom implementations to solve for this (localePrefix and matchLocaleSpecificRedirects which allows for concurrently searching for both locale specific and global redirects - eg: /path/ and /eu/path when localePrefix === 'eu'
type StorefrontRedirect = {
    /** The [Storefront client](/docs/api/hydrogen/2024-07/utilities/createstorefrontclient) instance */
    storefront: Storefront<I18nBase>;
    /** The [MDN Request](https://developer.mozilla.org/en-US/docs/Web/API/Request) object that was passed to the `server.ts` request handler. */
    request: Request;
    /** The [MDN Response](https://developer.mozilla.org/en-US/docs/Web/API/Response) object created by `handleRequest` */
    response?: Response;
    /** By default the `/admin` route is redirected to the Shopify Admin page for the current storefront. Disable this redirect by passing `true`. */
    noAdminRedirect?: boolean;
    /** By default, query parameters are not used to match redirects. Set this to `true` if you'd like redirects to be query parameter sensitive */
    matchQueryParams?: boolean;
    /** When present, storefrontRedirect will ignore this segment of the URL when searching for matching redirects */
    localePrefix?: string;
    /** By default, when localePrefix is set, it will not be used to search for matching redirects. Set this to `true` if you'd like to also search for redirects that are specific to a single locale */
    matchLocaleSpecificRedirects?: boolean;
};


Cannot train tic-tac-toe with more than 14 episodes

This is a strange bug. I am using this code:
func encodeBoard(a game.State) []float32 {
	board := EncodeTwoPlayerBoard(a.Board(), nil)
	for i := range board {
		if board[i] == 0 {
			board[i] = 0.001
		}
	}
	playerLayer := make([]float32, len(a.Board()))
	next := a.ToMove()
	if next == game.Player(game.Black) {
		for i := range playerLayer {
			playerLayer[i] = 1
		}
	} else if next == game.Player(game.White) {
		// vecf32.Scale(board, -1)
		for i := range playerLayer {
			playerLayer[i] = -1
		}
	}
	retVal := append(board, playerLayer...)
	return retVal
}

func TestAZ(t *testing.T) {
	conf := Config{
		Name:            "Tic Tac Toe",
		NNConf:          dual.DefaultConf(3, 3, 10),
		MCTSConf:        mcts.DefaultConfig(3),
		UpdateThreshold: 0.52,
	}
	conf.NNConf.BatchSize = 100
	conf.NNConf.Features = 2 // write a better encoding of the board, and increase features (and that allows you to increase K as well)
	conf.NNConf.K = 3
	conf.NNConf.SharedLayers = 3
	conf.MCTSConf = mcts.Config{
		PUCT:           1.0,
		M:              3,
		N:              3,
		Timeout:        100 * time.Millisecond,
		PassPreference: mcts.DontPreferPass,
		Budget:         1000,
		DumbPass:       true,
		RandomCount:    0,
	}

	conf.Encoder = encodeBoard

	g := mnk.TicTacToe()
	a := New(g, conf)

	//err := a.Learn(1, 20, 100, 100)
	err := a.Learn(1, 14, 100, 100)
	if err != nil {
		t.Fatal(err)
	}
}

with err := a.Learn(1, 14, 100, 100), the test pass, but with err := a.Learn(1, 15, 100, 100), the test fails with this error:
2021/01/18 09:24:40 Self Play for epoch 0. Player A 0xc000368850, Player B 0xc0003688c0
2021/01/18 09:24:40 Using Dummy
2021/01/18 09:24:40 Set up selfplay: Switch To inference for A. A.NN 0xc0003409c0 (*dual.Dual)
2021/01/18 09:24:40 Set up selfplay: Switch To inference for B. B.NN 0xc000340a90 (*dual.Dual)
2021/01/18 09:24:40     Episode 0
2021/01/18 09:24:40     Episode 1
2021/01/18 09:24:41     Episode 2
2021/01/18 09:24:41     Episode 3
2021/01/18 09:24:42     Episode 4
2021/01/18 09:24:43     Episode 5
2021/01/18 09:24:44     Episode 6
2021/01/18 09:24:45     Episode 7
2021/01/18 09:24:45     Episode 8
2021/01/18 09:24:46     Episode 9
2021/01/18 09:24:47     Episode 10
2021/01/18 09:24:48     Episode 11
2021/01/18 09:24:48     Episode 12
2021/01/18 09:24:49     Episode 13
2021/01/18 09:24:50     Episode 14
    agogo_test.go:69: Train fail: PC: 246: PC 246. Failed to execute instruction Aᵀ{0, 2, 3, 1} [CPU144]        CPU144  false   true    false: Failed to carry op.Do(): Dimension mismatch. Expected 2, got 4

Sounds like an issue with the batching process:
Here:
https://github.com/gorgonia/agogo/blob/ce6073931e2c36f2986cd1048fc89ceb80c7df7a/agogo.go#L210
In the working example, batches is zero which makes it work.
In the failed example, batches is one, which has an impact on the Xs, Policies and Values tensors.
The error is raised from this function in the dualnet package:
https://github.com/gorgonia/agogo/blob/ce6073931e2c36f2986cd1048fc89ceb80c7df7a/dualnet/meta.go#L16
I will try to setup a test on this function to reproduce the error so we can investigate more.

Sounds like an issue with the batching process:
Here:
https://github.com/gorgonia/agogo/blob/ce6073931e2c36f2986cd1048fc89ceb80c7df7a/agogo.go#L210
In the working example, batches is zero which makes it work.
In the failed example, batches is one, which has an impact on the Xs, Policies and Values tensors.
The error is raised from this function in the dualnet package:
https://github.com/gorgonia/agogo/blob/ce6073931e2c36f2986cd1048fc89ceb80c7df7a/dualnet/meta.go#L16
I will try to setup a test on this function to reproduce the error so we can investigate more.

Here is a test case to ease the debugging process:

func TestTrain(t *testing.T) {
	features := 2
	height := 3
	width := 3
	actionSpace := 10
	batchSize := 100
	batchesZero := 0
	batchesOne := 1

	conf := DefaultConf(3, 3, 10)
	conf.BatchSize = batchSize
	conf.Features = features
	conf.K = 3
	conf.SharedLayers = 3
	type args struct {
		d          *Dual
		Xs         *tensor.Dense
		policies   *tensor.Dense
		values     *tensor.Dense
		batches    int
		iterations int
	}
	d := &Dual{Config: conf}
	if err := d.Init(); err != nil {
		t.Fatalf("%+v", err)
	}
	tests := []struct {
		name    string
		args    args
		wantErr bool
	}{
		{
			"issue #2 batch one (not working)",
			args{
				d:          d,
				Xs:         tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesOne*features*height*width)), tensor.WithShape(batchSize*batchesOne, features, height, width)),
				policies:   tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesOne*actionSpace)), tensor.WithShape(batchSize*batchesOne, actionSpace)),
				values:     tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesOne)), tensor.WithShape(batchSize*batchesOne)),
				batches:    batchesOne,
				iterations: 100,
			},
			false,
		},
		{
			"issue #2 batches zero",
			args{
				d:          d,
				Xs:         tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesZero*features*height*width)), tensor.WithShape(batchSize*batchesZero, features, height, width)),
				policies:   tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesZero*actionSpace)), tensor.WithShape(batchSize*batchesZero, actionSpace)),
				values:     tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesZero)), tensor.WithShape(batchSize*batchesZero)),
				batches:    batchesZero,
				iterations: 100,
			},
			false,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if err := Train(tt.args.d, tt.args.Xs, tt.args.policies, tt.args.values, tt.args.batches, tt.args.iterations); (err != nil) != tt.wantErr {
				t.Errorf("Train() error = %v, wantErr %v", err, tt.wantErr)
			}
		})
	}
}

Train() error = PC: 246: PC 246. Failed to execute instruction Aᵀ{0, 2, 3, 1}	[CPU144]	CPU144	false	true	false: Failed to carry op.Do(): Dimension mismatch. Expected 2, got 4, wantErr false
FAIL

Here is a test case to ease the debugging process:

func TestTrain(t *testing.T) {
	features := 2
	height := 3
	width := 3
	actionSpace := 10
	batchSize := 100
	batchesZero := 0
	batchesOne := 1

	conf := DefaultConf(3, 3, 10)
	conf.BatchSize = batchSize
	conf.Features = features
	conf.K = 3
	conf.SharedLayers = 3
	type args struct {
		d          *Dual
		Xs         *tensor.Dense
		policies   *tensor.Dense
		values     *tensor.Dense
		batches    int
		iterations int
	}
	d := &Dual{Config: conf}
	if err := d.Init(); err != nil {
		t.Fatalf("%+v", err)
	}
	tests := []struct {
		name    string
		args    args
		wantErr bool
	}{
		{
			"issue #2 batch one (not working)",
			args{
				d:          d,
				Xs:         tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesOne*features*height*width)), tensor.WithShape(batchSize*batchesOne, features, height, width)),
				policies:   tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesOne*actionSpace)), tensor.WithShape(batchSize*batchesOne, actionSpace)),
				values:     tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesOne)), tensor.WithShape(batchSize*batchesOne)),
				batches:    batchesOne,
				iterations: 100,
			},
			false,
		},
		{
			"issue #2 batches zero",
			args{
				d:          d,
				Xs:         tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesZero*features*height*width)), tensor.WithShape(batchSize*batchesZero, features, height, width)),
				policies:   tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesZero*actionSpace)), tensor.WithShape(batchSize*batchesZero, actionSpace)),
				values:     tensor.New(tensor.WithBacking(make([]float32, batchSize*batchesZero)), tensor.WithShape(batchSize*batchesZero)),
				batches:    batchesZero,
				iterations: 100,
			},
			false,
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			if err := Train(tt.args.d, tt.args.Xs, tt.args.policies, tt.args.values, tt.args.batches, tt.args.iterations); (err != nil) != tt.wantErr {
				t.Errorf("Train() error = %v, wantErr %v", err, tt.wantErr)
			}
		})
	}
}

Train() error = PC: 246: PC 246. Failed to execute instruction Aᵀ{0, 2, 3, 1}	[CPU144]	CPU144	false	true	false: Failed to carry op.Do(): Dimension mismatch. Expected 2, got 4, wantErr false
FAIL

It looks like the Reset method of the TapeMachine is leaking something.
Actually, this code makes the previous test turn green:
// Train is a basic trainer.
 func Train(d *Dual, Xs, policies, values *tensor.Dense, batches, iterations int) error {
-       m := G.NewTapeMachine(d.g, G.BindDualValues(d.Model()...))
-       model := G.NodesToValueGrads(d.Model())
-       solver := G.NewVanillaSolver(G.WithLearnRate(0.1))
        var s slicer
        for i := 0; i < iterations; i++ {
                // var cost float32
                for bat := 0; bat < batches; bat++ {
+                       m := G.NewTapeMachine(d.g, G.BindDualValues(d.Model()...))
+                       model := G.NodesToValueGrads(d.Model())
+                       solver := G.NewVanillaSolver(G.WithLearnRate(0.1))
                        batchStart := bat * d.Config.BatchSize
                        batchEnd := batchStart + d.Config.BatchSize

@@ -38,7 +38,7 @@ func Train(d *Dual, Xs, policies, values *tensor.Dense, batches, iterations int)
                        if err := solver.Step(model); err != nil {
                                return err
                        }
-                       m.Reset()
+                       //m.Reset()
                        tensor.ReturnTensor(Xs2)
                        tensor.ReturnTensor(π)
                        tensor.ReturnTensor(v)

I guess that I should raise an issue in gorgonia.
cc @chewxy

It looks like the Reset method of the TapeMachine is leaking something.
Actually, this code makes the previous test turn green:
// Train is a basic trainer.
 func Train(d *Dual, Xs, policies, values *tensor.Dense, batches, iterations int) error {
-       m := G.NewTapeMachine(d.g, G.BindDualValues(d.Model()...))
-       model := G.NodesToValueGrads(d.Model())
-       solver := G.NewVanillaSolver(G.WithLearnRate(0.1))
        var s slicer
        for i := 0; i < iterations; i++ {
                // var cost float32
                for bat := 0; bat < batches; bat++ {
+                       m := G.NewTapeMachine(d.g, G.BindDualValues(d.Model()...))
+                       model := G.NodesToValueGrads(d.Model())
+                       solver := G.NewVanillaSolver(G.WithLearnRate(0.1))
                        batchStart := bat * d.Config.BatchSize
                        batchEnd := batchStart + d.Config.BatchSize

@@ -38,7 +38,7 @@ func Train(d *Dual, Xs, policies, values *tensor.Dense, batches, iterations int)
                        if err := solver.Step(model); err != nil {
                                return err
                        }
-                       m.Reset()
+                       //m.Reset()
                        tensor.ReturnTensor(Xs2)
                        tensor.ReturnTensor(π)
                        tensor.ReturnTensor(v)

I guess that I should raise an issue in gorgonia.
cc @chewxy

You're right. It appears Reset is leaking something. Also looking back, wow the Gorgonia library has changed quite a bit.

You're right. It appears Reset is leaking something. Also looking back, wow the Gorgonia library has changed quite a bit.


Performance benefits are lost when using CJS transform due to JITI using Babel

Hey! First of all, thank you so much for this awesome package! I've started using it with unbuild and it has been a life-saver.
I'd like to point out that I've experienced a massive speed loss when generating CJS. I suspect it's due to the fact that the esm generated by esbuild gets passed to jiti (which uses babel instead of esbuild).
Could you give the option to use esbuild exclusively as a CJS transformer instead, or pass the esbuild transform to jiti?

Issue appears to be the .d.ts generation. Unfortunately not related to either mkidst or jiti.


Not found handler tests

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Fixed issues
#105

Merged. Thanks!


Fix Incorrect Gradients and Illegal Memory Access Error in Mamba2

Hey Tri and Albert,
Digging through the code base, I have found a bug in the backward pass for the gradient calculations in the function _chunk_scan_bwd_ddAcs_stable_kernel. I think this solves the issue given by #503, however, it will definitely fix incorrect gradient calculations for $\Delta A$.
Essentially, all that was going on lines 1146-1149 if BLOCK_SIZE_N was greater then BLOCK_SIZE_M then it would update the pointer by BLOCK_SIZE_N. Then when we try to zero out the remainder of the sequence in lines 1152:1154, the loop assumes that pointer of ddA_cs_ptr is at hi=(pid_m + 1) * BLOCK_SIZE_M when we could have overshot it, given that BLOCK_SIZE_M < BLOCK_SIZE_N.
All that I do in the PR is remove the potential for us to overshoot by disabling the kernel configs where BLOCK_SIZE_N > BLOCK_SIZE_M. This means that at the end of the first loop we will always have out ptr updated by (pid_m + ) * BLOCK_SIZE_M. More complicated things can be done to fix this, however, I don't want to add complexity to the kernel, so I think that this works for now.
I found that incorrect gradient calculations for dA were incredibly common when this bug was present, thus I don't know how much this will have affected model training.
Let me know if you need any clarifications or if I can do anything else to help!

@tridao @albertfgu , I'm also going to ping you guys due to the nature of the problem

Also, I should mention that for the incorrect gradients, it will happen when we accidently zero out already computed and stored gradients by other thread blocks.

Thanks so much @Hprairie! Let me take a careful look

Also fixed another bug in _chunk_scan_bwd_ddAcs_stable_kernel, in line 1136 we also don't multiply start_n by the stride.

@Hprairie is it simpler to set ddA_cs_ptrs to hi after the loop? Then we don't need to worry about which block M & block N would work?

@tridao Yes, that would be simpler I think, the only problem is that you need to revert the pointer updates being done in the first loop which either requires saving the original pointers or reverting the update, which is not as simple. Another thing that could be done (which should fix the problem) is to do new_hi = tl.cdiv(hi, BLOCK_SIZE_N) * BLOCK_SIZE_N) after the first loop. You could also only do this computation if BLOCK_SIZE_N > BLOCK_SIZE_M which the compiler should be able to figure out.  It's been a while since I tried this but it might have been slower bc of poor triton optimizations. I don't have that much bandwidth rn to try, but was going to toy around with some new idea for mamba kernels in a month and could try some stuff then

Oh i was gonna do the simple thing.
Instead of
    for start_n in range(hi, chunk_size, BLOCK_SIZE_N):
        tl.store(ddAcs_ptrs + stride_ddA_cs_csize_n, tl.zeros((BLOCK_SIZE_N,), dtype=tl.float32), mask=offs_n < chunk_size - start_n - 1)
        ddAcs_ptrs += BLOCK_SIZE_N * stride_ddA_cs_csize_n

We can do
    for start_n in range(hi, chunk_size, BLOCK_SIZE_N):
        tl.store(ddA_cumsum_ptr + (offs_n + start_n + 1) * stride_ddA_cs_csize_n, tl.zeros((BLOCK_SIZE_N,), dtype=tl.float32), mask=offs_n < chunk_size - start_n - 1)

Ahh lol yeah that seems much simpler. Also, I could be wrong, but I don't think the +1 is necessary.

I trained models using this repository's implementation prior to this PR and consistently observed a ~0.2% difference in grad norm across runs starting from the same checkpoint and data. This raises concerns about non-reproducible training behavior.
Does this fix significantly impact gradient backpropagation? If so, it might suggest that Mamba2 models trained with the pre-PR implementation were affected. Addressing this soon would be valuable, as future SSM research may build upon this repository.
grad norm:

loss:

Oh i was gonna do the simple thing. Instead of
    for start_n in range(hi, chunk_size, BLOCK_SIZE_N):
        tl.store(ddAcs_ptrs + stride_ddA_cs_csize_n, tl.zeros((BLOCK_SIZE_N,), dtype=tl.float32), mask=offs_n < chunk_size - start_n - 1)
        ddAcs_ptrs += BLOCK_SIZE_N * stride_ddA_cs_csize_n

We can do
    for start_n in range(hi, chunk_size, BLOCK_SIZE_N):
        tl.store(ddA_cumsum_ptr + (offs_n + start_n + 1) * stride_ddA_cs_csize_n, tl.zeros((BLOCK_SIZE_N,), dtype=tl.float32), mask=offs_n < chunk_size - start_n - 1)

It's hard to say for sure. The current branch of the repo should be fine as the pr was merged. Before the merge, there was a chance that models trained had wrong gradient calculations, but it is hard to say exactly because it depends on which config triton's autotuner chooses. If it chooses a config that I have removed in the PR, then incorrect gradients will likely occur due to non-deterministic GPU scheduling.
The hardest part about the bug was that it was probabilistic, meaning that running the code multiple times may/may not have it occur.
Thus it's hard to say if this fix will have an impact or not on your specific machine, but there is a non-zero probability that it will.


Add link to relevant code alongs for several Pinecone guides

Summary
This PR adds links to DataCamp code-along, which are interactive tutorials in a fully configured notebook environment, with an accompanying video that walks people through all the steps.
Motivation

These code-alongs are a great way for users to dive straight into the code and experiment without having to worry about setting up the right packages. Plus, it's free.
To speak to the relevance / quality of these code-alongs:

James Briggs is the original author of the Semantic Search with Pinecone guide, and is also the presenter of the corresponding code along.
Colin Jarvis authored the notebook on Pinecone for Embeddings Search; he works with Logan Kilpatrick, who was a guest on DataCamp's DataFramed podcast.

@logankilpatrick any chance you can have a look?

Thank you @filipsch for this contribution! The goal of the cookbook is to share knowledge about how to use openai tools. Please feel free to incorporate the best learnings from the datacamp code-alongs, but unfortunately we can't accept links to external resources.


Improve usage in command help

Description
Currently, when you build a large branching command (pretty easy with a CommandTree) the usage given by /help can end up looking like this:
--------- Help: /configcommands -----------------
A command for interacting with the ConfigCommands system
Description: Different systems are accessed using their keywords.
For help with a specific section, use /configcommands help

Usage:
- /configcommands
- /configcommands <help>
- /configcommands <help> <functions>
- /configcommands <help> <build>
- /configcommands <help> <reload>
- /configcommands <help> <debug>
- /configcommands <functions>
- /configcommands <functions> <addOn> <internalArgument> <static> <function>
- /configcommands <functions> <addOn> <internalArgument> <nonStatic> <function>
- /configcommands <build>
- /configcommands <reload> <greet>
- /configcommands <reload> <greet> <message>
- /configcommands <reload> <echo> <string>
- /configcommands <debug>
- /configcommands <debug> <enable>
- /configcommands <debug> <disable>
- /configcommands <debug> <local> <command>
- /configcommands <debug> <local> <command> <enable>
- /configcommands <debug> <local> <command> <disable>

In my example here, I would prefer the help look like this, highlighting and refining the most important command paths the user should care about:
--------- Help: /configcommands -----------------
A command for interacting with the ConfigCommands system
Description: Different systems are accessed using their keywords.
For help with a specific section, use /configcommands help

Usage:
- /configcommands help
- /configcommands help

- /configcommands <functions>
- /configcommands <functions> <addOn> <internalArgument> <(non)static> <function>
- /configcommands <build>
- /configcommands <reload> <commandName> <arguments>
- /configcommands <debug>
- /configcommands <debug> <enable/disable>
- /configcommands <debug> <local> <command>
- /configcommands <debug> <local> <command> <enable/disable>

Expected code
The default usage generation probably works fine for most users, but just like the default A Mojang provided command. message, it would be nice if it could be overridden. Perhaps something like this:
new CommandTree("configcommands")
        .withUsage(
            "configcommands help",
            "configcommands help
",
            "configcommands <functions>",
            "configcommands <functions> <addOn> <internalArgument> <(non)static> <function>",
            "configcommands <build>",
            "configcommands <reload> <commandName> <arguments>",
            "configcommands <debug>",
            "configcommands <debug> <enable/disable>",
            "configcommands <debug> <local> <command>",
            "configcommands <debug> <local> <command> <enable/disable>"
        )

Extra details
No response

Implemented in 9.0.2


Multiple popup close in wrong order

Framework7 version: 5.5.0 (and before)
Vue.js version: 2.6.11 (and before)
Platform and Target: tested on Chrome on Mac but occurs probably on all platform
Live Link or JSFiddle: https://jsfiddle.net/fy5a63r8/2/

Describe the bug
When you open several popup, the "popup-close" attribute on navbar link does not close the popup it is attached to, but it close the first open popup.
To Reproduce
Steps to reproduce the behavior:

Go to https://jsfiddle.net/fy5a63r8/2/
Open popups B, C & D
Try to close popup D : you will have to click 3 times

Bonus : if you are on big screen (and the popup is not fullscreen), you will observe that the black overlay disappears on the first click (and if the popup has "push" effect, the push effect will be canceled on first click)
Expected behavior
Clicking the "popup-close" link should close the popup it is located on.
And the overlay should disappear only when the last popup is closed.
Actual Behavior
The "popup-close" link closes popup in wrong order (FIFO instead of LIFO).
And the overlay disappears on the first click.

I understand that it's not the solution for your question, but maybe you could think about navigating using several pages with in one popup.

@AliMamed : UX speaking, pages navigation would not be a satisfying solution in my situation :)
And technically speaking, I could simply replace "popup-close" links by @click links that close the popup based on the ref. But even if it is only few lines of code, I strongly believe that closing popups in LIFO order by default is better, and it makes the code lighter.

If you give each popup a specific class (or unique id) and supply the data-popup attribute to the close link, it should close the correct popup for you.
Eg.

...

and
Close
https://framework7.io/docs/popup.html#control-popup-with-links

Thanks @FishSaidNo, that will be an easier workaround than the one I intended to use!
Nevertheless, I believe it would be even easier to have a LIFO behavior instead of a FIFO behavior.

Fixed in ba16a210896ed8d28661f4661da9a94be6709f4a Now on popup close it will check if there are many modals match, and close the one which is the parent of the clicked close link, or last one (if no links passed)


Error: "connection not upgraded to websocket"

I've got a straight forward setup like this:
main(List<String> args) async {
  if (HotReloader.isHotReloadable) {
    print('Hot reloading enabled');
    final reloader = HotReloader();
    await reloader.addPackagePath(Uri(scheme: 'package', path: 'server_test/'));
    await reloader.go();
  }

  // ... launch a web server (using shelf) ...
}

When I launch my server.dart script, I get this output:
C:\workspace\dart\server-test>dart --enable-vm-service bin/server.dart
Observatory listening on http://<IP_ADDRESS>:8181/2vuzbj7xrus=/
Hot reloading enabled
Listening for file changes at C:\workspace\dart\server-test\lib\
Serving at http://localhost:8080

But the moment I change one of the files, it crashes with this stack trace:
Paths C:\workspace\dart\server-test\lib\src\images.dart changed!
Reloading the application...
Unhandled exception:
WebSocketException: Connection to 'http://localhost:8181/ws#' was not upgraded to websocket
#0      _WebSocketImpl.connect.<anonymous closure>.error (dart:_http/websocket_impl.dart:1052:9)
#1      _WebSocketImpl.connect.<anonymous closure> (dart:_http/websocket_impl.dart:1061:14)
#2      _RootZone.runUnary (dart:async/zone.dart:1379:54)
#3      _FutureListener.handleValue (dart:async/future_impl.dart:137:18)
#4      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:678:45)
#5      Future._propagateToListeners (dart:async/future_impl.dart:707:32)
#6      Future._completeWithValue (dart:async/future_impl.dart:522:5)
#7      Future.wait.<anonymous closure> (dart:async/future.dart:400:22)
#8      _RootZone.runUnary (dart:async/zone.dart:1379:54)
#9      _FutureListener.handleValue (dart:async/future_impl.dart:137:18)
#10     Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:678:45)
#11     Future._propagateToListeners (dart:async/future_impl.dart:707:32)
#12     Future._completeWithValue (dart:async/future_impl.dart:522:5)
#13     Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:552:7)
#14     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
#15     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
#16     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:116:13)
#17     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:173:5)

I'm on 64-bit Windows 10 with the following Dart version:
2.6.1 (Mon Nov 11 13:12:24 2019 +0100) on "windows_x64"

I noticed a mismatch in socket URLs between the startup message:
Observatory listening on http://<IP_ADDRESS>:8181/2vuzbj7xrus=/

And the error message:
Connection to 'http://localhost:8181/ws#' was not upgraded to websocket

The websocket URL displayed at startup contains a random key that changes with every launch, so a constant is probably not enough to make this work.
Likely related to #5, though the error message in that issue is different. (?)
Let me know if there's anything I can do to help resolve the issue.

Okay, a bit of progress - I was able to reference this library for a way to get the correct URL.
It looks like this:
import 'dart:developer' as dev;
import 'package:path/path.dart' as path;

main(List<String> args) async {
  if (HotReloader.isHotReloadable) {
    var info = await dev.Service.getInfo();
    var uri = info.serverUri;
    uri = uri.replace(path: path.join(uri.path, 'ws'));
    if (uri.scheme == 'https') {
      uri = uri.replace(scheme: 'wss');
    } else {
      uri = uri.replace(scheme: 'ws');
    }

    print('Hot reloading enabled');
    final reloader = HotReloader(vmServiceUrl: uri.toString());
    await reloader.addPackagePath(Uri(scheme: 'package', path: 'server_test/'));
    await reloader.go();
  }

  // ...
}

Something similar should probably replace the constant URL in the library?
(Let me know if you'd like a PR for that change.)
This gets me connected and running - I now see messages like these:
Paths C:\workspace\dart\server-test\lib\src\images.dart changed!
Reloading the application...

So far, so good.
It doesn't work though - changes made to that script don't have any effect.
I'm using shelf, and the thing I was hoping to reload is a Middleware inserted into a Pipeline at start-up. So this is effectively a function instance that persists in an object property somewhere.
I don't know the limitations or the precise workings of hot reloading, but would I need to do something else to get this working? (e.g. tear down and rebuild my HttpServer instance with new instances of the middleware and router etc.?)

I've also tried the basic example that ships with the package, and this doesn't work either.
For example, changing the count value, or changing the increment expression to count += 2 doesn't have any effect other than seeing the "paths changed" and "reloading" messages on the console.

For the record, someone on the Dart Gitter channel gave it a shot on Linux - he also had to copy the code I posted (to get the websocket path) to get it working, so that bit needs a PR either way.
He then confirmed that the example did work for him.
So the issue is likely Windows-specific.
For the record, the vm_service_lib package has been superseded by the vm_service package and should be upgraded - I tried switching that dependency, which was easy enough, just needs a simple update of the import paths, but it didn't address this issue.

Please submit a PR with the fix.

I will open a separate issue to track the Windows problem.


Greenkeeper/monorepo.storybook 3.4.11

This isn't your branch. Please stop spamming airbnb repos with PRs from branches that are not yours.


Working on plugins [Still don't merge]

@cryptk The javascript tests are still angry. Will leave that chicken to you.

@testeddoughnut do we want to tag 0.1 before or after this work go's in?

@cryptk before, please tag it in its current state.
On Aug 17, 2016 10:38 AM, "cryptk"<EMAIL_ADDRESS>wrote:

@testeddoughnut https://github.com/testeddoughnut do we want to tag 0.1
before or after this work go's in?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/cryptk/opsy/pull/177#issuecomment-240452357, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ADkvViGcINzElae2u3i-tJaXjBhzXXSjks5qgysKgaJpZM4JjpDj
.

Cool, I'll get it tagged for 0.1 tomorrow

@cryptk I think this is about ready to merge. Still needs work tying all of the backend work into the frontend. As of right now the plugin system works for registering scheduler tasks, registering blueprints, registering opsy sub-commands, and registering objects to include in the shell context when generating an ipython shell. The front-end is going to be completely broken until plugin support is added. This will likely require a new register_links method or something like that on the BaseOpsyPlugin class.

Cool, I'll check it out tomorrow after my internet is fixed.

Went ahead and merged this. Front-end in dev is now officially broken again =D


How can I center the chart without changing the current zoom?

Hi David!
Let's say I have a chart open at a certain zoom level,  like so -

and all I want to do is horizontally and vertically center the chart without changing the current zoom, like so -

How can I achieve this?
I know we have a method which centers a specific node (setCentered)
But is there anything similar for the entire chart?
Thanks in advance @bumbeishvili

I don't think that we have anything like that.

We have chart.fit() but it changes zoom levels and fits graph to entire screen
I think your best bet is be to calculate which node seems to be closer to center and then center that node


JWT is missing or invalid

This is our second most frequent logged error (logs), which is basically the API replying with a 401 error and the message JWT is missing or invalid. It might mostly be due to JWTs actually expiring and needing to be refreshed, which should be happening, and if that's the case, we don't really need to log these since they're "expected" errors. There are also some weird cases where an authenticated user is associated with the log event... which would require a valid JWT, so how is that happening?
Spend at most a day looking into this. Might just require some explanation, but hopefully there's a way to reduce these reports.

This has hardly happened in the last week, so I think the main culprit was problems getting a JWT while trying to report errors, which was squelched in ddca126ed5e6dee9e161099cf577a39531e9eeef. Just need to clean up some of the extra logging code.


fully convolution

Excuse me
Can the FPGA QuickTest function use Fully Convolutional Networks?

Haven’t tried it yet. Definitely worth trying


Fix downloading specific version

Hey,
Great library first of all.
I came a cross a problem, here is my code:
var ghdownload = require('github-download');
var path = require('path');

ghdownload({
  user: 'jprichardson',
  repo: 'node-github-download',
  ref: 'v0.2.0'
}, path.join(__dirname, 'node-github-download'));

I get this Error:  ENOENT: no such file or directory, rename 'C:\path\to\dir\name\1462353779471-9935504384338856\node-github-download-v0.2.0' -> 'C:\path\to\dir\name\node-github-download'.
And that because the folder node-github-download-v0.2.0 doesn't exists, and actually it is node-github-download-0.2.0, you can download the zip here and see for yourself (github removes v for some reason).
Changed the code so it will take the folder name from the first entry instead.
Would love to see this implemented soon, thanks in advance.

Please run npm test and fix the errors and I will take another look.

@jprichardson Fixed

Published. Thanks.


Use github templates

https://github.com/dmacvicar/terraform-provider-libvirt/community
There is  check list there for template we are missing. We might add some of them if make sense
For issues github provide 2 kind of, one for feature one for bugs. I think this is nice

I am ok with introducing templates for the issues and templates, but I would expect a concrete proposal and reasoning for them (eg. one used by a similar project).
I don't see the need for the rest for now.