Skip to content

v20.19.3 proposal #58588

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

Merged
merged 63 commits into from
Jun 23, 2025
Merged

v20.19.3 proposal #58588

merged 63 commits into from
Jun 23, 2025

Conversation

marco-ippolito
Copy link
Member

@marco-ippolito marco-ippolito commented Jun 5, 2025

2025-06-23, Version 20.19.3 'Iron' (LTS), @marco-ippolito

Notable Changes

  • [c535a3c483] - crypto: graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable (Filip Skokan) #56142
  • [af1dc63815] - crypto: update root certificates to NSS 3.108 (Node.js GitHub Bot) #57381
  • [01d63a4ddf] - deps: update timezone to 2025b (Node.js GitHub Bot) #57857
  • [b6daa344eb] - doc: add dario-piotrowicz to collaborators (Dario Piotrowicz) #58102

Commits

  • [fc1fa7a357] - build: use FILE_OFFSET_BITS=64 esp. on 32-bit arch (RafaelGSS) #58090
  • [79e0812181] - build: use glob for dependencies of out/Makefile (Richard Lau) #55789
  • [f56e62851a] - crypto: allow length=0 for HKDF and PBKDF2 in SubtleCrypto.deriveBits (Filip Skokan) #55866
  • [c535a3c483] - crypto: graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable (Filip Skokan) #56142
  • [39925de8b1] - crypto: allow non-multiple of 8 in SubtleCrypto.deriveBits (Filip Skokan) #55296
  • [af1dc63815] - crypto: update root certificates to NSS 3.108 (Node.js GitHub Bot) #57381
  • [d09008add3] - deps: V8: cherry-pick 1a3ecc2483b2 (Michaël Zasso) #58342
  • [fd56652425] - deps: V8: cherry-pick 182d9c05e78b (Andrey Kosyakov) #58342
  • [447481e829] - deps: V8: cherry-pick third_party/zlib@646b7f569718 (Hans Wennborg) #58342
  • [eb447168df] - deps: update simdutf to 6.4.2 (Node.js GitHub Bot) #57855
  • [01d63a4ddf] - deps: update timezone to 2025b (Node.js GitHub Bot) #57857
  • [10fb49f2a9] - deps: update icu to 77.1 (Node.js GitHub Bot) #57455
  • [f1dc7d0205] - deps: update corepack to 0.32.0 (Node.js GitHub Bot) #57265
  • [7a2e64bb8a] - deps: update simdutf to 6.4.0 (Node.js GitHub Bot) #56764
  • [e80669be0d] - doc: mention reports should align with Node.js CoC (Rafael Gonzaga) #57607
  • [7b2c0bc92e] - doc: add gurgunday as triager (Gürgün Dayıoğlu) #57594
  • [791e4879de] - doc: document REPL custom eval arguments (Dario Piotrowicz) #57690
  • [2917f09876] - doc: improved fetch docs (Alessandro Miliucci) #57296
  • [d940b15843] - doc: clarify unhandledRejection events behaviors in process doc (Dario Piotrowicz) #57654
  • [71c664fab7] - doc: update position type to integer | null in fs (Yukihiro Hasegawa) #57745
  • [0c0fbfa9c6] - doc: add missing v0.x changelog entries (Antoine du Hamel) #57779
  • [e99462c9fc] - doc: correct deprecation type of assert.CallTracker (René) #57997
  • [c7e92696ef] - doc: add returns for https.get (Eng Zer Jun) #58025
  • [ccc42b69ce] - doc: fix env variable name in util.styleText (Antoine du Hamel) #58072
  • [b6daa344eb] - doc: add dario-piotrowicz to collaborators (Dario Piotrowicz) #58102
  • [e5d6a3df16] - doc: fix AsyncLocalStorage example response changes after node v18 (Naor Tedgi (Abu Emma)) #57969
  • [f006411998] - doc: fix typo of file zlib.md (yusheng chen) #58093
  • [5193735df4] - doc: add missing options.signal to readlinePromises.createInterface() (Jimmy Leung) #55456
  • [fd44af730f] - doc: fix misaligned options in vm.compileFunction() (Jimmy Leung) #58145
  • [0fdcc0ddcd] - doc: add ambassaor message (Brian Muenzenmeyer) #57600
  • [5ca9616bd3] - doc: increase z-index of header element (Dario Piotrowicz) #57851
  • [81342d10f0] - doc: fix deprecation type for DEP0148 (Livia Medeiros) #57785
  • [776becfe01] - doc: remove mention of --require not supporting ES modules (Huáng Jùnliàng) #57620
  • [3140a8f133] - doc: add missing deprecated badges in fs.md (Yukihiro Hasegawa) #57384
  • [441ce24ae3] - doc: deprecate passing invalid types in fs.existsSync (Carlos Espa) #55892
  • [0556f54544] - http: correctly translate HTTP method (Paolo Insogna) #52701
  • [c2c6d2b035] - http: be more generational GC friendly (ywave620) #56767
  • [cdf3fa241c] - http2: skip writeHead if stream is closed (Shima Ryuhei) #57686
  • [bbd5aec785] - http2: fix graceful session close (Kushagra Pandey) #57808
  • [b427ae4f34] - meta: remove build-windows.yml (Aviv Keller) #54662
  • [49e624f554] - os: fix netmask format check condition in getCIDR function (Wiyeong Seo) #57324
  • [d582954434] - src: remove unused variable in crypto_x509.cc (Michaël Zasso) #57754
  • [234a505e96] - src: allow embedder customization of OOMErrorHandler (Shelley Vohr) #57325
  • [c0252cd380] - src: fix -Wunreachable-code-return in node_sea (Shelley Vohr) #57664
  • [fcd1622fc1] - src: fix kill signal 0 on Windows (Stefan Stojanovic) #57695
  • [850192b06b] - test: skip broken sea on rhel8 (Marco Ippolito) #58761
  • [3cf7cfb695] - test: update WPT for WebCryptoAPI to edd42c005c (Node.js GitHub Bot) #57365
  • [f57765bdcf] - test: mark test-without-async-context-frame flaky on windows (James M Snell) #56753
  • [275ea8e7ef] - test: force GC in test-file-write-stream4 (Luigi Pinca) #57930
  • [da6a13c338] - test: deflake test-http2-options-max-headers-block-length (Luigi Pinca) #57959
  • [56fce6691e] - test: prevent extraneous HOSTNAME substitution in test-runner-output (René) #58076
  • [c9c0be5596] - test: update expected error message for macOS (Antoine du Hamel) #57742
  • [3cbf5f93d2] - test: fix missing edge case in test-blob-slice-with-large-size (Joyee Cheung) #58414
  • [bffd4ec379] - test: skip in test-buffer-tostring-rangeerror on allocation failure (Joyee Cheung) #58415
  • [8237346fb7] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #54593
  • [b90c4ab937] - tools: remove unused osx-pkg-postinstall.sh (Antoine du Hamel) #57667
  • [414013dcfb] - tools: edit create-release-proposal workflow to handle pr body length (Elves Vieira) #57841
  • [7c449ed6b3] - tools: fix tarball testing directory (Marco Ippolito) #57994
  • [d164dc2d38] - tools: update sccache version to v0.10.0 (Marco Ippolito) #57994
  • [debd3c2cc0] - tools: disable failing test envs in test-linux CI (Antoine du Hamel) #58351
  • [152112505a] - typings: fix ImportModuleDynamicallyCallback return type (Chengzhong Wu) #57160
  • [363bf744ab] - worker: flush stdout and stderr on exit (Matteo Collina) #56428

aduh95 and others added 20 commits May 22, 2025 15:26
29c0324 added a few test environments that are simply not working
20.x branch. Let's revert those changes that were unrelated, probably a
result of a sloppy conflict resolution.

PR-URL: #58351
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
PR-URL: #57994
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Edy Silva <edigleyssonsilva@gmail.com>
PR-URL: #57994
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Edy Silva <edigleyssonsilva@gmail.com>
If the buffer allocation fails due to insufficient memory, there is no
point continue testing toString().

PR-URL: #58415
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
The test only cares about whether a size outside the range
of the 32-bit signed integers works with Blob.prototype.slice().
If it fails due to allocation failure when the system
does not have enough memory, the test should just be skipped.
The test previously only skipped the test when the allocation
failure happens during allocation of the buffer source, but
it could also happen during Blob.prototype.slice().

PR-URL: #58414
Fixes: #57235
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: LiviaMedeiros <livia@cirno.name>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Stefan Stojanovic <stefan.stojanovic@janeasystems.com>
This is the certdata.txt[0] from NSS 3.108.

This is the version of NSS that shipped in Firefox 136.0 on 2025-03-04.

Certificates added:
- D-TRUST BR Root CA 2 2023
- D-TRUST EV Root CA 2 2023

Certificates removed:
- SwissSign Silver CA - G2

[0] https://raw.githubusercontent.com/nss-dev/nss/refs/tags/NSS_3_108_RTM/lib/ckfw/builtins/certdata.txt

PR-URL: #57381
Reviewed-By: Moshe Atlow <moshe@atlow.co.il>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #55296
Reviewed-By: James M Snell <jasnell@gmail.com>
The `out/Makefile` target in `Makefile` has an incomplete list of
`.gyp` files for Node.js dependencies in `deps`, but also the ones
that are listed are unconditional. If using any of the `--shared-*`
configure options, it should be possible to still build Node.js if
the corresponding directory under `deps` is removed.

Convert the explicit list of dependency `*.gyp` files for the
`out/Makefile` target to a glob. This will pick up any toplevel
`.gyp` files for dependencies present in `deps`.

PR-URL: #55789
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Juan José Arboleda <soyjuanarbol@gmail.com>
PR-URL: #55892
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Jason Zhang <xzha4350@gmail.com>
PR-URL: #56142
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Signed-off-by: Matteo Collina <hello@matteocollina.com>
PR-URL: #56428
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Paolo Insogna <paolo@cowtech.it>
PR-URL: #56764
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
PR-URL: #57265
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
PR-URL: #57384
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
PR-URL: #57620
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Reviewed-By: Jordan Harband <ljharb@gmail.com>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
This special case was missed in the previous changes to this file.

Refs: #55514
Refs: #42923
Fixes: #57669
PR-URL: #57695
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Jake Yuesong Li <jake.yuesong@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
PR-URL: #57742
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
PR-URL: #57785
Refs: #40121
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
increase the z-index of the header element to make sure that
opened pickers from it (such as the node version picker) are
on top of other content

PR-URL: #57851
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Co-Authored-By: richardlau - Richard Lau <rlau@redhat.com>
PR-URL: #58090
Refs: #57934
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
@nodejs-github-bot
Copy link
Collaborator

Review requested:

  • @nodejs/actions
  • @nodejs/gyp
  • @nodejs/security-wg
  • @nodejs/tsc

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to build files or the CI. dependencies Pull requests that update a dependency file. doc Issues and PRs related to the documentations. meta Issues and PRs related to the general management of the project. needs-ci PRs that need a full CI run. v20.x Issues that can be reproduced on v20.x or PRs targeting the v20.x-staging branch. labels Jun 5, 2025
marco-ippolito added a commit that referenced this pull request Jun 5, 2025
Notable changes:

crypto:
  * graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable (Filip Skokan) #56142
  * update root certificates to NSS 3.108 (Node.js GitHub Bot) #57381
deps:
  * update timezone to 2025b (Node.js GitHub Bot) #57857
doc:
  * stabilize util.styleText (Rafael Gonzaga) #56265
  * add dario-piotrowicz to collaborators (Dario Piotrowicz) #58102

PR-URL: #58588
@marco-ippolito marco-ippolito removed the doc Issues and PRs related to the documentations. label Jun 5, 2025
@marco-ippolito
Copy link
Member Author

marco-ippolito commented Jun 16, 2025

The release commit is the bad commit fb7d05e, it makes the test fail 🫤
But its only markdown...
maybe the #define NODE_VERSION_IS_RELEASE 1 changes something in SEA? @RaisinTen @joyeecheung

@RaisinTen
Copy link
Member

I'm not able to think of how that change could affect SEA. It's just as surprising as the webcrypto WPT update that was being suspected earlier.

Weird that this fails on just rhel8-ppc64le and not on rhel9-ppc64le. @nodejs/platform-ppc might know why.

I suspect this is because of a platform limitation.

Another way of debugging this would be to study the core dump if one is produced or run the SEA in a debugger and check the backtrace to know where the segmentation fault is happening.

@marco-ippolito
Copy link
Member Author

I agree this is a @nodejs/build specifically @nodejs/platform-ppc issue so not really much I can do about it

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@joyeecheung
Copy link
Member

It seems fine to just skip the test on rhel8+ppc, that's only a tier 2 platform and I doubt how many users would actually be affected by this.

@marco-ippolito
Copy link
Member Author

marco-ippolito commented Jun 18, 2025

Technically

Tier 2: These platforms represent smaller segments of the Node.js user base. The Node.js Build Working Group maintains infrastructure for full test coverage. Test failures on tier 2 platforms will block releases. Infrastructure issues may delay the release of binaries for these platforms.

Test failures on tier 2 platforms will block releases

Is it ok to mark all these tests as skip?

[sequential.test-single-executable-application](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application/)
[sequential.test-single-executable-application-assets](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application_assets/)
[sequential.test-single-executable-application-assets-raw](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application_assets_raw/)
[sequential.test-single-executable-application-disable-experimental-sea-warning](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application_disable_experimental_sea_warning/)
[sequential.test-single-executable-application-empty](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application_empty/)
[sequential.test-single-executable-application-snapshot](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application_snapshot/)
[sequential.test-single-executable-application-snapshot-and-code-cache](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application_snapshot_and_code_cache/)
[sequential.test-single-executable-application-snapshot-worker](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application_snapshot_worker/)
[sequential.test-single-executable-application-use-code-cache](https://ci.nodejs.org/job/node-test-commit-plinux/nodes=rhel8-ppc64le/59518/testReport/junit/(root)/sequential/test_single_executable_application_use_code_cache/)

@RaisinTen
Copy link
Member

I'm also okay with marking these tests as skip on v20.x for rhel8-ppc64le because SEA is experimental. Also, arm64 is tier 1 on Linux and macOS but we are already skipping some tests on main -

[$arch==arm || $arch==arm64]
# https://github.com/nodejs/node/pull/31178
test-crypto-dh-stateless: SKIP
test-crypto-keygen: SKIP

@marco-ippolito
Copy link
Member Author

marco-ippolito commented Jun 19, 2025

I opened a PR to skip these tests PTAL #58761

@mhdawson
Copy link
Member

I'm ok with skipping the tests since SEA is experimental and I believe that there is likely low usage on power systems at this point

PR-URL: #58761
Refs: #58588
Reviewed-By: Filip Skokan <panva.ip@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Richard Lau <rlau@redhat.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
Reviewed-By: Darshan Sen <raisinten@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>
Notable changes:

crypto:
  * graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable (Filip Skokan) #56142
  * update root certificates to NSS 3.108 (Node.js GitHub Bot) #57381
deps:
  * update timezone to 2025b (Node.js GitHub Bot) #57857
doc:
  * add dario-piotrowicz to collaborators (Dario Piotrowicz) #58102

PR-URL: #58588
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

nodejs-github-bot commented Jun 20, 2025

@marco-ippolito
Copy link
Member Author

Finally a green CI 🥹

@nodejs-github-bot

This comment was marked as resolved.

@nodejs-github-bot

This comment was marked as resolved.

@nodejs-github-bot

This comment was marked as resolved.

@marco-ippolito
Copy link
Member Author

RELEASE CI is green lets release this!

@marco-ippolito marco-ippolito merged commit 76f8282 into v20.x Jun 23, 2025
55 of 57 checks passed
marco-ippolito added a commit that referenced this pull request Jun 23, 2025
Notable changes:

crypto:
  * graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable (Filip Skokan) #56142
  * update root certificates to NSS 3.108 (Node.js GitHub Bot) #57381
deps:
  * update timezone to 2025b (Node.js GitHub Bot) #57857
doc:
  * add dario-piotrowicz to collaborators (Dario Piotrowicz) #58102

PR-URL: #58588
@marco-ippolito marco-ippolito deleted the v20.19.3-proposal branch June 23, 2025 08:32
marco-ippolito added a commit that referenced this pull request Jun 23, 2025
marco-ippolito added a commit to nodejs/nodejs.org that referenced this pull request Jun 23, 2025
github-merge-queue bot pushed a commit to nodejs/nodejs.org that referenced this pull request Jun 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs-ci PRs that need a full CI run. needs-citgm PRs that need a CITGM CI run. release Issues and PRs related to Node.js releases. v8 engine Issues and PRs related to the V8 dependency. v20.x Issues that can be reproduced on v20.x or PRs targeting the v20.x-staging branch.
Projects
None yet
Development

Successfully merging this pull request may close these issues.