Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add sceneryStack to CT #226

Open
zepumph opened this issue Dec 10, 2024 · 8 comments
Open

Add sceneryStack to CT #226

zepumph opened this issue Dec 10, 2024 · 8 comments
Assignees

Comments

@zepumph
Copy link
Member

zepumph commented Dec 10, 2024

No description provided.

@zepumph zepumph self-assigned this Dec 10, 2024
@zepumph
Copy link
Member Author

zepumph commented Dec 10, 2024

I believe @jonathanolson and I want to first try to proceed by adding scenerystack repos to active-repos.

@zepumph
Copy link
Member Author

zepumph commented Dec 10, 2024

  • We want to make sure that linting and type checking work in these repos before adding them to active-repos:

grunt lint --all (perhaps by adding to this list https://github.com/phetsims/perennial/blob/67147519c7434b3c6f369d4d7035c60c8ab24077/js/eslint/lint-main.ts#L35)
grunt type-check --all

@zepumph zepumph assigned jonathanolson and unassigned zepumph Dec 10, 2024
jonathanolson added a commit to phetsims/perennial that referenced this issue Dec 24, 2024
jonathanolson added a commit to phetsims/perennial that referenced this issue Dec 24, 2024
@jonathanolson
Copy link
Contributor

The repos are linting fine, HOWEVER since many of them are stand-alone (by definition can't rely on existence of perennial/perennial-alias), they need to reference dependencies from package.json in their eslint configs, and therefore need to be npm install'ed to lint.

@zepumph recently noted:

I do not like requiring npm install in repos like this for type checking to work.

So therefore I've disabled the linting of those files in lint-main (noted by @zepumph above at https://github.com/phetsims/perennial/blob/67147519c7434b3c6f369d4d7035c60c8ab24077/js/eslint/lint-main.ts#L35).

Should be good to discuss how to support this.

@jonathanolson
Copy link
Contributor

Some test issues noted in #230.

@zepumph
Copy link
Member Author

zepumph commented Jan 2, 2025

Taking a look here.

@zepumph zepumph self-assigned this Jan 2, 2025
@zepumph
Copy link
Member Author

zepumph commented Jan 2, 2025

  • This doesn't seem like the way to test changes locally (which I know wasn't the goal), since it clones a new copy of scenerystack. That is fine, but I was recommended to run this to see if I had broken scenerystack (which I had). It would be nice to have an easy way to run these locally.
  • It seems really really slow to individually clone and pull, can't we use a premade script that batches this?

jonathanolson added a commit that referenced this issue Jan 3, 2025
…and added scenerystack to npm run supported repos, see #226, #230
jonathanolson added a commit to phetsims/perennial that referenced this issue Jan 3, 2025
@zepumph zepumph removed their assignment Jan 10, 2025
zepumph added a commit to phetsims/perennial that referenced this issue Jan 13, 2025
@zepumph
Copy link
Member Author

zepumph commented Jan 13, 2025

Above @jonathanolson and I worked to add an ability to kill the child process when the timeout occurs during an npm run. I believe this will help fix the issues we have been having with CT unable to remove old snapshots.

@pixelzoom
Copy link
Contributor

perennial has been failing CT on every cycle, due to this issue according to @zepumph. Details below.

perennial : scenerystack-test
npm run failed with status code 1:

> [email protected] scenerystack-test
> bash bin/sage run js/scripts/scenerystack-test.ts

cloning demo-sim
npm update demo-sim
info: npm update in ./.scenerystack/demo-sim
cloning scenery-template-parcel
npm update scenery-template-parcel
info: npm update in ./.scenerystack/scenery-template-parcel
cloning scenery-template-vite
npm update scenery-template-vite
info: npm update in ./.scenerystack/scenery-template-vite
cloning scenerystack-tests
npm update scenerystack-tests
info: npm update in ./.scenerystack/scenerystack-tests
cloning sim-template-parcel
npm update sim-template-parcel
info: npm update in ./.scenerystack/sim-template-parcel
cloning sim-template-vite
npm update sim-template-vite
info: npm update in ./.scenerystack/sim-template-vite
tsc demo-sim

debug: Running npx scenerystack checkout from ./.scenerystack
debug: stdout: [scenerystack]: checkout 

debug: stdout: checking out version: latest

debug: stdout: cloning scenerystack

debug: stdout: pulling scenerystack

debug: stdout: cloning alpenglow

debug: stdout: pulling alpenglow

debug: stdout: cloning assert

debug: stdout: pulling assert

debug: stdout: cloning axon

debug: stdout: pulling axon

debug: stdout: cloning babel

debug: stdout: pulling babel

debug: stdout: cloning bamboo

debug: stdout: pulling bamboo

debug: stdout: cloning brand

debug: stdout: pulling brand

debug: stdout: cloning chipper

debug: stdout: pulling chipper

debug: stdout: cloning dot

debug: stdout: pulling dot

debug: stdout: cloning joist

debug: stdout: pulling joist

debug: stdout: cloning kite

debug: stdout: pulling kite

debug: stdout: cloning mobius

debug: stdout: pulling mobius

debug: stdout: cloning nitroglycerin

debug: stdout: pulling nitroglycerin

debug: stdout: cloning perennial-alias

debug: stdout: pulling perennial-alias

debug: stdout: cloning phet-core

debug: stdout: pulling phet-core

debug: stdout: cloning phetcommon

debug: stdout: pulling phetcommon

debug: stdout: cloning query-string-machine

debug: stdout: pulling query-string-machine

debug: stdout: cloning scenery-phet

debug: stdout: pulling scenery-phet

debug: stdout: cloning scenery

debug: stdout: pulling scenery

debug: stdout: cloning sherpa

debug: stdout: pulling sherpa

debug: stdout: cloning sun

debug: stdout: pulling sun

debug: stdout: cloning tambo

debug: stdout: pulling tambo

debug: stdout: cloning tandem

debug: stdout: pulling tandem

debug: stdout: cloning tappi

debug: stdout: pulling tappi

debug: stdout: cloning twixt

debug: stdout: pulling twixt

debug: stdout: cloning utterance-queue

debug: stdout: pulling utterance-queue

debug: stdout: cloning vegas

debug: stdout: pulling vegas

debug: stdout: npm update in scenerystack

debug: stdout: npm update in chipper

debug: stdout: npm update in perennial-alias

debug: stdout: checkout complete

debug: Exit callback: npx
debug: Command npx finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: [scenerystack]: checkout 
checking out version: latest
cloning scenerystack
pulling scenerystack
cloning alpenglow
pulling alpenglow
cloning assert
pulling assert
cloning axon
pulling axon
cloning babel
pulling babel
cloning bamboo
pulling bamboo
cloning brand
pulling brand
cloning chipper
pulling chipper
cloning dot
pulling dot
cloning joist
pulling joist
cloning kite
pulling kite
cloning mobius
pulling mobius
cloning nitroglycerin
pulling nitroglycerin
cloning perennial-alias
pulling perennial-alias
cloning phet-core
pulling phet-core
cloning phetcommon
pulling phetcommon
cloning query-string-machine
pulling query-string-machine
cloning scenery-phet
pulling scenery-phet
cloning scenery
pulling scenery
cloning sherpa
pulling sherpa
cloning sun
pulling sun
cloning tambo
pulling tambo
cloning tandem
pulling tandem
cloning tappi
pulling tappi
cloning twixt
pulling twixt
cloning utterance-queue
pulling utterance-queue
cloning vegas
pulling vegas
npm update in scenerystack
npm update in chipper
npm update in perennial-alias
checkout complete

debug: Running npx scenerystack build from ./.scenerystack
debug: stdout: [scenerystack]: build 

debug: stdout: copying and patching no-assert no-namespace

debug: stdout: running tsc (prod)

debug: stdout: copying and patching

debug: stdout: running tsc (dev)

debug: stdout: running rollup

debug: stdout: �[36m
�[1mdist/dev/standalone.js�[22m → �[1mdist/scenerystack.esm.js�[22m...�[39m
�[1m�[33m(!) Circular dependencies�[39m�[22m
dist/dev/tandem/js/types/IOType.js -> dist/dev/tandem/js/types/StateSchema.js -> dist/dev/tandem/js/types/IOType.js
dist/dev/dot/js/Vector2.js -> dist/dev/dot/js/Utils.js -> dist/dev/dot/js/Vector2.js
dist/dev/dot/js/Utils.js -> dist/dev/dot/js/Vector3.js -> dist/dev/dot/js/Utils.js
...and 276 more
�[32mcreated �[1mdist/scenerystack.esm.js�[22m in �[1m58.7s�[22m�[39m
�[36m
�[1mdist/prod/standalone.js�[22m → �[1mdist/scenerystack.esm.min.js�[22m...�[39m
�[1m�[33m(!) Circular dependencies�[39m�[22m
dist/prod/tandem/js/types/IOType.js -> dist/prod/tandem/js/types/StateSchema.js -> dist/prod/tandem/js/types/IOType.js
dist/prod/dot/js/Vector2.js -> dist/prod/dot/js/Utils.js -> dist/prod/dot/js/Vector2.js
dist/prod/dot/js/Utils.js -> dist/prod/dot/js/Vector3.js -> dist/prod/dot/js/Utils.js
...and 248 more
�[32mcreated �[1mdist/scenerystack.esm.min.js�[22m in �[1m1m 26.9s�[22m�[39m
�[36m
�[1mdist/dev/standalone.js�[22m → �[1mdist/scenerystack.umd.js�[22m...�[39m
�[1m�[33m(!) Circular dependencies�[39m�[22m
dist/dev/tandem/js/types/IOType.js -> dist/dev/tandem/js/types/StateSchema.js -> dist/dev/tandem/js/types/IOType.js
dist/dev/dot/js/Vector2.js -> dist/dev/dot/js/Utils.js -> dist/dev/dot/js/Vector2.js
dist/dev/dot/js/Utils.js -> dist/dev/dot/js/Vector3.js -> dist/dev/dot/js/Utils.js
...and 276 more
�[32mcreated �[1mdist/scenerystack.umd.js�[22m in �[1m54.3s�[22m�[39m
�[36m
�[1mdist/prod/standalone.js�[22m → �[1mdist/scenerystack.umd.min.js�[22m...�[39m
�[1m�[33m(!) Circular dependencies�[39m�[22m
dist/prod/tandem/js/types/IOType.js -> dist/prod/tandem/js/types/StateSchema.js -> dist/prod/tandem/js/types/IOType.js
dist/prod/dot/js/Vector2.js -> dist/prod/dot/js/Utils.js -> dist/prod/dot/js/Vector2.js
dist/prod/dot/js/Utils.js -> dist/prod/dot/js/Vector3.js -> dist/prod/dot/js/Utils.js
...and 248 more
�[32mcreated �[1mdist/scenerystack.umd.min.js�[22m in �[1m1m 30.4s�[22m�[39m

debug: stdout: build complete, can use `"scenerystack": "file:../scenerystack"` or equivalent in package.json dependencies to use local package

debug: Exit callback: npx
debug: Command npx finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: [scenerystack]: build 
copying and patching no-assert no-namespace
running tsc (prod)
copying and patching
running tsc (dev)
running rollup
�[36m
�[1mdist/dev/standalone.js�[22m → �[1mdist/scenerystack.esm.js�[22m...�[39m
�[1m�[33m(!) Circular dependencies�[39m�[22m
dist/dev/tandem/js/types/IOType.js -> dist/dev/tandem/js/types/StateSchema.js -> dist/dev/tandem/js/types/IOType.js
dist/dev/dot/js/Vector2.js -> dist/dev/dot/js/Utils.js -> dist/dev/dot/js/Vector2.js
dist/dev/dot/js/Utils.js -> dist/dev/dot/js/Vector3.js -> dist/dev/dot/js/Utils.js
...and 276 more
�[32mcreated �[1mdist/scenerystack.esm.js�[22m in �[1m58.7s�[22m�[39m
�[36m
�[1mdist/prod/standalone.js�[22m → �[1mdist/scenerystack.esm.min.js�[22m...�[39m
�[1m�[33m(!) Circular dependencies�[39m�[22m
dist/prod/tandem/js/types/IOType.js -> dist/prod/tandem/js/types/StateSchema.js -> dist/prod/tandem/js/types/IOType.js
dist/prod/dot/js/Vector2.js -> dist/prod/dot/js/Utils.js -> dist/prod/dot/js/Vector2.js
dist/prod/dot/js/Utils.js -> dist/prod/dot/js/Vector3.js -> dist/prod/dot/js/Utils.js
...and 248 more
�[32mcreated �[1mdist/scenerystack.esm.min.js�[22m in �[1m1m 26.9s�[22m�[39m
�[36m
�[1mdist/dev/standalone.js�[22m → �[1mdist/scenerystack.umd.js�[22m...�[39m
�[1m�[33m(!) Circular dependencies�[39m�[22m
dist/dev/tandem/js/types/IOType.js -> dist/dev/tandem/js/types/StateSchema.js -> dist/dev/tandem/js/types/IOType.js
dist/dev/dot/js/Vector2.js -> dist/dev/dot/js/Utils.js -> dist/dev/dot/js/Vector2.js
dist/dev/dot/js/Utils.js -> dist/dev/dot/js/Vector3.js -> dist/dev/dot/js/Utils.js
...and 276 more
�[32mcreated �[1mdist/scenerystack.umd.js�[22m in �[1m54.3s�[22m�[39m
�[36m
�[1mdist/prod/standalone.js�[22m → �[1mdist/scenerystack.umd.min.js�[22m...�[39m
�[1m�[33m(!) Circular dependencies�[39m�[22m
dist/prod/tandem/js/types/IOType.js -> dist/prod/tandem/js/types/StateSchema.js -> dist/prod/tandem/js/types/IOType.js
dist/prod/dot/js/Vector2.js -> dist/prod/dot/js/Utils.js -> dist/prod/dot/js/Vector2.js
dist/prod/dot/js/Utils.js -> dist/prod/dot/js/Vector3.js -> dist/prod/dot/js/Utils.js
...and 248 more
�[32mcreated �[1mdist/scenerystack.umd.min.js�[22m in �[1m1m 30.4s�[22m�[39m

build complete, can use `"scenerystack": "file:../scenerystack"` or equivalent in package.json dependencies to use local package

debug: Running git clone https://github.com/scenerystack/demo-sim.git from ./.scenerystack
debug: stderr: Cloning into 'demo-sim'...

debug: Exit callback: git
debug: Command git finished (from "close"). Output is below.
debug: stderr: Cloning into 'demo-sim'...

debug: stdout is empty.
debug: Running npm prune from ./.scenerystack/demo-sim
debug: stdout: 
added 266 packages, and audited 268 packages in 29s

debug: stdout: 
121 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
added 266 packages, and audited 268 packages in 29s

121 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running npm update from ./.scenerystack/demo-sim
debug: stdout: 
changed 265 packages, and audited 268 packages in 21s

debug: stdout: 
121 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
changed 265 packages, and audited 268 packages in 21s

121 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running git clone https://github.com/scenerystack/scenery-template-parcel.git from ./.scenerystack
debug: stderr: Cloning into 'scenery-template-parcel'...

debug: Exit callback: git
debug: Command git finished (from "close"). Output is below.
debug: stderr: Cloning into 'scenery-template-parcel'...

debug: stdout is empty.
debug: Running npm prune from ./.scenerystack/scenery-template-parcel
debug: stdout: 
added 257 packages, and audited 259 packages in 17s

debug: stdout: 

debug: stdout: 118 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
added 257 packages, and audited 259 packages in 17s

118 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running npm update from ./.scenerystack/scenery-template-parcel
debug: stdout: 
changed 256 packages, and audited 259 packages in 18s

debug: stdout: 

debug: stdout: 118 packages are looking for funding

debug: stdout:   run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
changed 256 packages, and audited 259 packages in 18s

118 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running git clone https://github.com/scenerystack/scenery-template-vite.git from ./.scenerystack
debug: stderr: Cloning into 'scenery-template-vite'...

debug: Exit callback: git
debug: Command git finished (from "close"). Output is below.
debug: stderr: Cloning into 'scenery-template-vite'...

debug: stdout is empty.
debug: Running npm prune from ./.scenerystack/scenery-template-vite
debug: stdout: 
added 128 packages, and audited 130 packages in 8s

debug: stdout: 

debug: stdout: 40 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
added 128 packages, and audited 130 packages in 8s

40 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running npm update from ./.scenerystack/scenery-template-vite
debug: stdout: 
changed 127 packages, and audited 130 packages in 8s

debug: stdout: 
40 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
changed 127 packages, and audited 130 packages in 8s

40 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running git clone https://github.com/scenerystack/scenerystack-tests.git from ./.scenerystack
debug: stderr: Cloning into 'scenerystack-tests'...

debug: Exit callback: git
debug: Command git finished (from "close"). Output is below.
debug: stderr: Cloning into 'scenerystack-tests'...

debug: stdout is empty.
debug: Running npm prune from ./.scenerystack/scenerystack-tests
debug: stdout: 
added 135 packages, and audited 137 packages in 9s

40 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
added 135 packages, and audited 137 packages in 9s

40 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running npm update from ./.scenerystack/scenerystack-tests
debug: stdout: 
changed 134 packages, and audited 137 packages in 8s

debug: stdout: 
40 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
changed 134 packages, and audited 137 packages in 8s

40 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running git clone https://github.com/scenerystack/sim-template-parcel.git from ./.scenerystack
debug: stderr: Cloning into 'sim-template-parcel'...

debug: Exit callback: git
debug: Command git finished (from "close"). Output is below.
debug: stderr: Cloning into 'sim-template-parcel'...

debug: stdout is empty.
debug: Running npm prune from ./.scenerystack/sim-template-parcel
debug: stdout: 
added 257 packages, and audited 259 packages in 18s

debug: stdout: 

debug: stdout: 118 packages are looking for funding

debug: stdout:   run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
added 257 packages, and audited 259 packages in 18s

118 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running npm update from ./.scenerystack/sim-template-parcel
debug: stdout: 
changed 256 packages, and audited 259 packages in 18s

debug: stdout: 

debug: stdout: 118 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
changed 256 packages, and audited 259 packages in 18s

118 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running git clone https://github.com/scenerystack/sim-template-vite.git from ./.scenerystack
debug: stderr: Cloning into 'sim-template-vite'...

debug: Exit callback: git
debug: Command git finished (from "close"). Output is below.
debug: stderr: Cloning into 'sim-template-vite'...

debug: stdout is empty.
debug: Running npm prune from ./.scenerystack/sim-template-vite
debug: stdout: 
added 128 packages, and audited 130 packages in 8s

debug: stdout: 
40 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
added 128 packages, and audited 130 packages in 8s

40 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running npm update from ./.scenerystack/sim-template-vite
debug: stdout: 
changed 127 packages, and audited 130 packages in 7s

debug: stdout: 
40 packages are looking for funding
  run `npm fund` for details

debug: stdout: 
found 0 vulnerabilities

debug: Exit callback: npm
debug: Command npm finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: 
changed 127 packages, and audited 130 packages in 7s

40 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

debug: Running npx tsc from ./.scenerystack/demo-sim
debug: stdout: src/brand.ts(1,10): error TS2724: '"scenerystack/brand"' has no exported member named 'brand'. Did you mean 'TBrand'?

debug: stdout: src/init.ts(1,10): error TS2305: Module '"scenerystack/init"' has no exported member 'init'.

debug: Exit callback: npx
debug: Command npx finished (from "close"). Output is below.
debug: stderr is empty.
debug: stdout: src/brand.ts(1,10): error TS2724: '"scenerystack/brand"' has no exported member named 'brand'. Did you mean 'TBrand'?
src/init.ts(1,10): error TS2305: Module '"scenerystack/init"' has no exported member 'init'.

/data/share/phet/continuous-testing/ct-main/ct-snapshots/1738441924900/perennial/js/common/execute.ts:144
            reject( new ExecuteError( cmd, args, cwd, stdout, stderr, code, Date.now() - startTime ) );
                    ^

ExecuteError: npx tsc in ./.scenerystack/demo-sim failed with exit code 2
stdout:
src/brand.ts(1,10): error TS2724: '"scenerystack/brand"' has no exported member named 'brand'. Did you mean 'TBrand'?
src/init.ts(1,10): error TS2305: Module '"scenerystack/init"' has no exported member 'init'.

    at ChildProcess.<anonymous> (/data/share/phet/continuous-testing/ct-main/ct-snapshots/1738441924900/perennial/js/common/execute.ts:144:21)
    at ChildProcess.emit (node:events:519:28)
    at maybeClose (node:internal/child_process:1105:16)
    at ChildProcess._handle.onexit (node:internal/child_process:305:5) {
  cmd: 'npx',
  args: [ 'tsc' ],
  cwd: './.scenerystack/demo-sim',
  stdout: `src/brand.ts(1,10): error TS2724: '"scenerystack/brand"' has no exported member named 'brand'. Did you mean 'TBrand'?\n` +
    `src/init.ts(1,10): error TS2305: Module '"scenerystack/init"' has no exported member 'init'.\n`,
  stderr: '',
  code: 2,
  time: 5149
}

Node.js v20.18.0
Snapshot from 2/1/2025, 1:32:04 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants