Node v20.7.0 (Current)

By Ulises Gascón,

Notable Changes

  • [022f1b70c1] - src: support multiple --env-file declarations (Yagiz Nizipli) #49542
  • [4a1d1cad61] - crypto: update root certificates to NSS 3.93 (Node.js GitHub Bot) #49341
  • [a1a65f593c] - deps: upgrade npm to 10.1.0 (npm team) #49570
  • [6c2480cad9] - (SEMVER-MINOR) deps: upgrade npm to 10.0.0 (npm team) #49423
  • [bef900e56b] - doc: move and rename loaders section (Geoffrey Booth) #49261
  • [db4ce8a593] - doc: add release key for Ulises Gascon (Ulises Gascón) #49196
  • [11c85ffa98] - (SEMVER-MINOR) lib: add api to detect whether source-maps are enabled (翠 / green) #46391
  • [ec51e25ed7] - src,permission: add multiple allow-fs-* flags (Carlos Espa) #49047
  • [efdc95fbc0] - (SEMVER-MINOR) test_runner: expose location of tests (Colin Ihrig) #48975

Commits

  • [e84515594e] - benchmark: use tmpdir.resolve() (Livia Medeiros) #49137
  • [f37444e896] - bootstrap: build code cache from deserialized isolate (Joyee Cheung) #49099
  • [af6dc1754d] - bootstrap: do not generate code cache in an unfinalized isolate (Joyee Cheung) #49108
  • [cade5716df] - build: add symlink to compile_commands.json file if needed (Juan José) #49260
  • [34a2590b05] - build: expand when we run internet tests (Michael Dawson) #49218
  • [f637fd46ab] - build: fix typo libray -> library (configure.py) (michalbiesek) #49106
  • [ef3d8dd493] - crypto: remove webcrypto EdDSA key checks and properties (Filip Skokan) #49408
  • [4a1d1cad61] - crypto: update root certificates to NSS 3.93 (Node.js GitHub Bot) #49341
  • [7eb10a38ea] - crypto: remove getDefaultEncoding() (Tobias Nießen) #49170
  • [772496c030] - crypto: remove default encoding from DiffieHellman (Tobias Nießen) #49169
  • [c795083232] - crypto: remove default encoding from Hash/Hmac (Tobias Nießen) #49167
  • [08197aa010] - crypto: remove default encoding from sign/verify (Tobias Nießen) #49145
  • [a1a65f593c] - deps: upgrade npm to 10.1.0 (npm team) #49570
  • [6c2480cad9] - (SEMVER-MINOR) deps: upgrade npm to 10.0.0 (npm team) #49423
  • [84195d9584] - deps: add missing thread-common.c in uv.gyp (Santiago Gimeno) #49410
  • [5b70b68b3d] - deps: V8: cherry-pick eadaef581c29 (Adam Majer) #49401
  • [fe34d632e8] - deps: update zlib to 1.2.13.1-motley-f5fd0ad (Node.js GitHub Bot) #49252
  • [db4ce8a593] - doc: add release key for Ulises Gascon (Ulises Gascón) #49196
  • [e5f3a694cf] - doc: fix node-api call example (Chengzhong Wu) #49395
  • [021345a724] - doc: add news issue for Diagnostics WG (Michael Dawson) #49306
  • [f82347266b] - doc: clarify policy expectations (Rafael Gonzaga) #48947
  • [73cfd9c895] - doc: add print results for examples in StringDecoder (Jungku Lee) #49326
  • [63ab591416] - doc: update outdated reference to NIST SP 800-131A (Tobias Nießen) #49316
  • [935dfe2afd] - doc: use cjs as block code's type in MockTimers (Deokjin Kim) #49309
  • [7c0cd2fb87] - doc: update options.filter description for fs.cp (Shubham Pandey) #49289
  • [f72e79ea67] - doc: add riscv64 to list of architectures (Stewart X Addison) #49284
  • [d19c710064] - doc: avoid "not currently recommended" (Tobias Nießen) #49300
  • [ae656101c0] - doc: update module hooks docs (Geoffrey Booth) #49265
  • [fefbdb92f2] - doc: modify param description for end(),write() in StringDecoder (Jungku Lee) #49285
  • [59e66a1ebe] - doc: use NODE_API_SUPPORTED_VERSION_MAX in release doc (Cheng Zhao) #49268
  • [ac3b88449b] - doc: fix typo in stream.finished documentation (Antoine du Hamel) #49271
  • [7428ebf6c3] - doc: update description for percent_encode sets in WHATWG API (Jungku Lee) #49258
  • [bef900e56b] - doc: move and rename loaders section (Geoffrey Booth) #49261
  • [a22e0d9696] - doc: clarify use of Uint8Array for n-api (Fedor Indutny) #48742
  • [1704f24cb9] - doc: add signature for module.register (Geoffrey Booth) #49251
  • [5a363bb01b] - doc: caveat unavailability of import.meta.resolve in custom loaders (Jacob Smith) #49242
  • [8101f2b259] - doc: use same name in the doc as in the code (Hyunjin Kim) #49216
  • [edf278d60d] - doc: add notable-change label mention to PR template (Rafael Gonzaga) #49188
  • [3df2251a6a] - doc: add h1 summary to security release process (Rafael Gonzaga) #49112
  • [9fcd99a744] - doc: update to semver-minor releases by default (Rafael Gonzaga) #49175
  • [777931f499] - doc: fix wording in napi_async_init (Tobias Nießen) #49180
  • [f45c8e10c0] - doc,test: add known path resolution issue in permission model (Tobias Nießen) #49155
  • [a6cfea3f74] - esm: align sync and async load implementations (Antoine du Hamel) #49152
  • [9fac310b33] - fs: add the options param description in openAsBlob() (Yeseul Lee) #49308
  • [92772a8175] - fs: remove redundant code in readableWebStream() (Deokjin Kim) #49298
  • [88ba79b083] - fs: make sure to write entire buffer (Robert Nagy) #49211
  • [11c85ffa98] - (SEMVER-MINOR) lib: add api to detect whether source-maps are enabled (翠 / green) #46391
  • [c12711ebfe] - lib: implement WeakReference on top of JS WeakRef (Joyee Cheung) #49053
  • [9a0891f88d] - meta: bump step-security/harden-runner from 2.5.0 to 2.5.1 (dependabot[bot]) #49435
  • [ae67f41ef1] - meta: bump actions/checkout from 3.5.3 to 3.6.0 (dependabot[bot]) #49436
  • [71b4411fb2] - meta: bump actions/setup-node from 3.7.0 to 3.8.1 (dependabot[bot]) #49434
  • [83b7d3a395] - meta: remove modules team from CODEOWNERS (Benjamin Gruenbaum) #49412
  • [81ff68c45c] - meta: move one or more collaborators to emeritus (Node.js GitHub Bot) #49264
  • [ab975233cc] - meta: mention nodejs/tsc when changing GH templates (Rafael Gonzaga) #49189
  • [ceaa5494de] - meta: add test/reporters to codeowners (Chemi Atlow) #49186
  • [de0a51b7cf] - net: improve performance of isIPv4 and isIPv6 (Uzlopak) #49568
  • [8d0913bf95] - net: use asserts in JS Socket Stream to catch races in future (Tim Perry) #49400
  • [2486836a7d] - net: fix crash due to simultaneous close/shutdown on JS Stream Sockets (Tim Perry) #49400
  • [7a808340cd] - node-api: fix compiler warning in node_api.h (Michael Graeb) #49103
  • [30f26a99f4] - permission: ensure to resolve path when calling mkdtemp (RafaelGSS) nodejs-private/node-private#440
  • [5051c75a5b] - policy: fix path to URL conversion (Antoine du Hamel) #49133
  • [173aed4757] - report: fix recent coverity warning (Michael Dawson) #48954
  • [d7ff78b442] - sea: generate code cache with deserialized isolate (Joyee Cheung) #49226
  • [022f1b70c1] - src: support multiple --env-file declarations (Yagiz Nizipli) #49542
  • [154b1c2115] - src: don't overwrite environment from .env file (Phil Nash) #49424
  • [dc4de1c69b] - src: modify code for empty string (pluris) #49336
  • [701c46f967] - src: remove unused PromiseWrap-related code (Joyee Cheung) #49335
  • [4a094dc7af] - src: rename IsAnyByteSource to IsAnyBufferSource (Tobias Nießen) #49346
  • [55d6649175] - src: support snapshot deserialization in RAIIIsolate (Joyee Cheung) #49226
  • [dc092864ef] - src: remove unused function GetName() in node_perf (Jungku Lee) #49244
  • [f2552a410e] - src: use ARES_SUCCESS instead of 0 (Jungku Lee) #49048
  • [4a9ae31519] - src: add a condition if the argument of DomainToUnicode is empty (Jungku Lee) #49097
  • [f460362cdf] - src: remove C++ WeakReference implementation (Joyee Cheung) #49053
  • [2a35383b3e] - src: use per-realm GetBindingData() wherever applicable (Joyee Cheung) #49007
  • [184bbddcf5] - src: add per-realm GetBindingData() method (Joyee Cheung) #49007
  • [e9946885f9] - src: serialize both BaseObject slots (Joyee Cheung) #48996
  • [ec51e25ed7] - src,permission: add multiple allow-fs-* flags (Carlos Espa) #49047
  • [8aac95de4b] - stream: improve tee perf by reduce ReflectConstruct usages (Raz Luvaton) #49546
  • [0eea7fd8fb] - stream: use Buffer.from when constructor is a Buffer (Matthew Aitken) #49250
  • [b961d9bd52] - stream: add highWaterMark for the map operator (Raz Luvaton) #49249
  • [ca1384166d] - test: fix warning for comment in embedtest (Jungku Lee) #49416
  • [2a35782809] - test: simplify test-crypto-dh-group-setters (Tobias Nießen) #49404
  • [6740f3c209] - test: verify dynamic import call with absolute path strings (Chengzhong Wu) #49275
  • [6ed47bd8fb] - test: reduce length in crypto keygen tests (Joyee Cheung) #49221
  • [4faa30c553] - test: split JWK async elliptic curve keygen tests (Joyee Cheung) #49221
  • [e04a2603d8] - test: split test-crypto-keygen.js (Joyee Cheung) #49221
  • [0d23c1d4ce] - test: rename test-crypto-modp1-error (Tobias Nießen) #49348
  • [48e41569e2] - test: migrate message source map tests from Python to JS (Yiyun Lei) #49238
  • [a11e64e09c] - test: fix compiler warning in NodeCryptoEnv (Tobias Nießen) #49206
  • [345543938f] - test: handle EUNATCH (Abdirahim Musse) #48050
  • [e391f4b197] - test: use tmpdir.resolve() (Livia Medeiros) #49136
  • [910378f93f] - test: reduce flakiness of test-esm-loader-hooks (Antoine du Hamel) #49248
  • [4a85f70462] - test: add spawnSyncAndExit() and spawnSyncAndExitWithoutError() (Joyee Cheung) #49200
  • [9610008b79] - test: make test-perf-hooks more robust and work with workers (Joyee Cheung) #49197
  • [dc8fff9a75] - test: use gcUntil() in test-v8-serialize-leak (Joyee Cheung) #49168
  • [ca9f801332] - test: make WeakReference tests robust (Joyee Cheung) #49053
  • [de103a4686] - test: add test for effect of UV_THREADPOOL_SIZE (Tobias Nießen) #49165
  • [47d24f144b] - test: use expectSyncExit{WithErrors} in snapshot tests (Joyee Cheung) #49020
  • [c441f5a097] - test: add expectSyncExitWithoutError() and expectSyncExit() utils (Joyee Cheung) #49020
  • [4d184b5251] - test: remove --no-warnings flag in test_runner fixtures (Raz Luvaton) #48989
  • [25e967a90b] - test: reorder test files fixtures for better understanding (Raz Luvaton) #48787
  • [fac56dbcc0] - test,benchmark: use tmpdir.fileURL() (Livia Medeiros) #49138
  • [36763fa532] - test_runner: preserve original property descriptor (Erick Wendel) #49433
  • [40e9fcdbea] - test_runner: add support for setImmediate (Erick Wendel) #49397
  • [23216f1935] - test_runner: report covered lines, functions and branches to reporters (Phil Nash) #49320
  • [283f2806b1] - test_runner: expose spec reporter as newable function (Chemi Atlow) #49184
  • [546ad5f770] - test_runner: reland run global after() hook earlier (Colin Ihrig) #49116
  • [efdc95fbc0] - (SEMVER-MINOR) test_runner: expose location of tests (Colin Ihrig) #48975
  • [4bc0a8fe99] - test_runner: fix global after not failing the tests (Raz Luvaton) #48913
  • [08738b2664] - test_runner: fix timeout in *Each hook failing further tests (Raz Luvaton) #48925
  • [c2f1830f66] - test_runner: cleanup test timeout abort listener (Raz Luvaton) #48915
  • [75333f38b2] - test_runner: fix global before not called when no global test exists (Raz Luvaton) #48877
  • [b28b85adf8] - tls: remove redundant code in onConnectSecure() (Deokjin Kim) #49457
  • [83fc4dccbc] - tls: refactor to use validateFunction (Deokjin Kim) #49422
  • [8949cc79dd] - tls: ensure TLS Sockets are closed if the underlying wrap closes (Tim Perry) #49327
  • [1df56e6f01] - tools: update eslint to 8.48.0 (Node.js GitHub Bot) #49343
  • [ef50ec5b57] - tools: update lint-md-dependencies (Node.js GitHub Bot) #49342
  • [9a8fb4fc34] - tools: remove v8_dump_build_config action (Cheng Zhao) #49301
  • [91b2d4314b] - tools: update lint-md-dependencies (Node.js GitHub Bot) #49253
  • [b51946ebdd] - tools: fix github reporter appended multiple times (Moshe Atlow) #49199
  • [ae40cb1612] - url: validate pathToFileURL(path) argument as string (LiviaMedeiros) #49161
  • [e787673dcf] - url: handle unicode hostname if empty (Yagiz Nizipli) #49396
  • [6ee74be87f] - vm: store MicrotaskQueue in ContextifyContext directly (Joyee Cheung) #48982
  • [0179c6dc8f] - worker: protect against user mutating well-known prototypes (Antoine du Hamel) #49270

Windows 32-bit Installer: https://nodejs.org/dist/v20.7.0/node-v20.7.0-x86.msi
Windows 64-bit Installer: https://nodejs.org/dist/v20.7.0/node-v20.7.0-x64.msi
Windows ARM 64-bit Installer: https://nodejs.org/dist/v20.7.0/node-v20.7.0-arm64.msi
Windows 32-bit Binary: https://nodejs.org/dist/v20.7.0/win-x86/node.exe
Windows 64-bit Binary: https://nodejs.org/dist/v20.7.0/win-x64/node.exe
Windows ARM 64-bit Binary: https://nodejs.org/dist/v20.7.0/win-arm64/node.exe
macOS 64-bit Installer: https://nodejs.org/dist/v20.7.0/node-v20.7.0.pkg
macOS Apple Silicon 64-bit Binary: https://nodejs.org/dist/v20.7.0/node-v20.7.0-darwin-arm64.tar.gz
macOS Intel 64-bit Binary: https://nodejs.org/dist/v20.7.0/node-v20.7.0-darwin-x64.tar.gz
Linux 64-bit Binary: https://nodejs.org/dist/v20.7.0/node-v20.7.0-linux-x64.tar.xz
Linux PPC LE 64-bit Binary: https://nodejs.org/dist/v20.7.0/node-v20.7.0-linux-ppc64le.tar.xz
Linux s390x 64-bit Binary: https://nodejs.org/dist/v20.7.0/node-v20.7.0-linux-s390x.tar.xz
AIX 64-bit Binary: https://nodejs.org/dist/v20.7.0/node-v20.7.0-aix-ppc64.tar.gz
ARMv7 32-bit Binary: https://nodejs.org/dist/v20.7.0/node-v20.7.0-linux-armv7l.tar.xz
ARMv8 64-bit Binary: https://nodejs.org/dist/v20.7.0/node-v20.7.0-linux-arm64.tar.xz
Source Code: https://nodejs.org/dist/v20.7.0/node-v20.7.0.tar.gz
Other release files: https://nodejs.org/dist/v20.7.0/
Documentation: https://nodejs.org/docs/v20.7.0/api/

SHASUMS

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

55851cc966ec46863c4089292203982b60db9d38ca5444fc7bde65ae0c6519f7  node-v20.7.0-aix-ppc64.tar.gz
9dfff77ac5d976b9ea34657627e2e120415114284685d9cb6d98b6f1836ca2d9  node-v20.7.0-arm64.msi
08aa09792f30a86e8904e334ba6d348ad73e926b5e441ed9abcdcbea651dc926  node-v20.7.0-darwin-arm64.tar.gz
829d24016e42da0f593df9f21f08c465a7650c724ed2d5825c5ea945c7bf7a64  node-v20.7.0-darwin-arm64.tar.xz
ceeba829f44e7573949f2ce2ad5def27f1d6daa55f2860bea82964851fae01bc  node-v20.7.0-darwin-x64.tar.gz
ece47b2fc7e715bbbb5a81a8190bfa9798fe42d2388aa2ea496d55bb58998e7a  node-v20.7.0-darwin-x64.tar.xz
ff305725acafef65c63be1490491572211c53d885397a2e61611fc2f26e8da3d  node-v20.7.0-headers.tar.gz
13354725d88b5e6f4380132d68d6d60e320e090bf042533cf66fec4ef425690e  node-v20.7.0-headers.tar.xz
98a1ad20c1e81870467a891b050db85deb06d912c8f286a303681876d2eea5f0  node-v20.7.0-linux-arm64.tar.gz
c97b51decb0f4a3e8e5bd8cbc6ff43ae4782f2b8b6e3c2b513b77b8f97fffcc5  node-v20.7.0-linux-arm64.tar.xz
9713fb1d0db62aba1afcc84630659eb99bfe92d396412cc0e339a5f6e955edeb  node-v20.7.0-linux-armv7l.tar.gz
4cec5c930e9a85bac3c6c0ddfcc08a475d754d6dca66b6bf319ce2ccf334c216  node-v20.7.0-linux-armv7l.tar.xz
5661c71b2c1430c282626eff1328550c327a9eb6fbef8976d333dde40a68e5be  node-v20.7.0-linux-ppc64le.tar.gz
21c5b774795bd368b9e67b8f1834ca573252a10e500da57226cfef35063b0f47  node-v20.7.0-linux-ppc64le.tar.xz
a53cdf019bfb32180442cd6cd710e7a13f4d7ea4d6e6b902f85d3f7362f45660  node-v20.7.0-linux-s390x.tar.gz
c2c015b941dddb56c5943057729497db2cf323f4cc4ef363bd4e0150fb5c8b37  node-v20.7.0-linux-s390x.tar.xz
034bbec28da7b729aea531000a56b37076e94e44aa5dfa346a1d1a89025915a8  node-v20.7.0-linux-x64.tar.gz
a4251c24c6bf6d3bdee4521ca294bc0897a6c466137e02caa2521af5d456f55e  node-v20.7.0-linux-x64.tar.xz
69f17930765208dad0c6518e3e59e1353a69dabb3843db983212463c59a7421f  node-v20.7.0.pkg
07b85b65f844dc29ac5038c11b6e34a0997f1744d1487de0ab9a94743e5c12ad  node-v20.7.0.tar.gz
3fcfdcd05c461517480596596674df85b35cfce597dd0ae33f5416fc4df12bea  node-v20.7.0.tar.xz
539b6eb02ec6f0354976623f0a166021fa744d96c7cb9c52fd885d0962d0e739  node-v20.7.0-win-arm64.7z
e424b3fab740291411a619351d0f8119b08d4d5ca9266864f9cc25d1cac36f38  node-v20.7.0-win-arm64.zip
b3e5cbf8e247c75f9ddd235d49cfe40f25dde65bdd0eec4cefbca2805d80376b  node-v20.7.0-win-x64.7z
2b1a117e63f0602bad1e9e31679932b64e9b130a96dc2feb0c367ca816c5a5cb  node-v20.7.0-win-x64.zip
d6a3c63a5ae71374c144a33c418ab96be497b08df0e9f51861a78127db03aeb5  node-v20.7.0-win-x86.7z
fba8b0e044ca41f2cda029552a517f01238ad5160f9ae2229d750042168e48f9  node-v20.7.0-win-x86.zip
a7df245847842a88a27360d6c39d2671056e148be637aa4d6ce980d2e97a6af0  node-v20.7.0-x64.msi
84a595328279a7c535de9a76ead4c899a79d06c306623b3d02bf8e54805cea78  node-v20.7.0-x86.msi
e1d9b7d8d64230037ef90ef2f75fc471ffbbad794a283095258bf7dcb52d97d9  win-arm64/node.exe
8d7afedea6c02b7741661394ee47a2cc9ddf590db86a365ed0b2f7e276420ba6  win-arm64/node.lib
f463f26c2d5f0a80787d4de3b866459fd2d8170cedacbe1c57ffd973a73498e4  win-arm64/node_pdb.7z
09dd4e8e645902363901ce953b5cc320cd6bc9adfe5a061a65dd782259982e1b  win-arm64/node_pdb.zip
7128b7a6e4eb4d5efc9ebd62f72bf76edc4e34effdccfb1c6b399638521495d1  win-x64/node.exe
25642cbb2248fc4b514384ad7af0ae4345c25952eaae8c46bebbcc5217b8a279  win-x64/node.lib
c6d0456de2323ca43454f54ea65c988aa91935259a5b8a119285215cd32ee708  win-x64/node_pdb.7z
5b60467c71343e0689c058a5cc58b14b97b2d6979eac13ac03edddc912efba5b  win-x64/node_pdb.zip
b309bf77214f5168175a9e965f60b77acb3086f9c0516a85e4a8f3266d0b2fc8  win-x86/node.exe
875c47dfc80dcf728665c37e21daced784a05d58538f90124f89829fc62c4966  win-x86/node.lib
8ba2903ef9238849bdd34e800efa967c790c7f844a9c195c07eb2d3a0a800d3b  win-x86/node_pdb.7z
8f68cac1cbe49bcd64416c8ad425368e292ab1ea34f233452f3645e4a3943849  win-x86/node_pdb.zip
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCAAdFiEEpgI1MPxTRh/skfmcBM0/L94HlXgFAmUIl24ACgkQBM0/L94H
lXgMdw/9Fy8WK0sGbcpOtqb4kU2ts8O2MbBCwJel2p/sP8pcw5kfBB3CsiKKBfW3
eQv/ucju6No+9p1Q7hsNu7rSE1DVgpzv89cQEgS0JEJfxm8d0Lx8xQboYkCPrPgg
erpyz/2ZEdgjnPKGmbp9pl59Ml/C0HtDFylzXwZh02D2M9h3vMkEfwXYGuDJTZ5d
4gEZkkaUkzkVK5YDHWgfKiHk1xhyvLvtxKbwDxDPY1reJ5ev5jGB6GTNAetDdzc8
1dllgMh5gy8WIwetfvmDr1e+DdCTIpxVnxNMyedGtobppadCPF44wyayKu0Nr1F5
1MSRx5ipc/4ilpjj6At4HepBxOt5PgsNlbdz+vUIgo227uN6WuV0De8ZuhvDKDmV
6dj6/EGfA+qxsYmZP8MbVKs0ewxzJtpN6hcrgP9MtjXHOF7gD7TU28sTeqkdQnPA
RUd1xruVjdpCEV4I332AGijChakpt+zLWZdOdk2bUMlsQYkGywGR+2uqpEUlStZ3
yC2iGe5u4WjRWTOvNrg3Aw7SyBdHIcCr7jJ5TJs3tsypSOuzWL+wso2e5kQoAt02
moUSMQmfvbErnKsknQ8j1kJzvRZn+F4IpDy7IDnLRPAYAsztUiiYq4mUVxOIAogo
qAg2ocwAb3AX1QFnV6rNw8eJd4K+2rmqSqtKhz16SZLwaeNUd+I=
=7AyS
-----END PGP SIGNATURE-----

Scroll to top