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

Open
wants to merge 63 commits into
base: v20.x
Choose a base branch
from
Open

v20.19.3 proposal #58588

wants to merge 63 commits into from

Conversation

marco-ippolito
Copy link
Member

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

2025-06-11, 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
  • [e0cf31c4b8] - deps: update timezone to 2025b (Node.js GitHub Bot) #57857
  • [df0ba1b00f] - doc: stabilize util.styleText (Rafael Gonzaga) #56265
  • [161cca406f] - 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
  • [a029c66791] - 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
  • [b1aca2455b] - deps: V8: cherry-pick 1a3ecc2483b2 (Michaël Zasso) #58342
  • [2060738e19] - deps: V8: cherry-pick 182d9c05e78b (Andrey Kosyakov) #58342
  • [f96762cfb1] - deps: V8: cherry-pick third_party/zlib@646b7f569718 (Hans Wennborg) #58342
  • [cffb5ccc8a] - deps: update simdutf to 6.4.2 (Node.js GitHub Bot) #57855
  • [e0cf31c4b8] - deps: update timezone to 2025b (Node.js GitHub Bot) #57857
  • [83ef9fe6e4] - deps: update icu to 77.1 (Node.js GitHub Bot) #57455
  • [1b37ba82d8] - deps: update llhttp to 9.3.0 (Fedor Indutny) #58144
  • [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
  • [4959820808] - doc: mention reports should align with Node.js CoC (Rafael Gonzaga) #57607
  • [375d3c1bd7] - doc: add gurgunday as triager (Gürgün Dayıoğlu) #57594
  • [97497a59a4] - doc: document REPL custom eval arguments (Dario Piotrowicz) #57690
  • [4f265b17b4] - doc: improved fetch docs (Alessandro Miliucci) #57296
  • [0a13eb285b] - doc: clarify unhandledRejection events behaviors in process doc (Dario Piotrowicz) #57654
  • [50954f935d] - doc: update position type to integer | null in fs (Yukihiro Hasegawa) #57745
  • [df0ba1b00f] - doc: stabilize util.styleText (Rafael Gonzaga) #56265
  • [ebb59bea93] - doc: add missing v0.x changelog entries (Antoine du Hamel) #57779
  • [f86779dff0] - doc: correct deprecation type of assert.CallTracker (René) #57997
  • [29a8a1b94f] - doc: add returns for https.get (Eng Zer Jun) #58025
  • [f339d57a6e] - doc: fix env variable name in util.styleText (Antoine du Hamel) #58072
  • [161cca406f] - doc: add dario-piotrowicz to collaborators (Dario Piotrowicz) #58102
  • [7b90de72f5] - doc: fix AsyncLocalStorage example response changes after node v18 (Naor Tedgi (Abu Emma)) #57969
  • [915e53745c] - doc: fix typo of file zlib.md (yusheng chen) #58093
  • [f631dc5785] - doc: add missing options.signal to readlinePromises.createInterface() (Jimmy Leung) #55456
  • [cc0f6188d0] - doc: fix misaligned options in vm.compileFunction() (Jimmy Leung) #58145
  • [c0792dd09d] - 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
  • [8c77f738ad] - http: correctly translate HTTP method (Paolo Insogna) #52701
  • [64faac6ea1] - http: be more generational GC friendly (ywave620) #56767
  • [39cf617033] - http2: skip writeHead if stream is closed (Shima Ryuhei) #57686
  • [6f33311a78] - http2: fix graceful session close (Kushagra Pandey) #57808
  • [6374ba2445] - os: fix netmask format check condition in getCIDR function (Wiyeong Seo) #57324
  • [5480c73761] - src: remove unused variable in crypto_x509.cc (Michaël Zasso) #57754
  • [c04f30c87e] - src: allow embedder customization of OOMErrorHandler (Shelley Vohr) #57325
  • [a96eab531c] - src: fix -Wunreachable-code-return in node_sea (Shelley Vohr) #57664
  • [fcd1622fc1] - src: fix kill signal 0 on Windows (Stefan Stojanovic) #57695
  • [0d244523a2] - test: update WPT for WebCryptoAPI to edd42c005c (Node.js GitHub Bot) #57365
  • [76577cd446] - test: mark test-without-async-context-frame flaky on windows (James M Snell) #56753
  • [6a2258b654] - test: force GC in test-file-write-stream4 (Luigi Pinca) #57930
  • [703f4faea1] - test: deflake test-http2-options-max-headers-block-length (Luigi Pinca) #57959
  • [86229cb043] - 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
  • [7da860207c] - test,crypto: update WebCryptoAPI WPT (Filip Skokan) #54593
  • [8ac34ba29d] - tools: remove unused osx-pkg-postinstall.sh (Antoine du Hamel) #57667
  • [75a49d8b1f] - 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
  • [4592bd36f0] - typings: fix ImportModuleDynamicallyCallback return type (Chengzhong Wu) #57160
  • [[363bf744ab](https://github.com

aduh95 and others added 30 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 <[email protected]>
PR-URL: #57994
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Edy Silva <[email protected]>
PR-URL: #57994
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Edy Silva <[email protected]>
If the buffer allocation fails due to insufficient memory, there is no
point continue testing toString().

PR-URL: #58415
Reviewed-By: LiviaMedeiros <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
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 <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Stefan Stojanovic <[email protected]>
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 <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
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 <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
PR-URL: #55892
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Jason Zhang <[email protected]>
PR-URL: #56142
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
Signed-off-by: Matteo Collina <[email protected]>
PR-URL: #56428
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Paolo Insogna <[email protected]>
PR-URL: #56764
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
PR-URL: #57265
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #57384
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #57620
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Joyee Cheung <[email protected]>
Reviewed-By: Ulises Gascón <[email protected]>
Reviewed-By: Jordan Harband <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
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 <[email protected]>
Reviewed-By: Jake Yuesong Li <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
PR-URL: #57742
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
PR-URL: #57785
Refs: #40121
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
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 <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Co-Authored-By: richardlau - Richard Lau <[email protected]>
PR-URL: #58090
Refs: #57934
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Richard Lau <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
[email protected] optimizes header value parsing on ARM Neon/WASM, and adds
support for a protocol callback for use outside of the typical HTTP
setting (RTSP/ICE).

PR-URL: #58144
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Juan José Arboleda <[email protected]>
Reviewed-By: Matteo Collina <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
PR-URL: #57600
Reviewed-By: Moshe Atlow <[email protected]>
Reviewed-By: Michael Dawson <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Current alignment mislead doc reader into thinking
`importModuleDynamically` is a separate positional param right next to
`options`, which is incorrect and need to be fixed.

This misalignment is introduced in a PR merged in Feb 2024.

I belive this doc fix applies to node v20 and above.

Refs: #51244
PR-URL: #58145
Reviewed-By: Darshan Sen <[email protected]>
Reviewed-By: Daeyeon Jeong <[email protected]>
From the source code, `readlinePromises.createInterface()` calls
`new Interface()` imported from `internal/readline/interface`, which
works the same as the non-promise version. If non-promise version
accepts options.signal, it should also work for
`readlinePromises.createInterface()`. Hence this information need to be
indicated in the documentation.

Refs: https://github.com/nodejs/node/blob/main/lib/readline/promises.js
PR-URL: #55456
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #58093
Reviewed-By: Daeyeon Jeong <[email protected]>
Reviewed-By: LiviaMedeiros <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #58102
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Ruben Bridgewater <[email protected]>
PR-URL: #58076
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Pietro Marchini <[email protected]>
Reviewed-By: Chemi Atlow <[email protected]>
PR-URL: #58072
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Marco Ippolito <[email protected]>
Signed-off-by: Eng Zer Jun <[email protected]>
PR-URL: #58025
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Trivikram Kamat <[email protected]>
zmodem and others added 3 commits June 5, 2025 14:05
Original commit message:

    [zlib][build] Remove fdopen #defines in zutil.h.

    The latest version of Clang changed what macros it predefines on Apple
    targets, causing errors about predefined macros in zlib.

    See:
    madler/zlib@4bd9a71

    Bug: 1519899
    Change-Id: Ie75ef4078f2c86d89ba6c036ddd13e768a40ccbb
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5237020
    Reviewed-by: Adenilson Cavalcanti <[email protected]>
    Commit-Queue: Hans Wennborg <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#1253252}
    NOKEYCHECK=True
    GitOrigin-RevId: 2f39ac8d0a414dd65c0e1d5aae38c8f97aa06ae9

Refs: https://chromium.googlesource.com/chromium/src/third_party/zlib/+/646b7f569718921d7d4b5b8e22572ff6c76f2596
PR-URL: #58342
Reviewed-By: Marco Ippolito <[email protected]>
Original commit message:

    Define UChar as char16_t

    We used to have UChar defined as uint16_t which does not go along
    with STL these days if you try to have an std::basic_string<> of it,
    as there are no standard std::char_traits<> specialization for uint16_t.

    This switches UChar to char16_t where practical, introducing a few
    compatibility shims to keep CL size small, as (1) this would likely
    have to be back-ported and (2) crdtp extensively uses uint16_t for
    wide chars.

    Bug: b:296390693
    Change-Id: I66a32d8f0050915225b187de56896c26dd76163d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4789966
    Reviewed-by: Jaroslav Sevcik <[email protected]>
    Commit-Queue: Jaroslav Sevcik <[email protected]>
    Auto-Submit: Andrey Kosyakov <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#89559}

Refs: v8/v8@182d9c0
PR-URL: #58342
Reviewed-By: Marco Ippolito <[email protected]>
Original commit message:

    Fix build issue, remove unneeded include uchar.h.

    Follow the conversation on:
    https://groups.google.com/g/v8-dev/c/nsbshwlmP3c.

    The `uchar.h` include is not necessary.
    It was added to get the definition of char16_t but that's an intrinsic
    type in C++.

    Change-Id: I0aaa11dba0be3ccad15b9e421f8bae71450d443b
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4823404
    Reviewed-by: Omer Katz <[email protected]>
    Commit-Queue: Eric Leese <[email protected]>
    Reviewed-by: Eric Leese <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#89787}

Refs: v8/v8@1a3ecc2
PR-URL: #49639
Reviewed-By: Jiawen Geng <[email protected]>
Reviewed-By: Rafael Gonzaga <[email protected]>
Reviewed-By: Antoine du Hamel <[email protected]>
PR-URL: #58342
Reviewed-By: Marco Ippolito <[email protected]>
@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 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 added release Issues and PRs related to Node.js releases. v8 engine Issues and PRs related to the V8 dependency. needs-ci PRs that need a full CI run. needs-citgm PRs that need a CITGM CI run. and removed doc Issues and PRs related to the documentations. build Issues and PRs related to build files or the CI. meta Issues and PRs related to the general management of the project. needs-ci PRs that need a full CI run. dependencies Pull requests that update a dependency file. labels Jun 5, 2025
@marco-ippolito marco-ippolito marked this pull request as ready for review June 5, 2025 12:12
panva and others added 4 commits June 9, 2025 09:46
Refs: #54572
Refs: #54468
PR-URL: #54593
Backport-PR-URL: #58589
Refs: #54572
Refs: #54468
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: Michaël Zasso <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
PR-URL: #55866
Backport-PR-URL: #58589
Reviewed-By: Matthew Aitken <[email protected]>
Reviewed-By: Yagiz Nizipli <[email protected]>
Reviewed-By: Jason Zhang <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
Reviewed-By: Tobias Nießen <[email protected]>
PR-URL: #57365
Backport-PR-URL: #58589
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Jason Zhang <[email protected]>
Reviewed-By: Luigi Pinca <[email protected]>
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
@nodejs-github-bot
Copy link
Collaborator

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 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.