Releases: nodejs/node
2024-12-19, Version 23.5.0 (Current), @aduh95
Notable Changes
WebCryptoAPI Ed25519 and X25519 algorithms are now stable
Following the merge of Curve25519 into the
Web Cryptography API Editor's Draft the
Ed25519
and X25519
algorithm identifiers are now stable and will no longer
emit an ExperimentalWarning upon use.
Contributed by Filip Skokan in #56142.
On-thread hooks are back
This release introduces module.registerHooks()
for registering module loader
customization hooks that are run for all modules loaded by require()
, import
and functions returned by createRequire()
in the same thread, which makes them
easier for CJS monkey-patchers to migrate to.
import assert from 'node:assert';
import { registerHooks, createRequire } from 'node:module';
import { writeFileSync } from 'node:fs';
writeFileSync('./bar.js', 'export const id = 123;', 'utf8');
registerHooks({
resolve(specifier, context, nextResolve) {
const replaced = specifier.replace('foo', 'bar');
return nextResolve(replaced, context);
},
load(url, context, nextLoad) {
const result = nextLoad(url, context);
return {
...result,
source: result.source.toString().replace('123', '456'),
};
},
});
// Checks that it works with require.
const require = createRequire(import.meta.url);
const required = require('./foo.js'); // Redirected by resolve hook to bar.js
assert.strictEqual(required.id, 456); // Replaced by load hook to 456
// Checks that it works with import.
const imported = await import('./foo.js'); // Redirected by resolve hook to bar.js
assert.strictEqual(imported.id, 456); // Replaced by load hook to 456
This complements the module.register()
hooks - the new hooks fit better
internally and cover all corners in the module graph; whereas
module.register()
previously could not cover require()
while it was
on-thread, and still cannot cover createRequire()
after being moved
off-thread.
They are also run in the same thread as the modules being loaded and where the
hooks are registered, which means they are easier to debug (no more
console.log()
getting lost) and do not have the many deadlock issues haunting
the module.register()
hooks. The new API also takes functions directly so that
it's easier for intermediate loader packages to take user options from files
that the hooks can't be aware of, like many existing CJS monkey-patchers do.
Contributed by Joyee Cheung in #55698.
Other notable changes
- [
59cae91465
] - (SEMVER-MINOR) dgram: support blocklist in udp (theanarkh) #56087 - [
72f79b44ed
] - doc: stabilize util.styleText (Rafael Gonzaga) #56265 - [
b5a2c0777d
] - (SEMVER-MINOR) module: add prefix-only modules tomodule.builtinModules
(Jordan Harband) #56185 - [
9863d27566
] - (SEMVER-MINOR) module: only emit require(esm) warning under --trace-require-module (Joyee Cheung) #56194 - [
8e780bc5ae
] - (SEMVER-MINOR) module: use synchronous hooks for preparsing in import(cjs) (Joyee Cheung) #55698 - [
65bc8e847f
] - (SEMVER-MINOR) report: fix typos in report keys and bump the version (Yuan-Ming Hsu) #56068 - [
0ab36e1937
] - (SEMVER-MINOR) sqlite: aggregate constants in a single property (Edigleysson Silva (Edy)) #56213 - [
efcc5d90c5
] - (SEMVER-MINOR) src,lib: stabilize permission model (Rafael Gonzaga) #56201
Commits
- [
2314e4916e
] - assert: make Maps be partially compared in partialDeepStrictEqual (Giovanni Bucci) #56195 - [
cfbdff7b45
] - assert: make partialDeepStrictEqual work with ArrayBuffers (Giovanni Bucci) #56098 - [
f264dd6d20
] - buffer: document concat zero-fill (Duncan) #55562 - [
4831b87d83
] - build: set DESTCPU correctly for 'make binary' on loongarch64 (吴小白) #56271 - [
1497bb405e
] - build: fix missing fp16 dependency in d8 builds (Joyee Cheung) #56266 - [
445c8c7489
] - build: add major release action (Rafael Gonzaga) #56199 - [
f4faedfa69
] - build: fix C string encoding forPRODUCT_DIR_ABS
(Anna Henningsen) #56111 - [
6f49c8006c
] - build: use variable for simdutf path (Shelley Vohr) #56196 - [
fcaa2c82a6
] - build: fix GN build on macOS (Joyee Cheung) #56141 - [
08e5309f4f
] - Revert "build: avoid compiling with VS v17.12" (Gerhard Stöbich) #56151 - [
c2fb38cfdf
] - crypto: graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable (Filip Skokan) #56142 - [
8658833884
] - deps: update nghttp3 to 1.6.0 (Node.js GitHub Bot) #56258 - [
7c941d4610
] - deps: update simdutf to 5.6.4 (Node.js GitHub Bot) #56255 - [
4e9113eada
] - deps: update libuv to 1.49.2 (Luigi Pinca) #56224 - [
db6aba12e4
] - deps: update c-ares to v1.34.4 (Node.js GitHub Bot) #56256 - [
25bb462bc2
] - deps: define V8_PRESERVE_MOST as no-op on Windows (Stefan Stojanovic) #56238 - [
54308c51bb
] - deps: update sqlite to 3.47.2 (Node.js GitHub Bot) #56178 - [
59cae91465
] - (SEMVER-MINOR) dgram: support blocklist in udp (theanarkh) #56087 - [
52c18e605e
] - doc: fix color contrast issue in light mode (Rich Trott) #56272 - [
72f79b44ed
] - doc: stabilize util.styleText (Rafael Gonzaga) #56265 - [
0d08756d0c
] - doc: clarify util.aborted resource usage (Kunal Kumar) #55780 - [
f94f21080b
] - doc: add esm examples to node:repl (Alfredo González) #55432 - [
7a10ef88d9
] - doc: add esm examples to node:readline (Alfredo González) #55335 - [
cc7a7c391b
] - doc: fix 'which' to 'that' and add commas (Selveter Senitro) #56216 - [
c5b086250e
] - doc: fix winget config path (Alex Yang) #56233 - [
71c38a24d4
] - doc: add esm examples to node:tls (Alfredo González) #56229 - [
394fffbbde
] - doc: add esm examples to node:perf_hooks (Alfredo González) #55257 - [
7b2a6ee61e
] - doc:sea.getRawAsset(key)
always returns an ArrayBuffer (沈鸿飞) #56206 - [
8092dcf27e
] - doc: update announce documentation for releases (Rafael Gonzaga) #56200 - [
2974667815
] - doc: update blog link to /vulnerability (Rafael Gonzaga) #56198 - [
f3b3ff85e0
] - doc: call out import.meta is only supported in...
2024-12-10, Version 23.4.0 (Current), @aduh95 prepared by @targos
Notable Changes
Introducing experimental assert.partialDeepStrictEqual
Sometimes, when writing test, we want to validate that some specific properties
are present, and the mere presence of additional keys are not exactly relevant
for that specific test. For this use case, we can now use
assert.partialDeepStrictEqual
, which should be familiar to those already using
assert.deepStrictEqual
, with the main difference that it does not require all
properties in the actual
parameter to be present in the expected
parameter.
Here are a few examples of usage:
assert.partialDeepStrictEqual(
{ a: 1, b: 2, c: 3 },
{ a: 1, b: 2 },
);
assert.partialDeepStrictEqual(
[1, 2, 3, 4],
[2, 3],
);
assert.partialDeepStrictEqual(
{ a: { b: { c: 1, d: 2 } }, e: 3 },
{ a: { b: { c: 1 } } },
);
assert.partialDeepStrictEqual(
{ a: { b: { c: 1, d: 2 } }, e: 3 },
{ a: { b: { c: 1 } } },
);
assert.partialDeepStrictEqual(
new Set([{ a: 1 }, { b: 1 }]),
new Set([{ a: 1 }]),
);
assert.partialDeepStrictEqual(
{ a: new Set([{ a: 1 }, { b: 1 }]), b: new Map(), c: [1, 2, 3] },
{ a: new Set([{ a: 1 }]), c: [2] },
);
Contributed by Giovanni Bucci in #54630.
Implement --trace-env
and --trace-env-[js|native]-stack
This release introduces --trace-env
, --trace-env-js-stack
and --trace-env-native-stack
CLI options that print information about any access to environment variables done in the current
Node.js instance to stderr. Currently in the logs, only the names of the environment variables
being accessed are printed, while the values are not printed to avoid leaking sensitive
information. To print the stack trace of the access, use --trace-env-js-stack
and/or
--trace-env-native-stack
.
Contributed by Joyee Cheung in #55604.
Other notable changes
- [
59d6891872
] - doc: add LJHarb to collaborators (Jordan Harband) #56132 - [
565b04a7be
] - (SEMVER-MINOR) net: addBlockList.isBlockList(value)
(James M Snell) #56078 - [
c9698ed6a4
] - (SEMVER-MINOR) net: supportblockList
innet.connect
(theanarkh) #56075 - [
30d604180d
] - (SEMVER-MINOR) net: supportblockList
innet.Server
(theanarkh) #56079 - [
9fba5e1df1
] - (SEMVER-MINOR) net: addSocketAddress.parse
(James M Snell) #56076 - [
4cdb03201e
] - (SEMVER-MINOR) process: deprecatefeatures.{ipv6,uv}
andfeatures.tls_*
(René) #55545 - [
efb9f05f59
] - (SEMVER-MINOR) sqlite: unflagnode:sqlite
module (Colin Ihrig) #55890 - [
d777d4a52d
] - (SEMVER-MINOR) sqlite: addStatementSync.prototype.iterate
method (tpoisseau) #54213
Commits
- [
5b0ce376a2
] - assert: optimize partial comparison of twoSet
s (Antoine du Hamel) #55970 - [
a4f57f0293
] - (SEMVER-MINOR) assert: add partialDeepStrictEqual (Giovanni Bucci) #54630 - [
1b81a7d003
] - build: allow overriding clang usage (Shelley Vohr) #56016 - [
39c901307f
] - build: remove defaults for create-release-proposal (Rafael Gonzaga) #56042 - [
7133c0459f
] - build: avoid compiling with VS v17.12 (Stefan Stojanovic) #55930 - [
ce53f1689f
] - build: set node_arch to target_cpu in GN (Shelley Vohr) #55967 - [
2023b09d27
] - build: add create release proposal action (Rafael Gonzaga) #55690 - [
26ec99634c
] - build: use variable for crypto dep path (Shelley Vohr) #55928 - [
f48e289580
] - build: fix GN build for sqlite (Cheng) #55912 - [
fffabca6b8
] - build: compile bundled simdutf conditionally (Jakub Jirutka) #55886 - [
d8eb83c5c5
] - build: compile bundled simdjson conditionally (Jakub Jirutka) #55886 - [
83e02dc482
] - build: compile bundled ada conditionally (Jakub Jirutka) #55886 - [
816d37a187
] - (SEMVER-MINOR) cli: implement --trace-env and --trace-env-[js|native]-stack (Joyee Cheung) #55604 - [
53c0f2f186
] - crypto: ensure CryptoKey usages and algorithm are cached objects (Filip Skokan) #56108 - [
93d36bf1c8
] - crypto: allow non-multiple of 8 in SubtleCrypto.deriveBits (Filip Skokan) #55296 - [
8680b8030c
] - deps: update ngtcp2 to 1.9.1 (Node.js GitHub Bot) #56095 - [
78a2a6ca1e
] - deps: upgrade npm to 10.9.2 (npm team) #56135 - [
52dfe5af4b
] - deps: update sqlite to 3.47.1 (Node.js GitHub Bot) #56094 - [
3852b5c8d1
] - deps: update zlib to 1.3.0.1-motley-82a5fec (Node.js GitHub Bot) #55980 - [
f99f95f62f
] - deps: update corepack to 0.30.0 (Node.js GitHub Bot) #55977 - [
96e846de89
] - deps: update ngtcp2 to 1.9.0 (Node.js GitHub Bot) #55975 - [
d180a8aedb
] - deps: update simdutf to 5.6.3 (Node.js GitHub Bot) #55973 - [
288416a764
] - deps: upgrade npm to 10.9.1 (npm team) #55951 - [
cf3f7ac512
] - deps: update zlib to 1.3.0.1-motley-7e2e4d7 (Node.js GitHub Bot) #54432 - [
7768b3d054
] - deps: update simdjson to 3.10.1 (Node.js GitHub Bot) #54678 - [
9c6103833b
] - deps: update simdutf to 5.6.2 (Node.js GitHub Bot) #55889 - [
7b133d6220
] - dgram: check udp buffer size to avoid fd leak (theanarkh) #56084 - [
e4529b8179
] - doc: add report version and history section (Chengzhong Wu) #56130 - [
718625a03a
] - doc: mention-a
flag for the release script (Ruy Adorno) #56124 - [
59d6891872
] - doc: add LJHarb to collaborators (Jordan Harband) #56132 - [
d7ed32404a
] - doc: add create-release-action to process (Rafael Gonzaga) #55993 - [
3b4ef93371
] - doc: rename file to advocacy-ambassador-program.md (Tobias Nießen) #56046 - [
59e4087d5e
] - doc: add added tag and fix typo sqlite.md (Bart Louwers) #56012 - [
a1b26608ae
] - doc: remove unused import from sample code (Blended Bram) #55570 - [[
498f44ad73
]...
2024-12-03, Version 22.12.0 'Jod' (LTS), @ruyadorno
Notable Changes
require(esm) is now enabled by default
Support for loading native ES modules using require() had been available on v20.x and v22.x under the command line flag --experimental-require-module, and available by default on v23.x. In this release, it is now no longer behind a flag on v22.x.
This feature is still experimental, and we are looking for user feedback to make more final tweaks before fully stabilizing it. For this reason, on v22.x, when the Node.js instance encounters a native ES module in require() for the first time, it will emit an experimental warning unless require()
comes from a path that contains node_modules
. If there happens to be any regressions caused by this feature, users can report it to the Node.js issue tracker. Meanwhile this feature can also be disabled using --no-experimental-require-module
as a workaround.
With this feature enabled, Node.js will no longer throw ERR_REQUIRE_ESM
if require()
is used to load a ES module. It can, however, throw ERR_REQUIRE_ASYNC_MODULE
if the ES module being loaded or its dependencies contain top-level await
. When the ES module is loaded successfully by require()
, the returned object will either be a ES module namespace object similar to what's returned by import()
, or what gets exported as "module.exports"
in the ES module.
Users can check process.features.require_module
to see whether require(esm)
is enabled in the current Node.js instance. For packages, the "module-sync"
exports condition can be used as a way to detect require(esm)
support in the current Node.js instance and allow both require()
and import
to load the same native ES module. See the documentation for more details about this feature.
Contributed by Joyee Cheung in #55085
Added resizable ArrayBuffer
support in Buffer
When a Buffer
is created using a resizable ArrayBuffer
, the Buffer
length will now correctly change as the underlying ArrayBuffer
size is changed.
const ab = new ArrayBuffer(10, { maxByteLength: 20 });
const buffer = Buffer.from(ab);
console.log(buffer.byteLength); 10
ab.resize(15);
console.log(buffer.byteLength); 15
ab.resize(5);
console.log(buffer.byteLength); 5
Contributed by James Snell in #55377
Update root certificates to NSS 3.104
This is the version of NSS that shipped in Firefox 131.0 on 2024-10-01.
Certificates added:
- FIRMAPROFESIONAL CA ROOT-A WEB
- TWCA CYBER Root CA
- SecureSign Root CA12
- SecureSign Root CA14
- SecureSign Root CA15
Contributed by Richard Lau in #55681
Other Notable Changes
- [
4920869935
] - (SEMVER-MINOR) assert: make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862 - [
ccffd3b819
] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732 - [
acc6806900
] - doc: add jazelly to collaborators (Jason Zhang) #55531 - [
88d91e8bc2
] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333 - [
98bfc7dce5
] - (SEMVER-MINOR) http: add diagnostic channelhttp.client.request.created
(Marco Ippolito) #55586 - [
337f61fb25
] - (SEMVER-MINOR) lib: add UV_UDP_REUSEPORT for udp (theanarkh) #55403 - [
1628c48ad6
] - (SEMVER-MINOR) net: add UV_TCP_REUSEPORT for tcp (theanarkh) #55408 - [
457e73f4c9
] - (SEMVER-MINOR) sqlite: add support for SQLite Session Extension (Bart Louwers) #54181
Commits
- [
f6885e1c68
] - assert: fix the string length check for printing the simple diff (Giovanni Bucci) #55474 - [
907484f04d
] - assert: fix deepEqual always return true on URL (Xuguang Mei) #50853 - [
301844e249
] - assert: differentiate cases wherecause
isundefined
or missing (Antoine du Hamel) #55738 - [
89ccd3e3f4
] - assert: fixdeepStrictEqual
on errors whencause
is not undefined (Edigleysson Silva (Edy)) #55406 - [
4920869935
] - (SEMVER-MINOR) assert: make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862 - [
c67aec368e
] - benchmark: addtest-reporters
(Aviv Keller) #55757 - [
49774cc2c0
] - benchmark: addtest_runner/mock-fn
(Aviv Keller) #55771 - [
4caaeb47b2
] - benchmark: add nodeTiming.uvmetricsinfo bench (RafaelGSS) #55614 - [
cac58564a1
] - benchmark: add --runs support to run.js (Rafael Gonzaga) #55158 - [
5c3ee886fc
] - benchmark: adjust byte size for buffer-copy (Rafael Gonzaga) #55295 - [
6023e1bdb2
] - (SEMVER-MINOR) buffer: make Buffer work with resizable ArrayBuffer (James M Snell) #55377 - [
a6c00c2204
] - build: add create release proposal action (Rafael Gonzaga) #55690 - [
b4e413933b
] - build: implement node_use_amaro flag in GN build (Cheng) #55798 - [
d1db202d4a
] - build: apply cpp linting and formatting to ncrypto (Aviv Keller) #55362 - [
8c670496da
] - build: use rclone instead of aws CLI (Michaël Zasso) #55617 - [
827e2065bd
] - build: stop pre-compilinglint-md
(Aviv Keller) #55266 - [
c3ca978d9c
] - build: fix building with system icu 76 (Michael Cho) #55563 - [
23e3287bbe
] - build: fix GN arg used in generate_config_gypi.py (Shelley Vohr) #55530 - [
2b561abb0d
] - build: fix GN build for sqlite and nghttp2 (Shelley Vohr) #55529 - [
7008f29d79
] - build: fix GN build for cares/uv deps (Cheng) #55477 - [
6ee94a394f
] - build: fix uninstall script for AIX 7.1 (Cloorc) #55438 - [
edbbd4a374
] - build: conditionally compile bundled sqlite (Richard Lau) #55409 - [
3d8e3a657c
] - build: tidy up cares.gyp (Richard Lau) #55445 - [
f0c12e8fcb
] - build: synchronize list of c-ares source files (Richard Lau) #55445 - [
8daa8a62f8
] - build: fix path concatenation (Mohammed Keyvanzadeh) #55387 - [
12faf0466e
] - build: fix make errors that occur in Makefile (minkyu_kim) #55287 - [
a21be0294d
] - build,win: enable pch for clang-cl (Stefan Stojanovic) #55249 - [
7ed058cd00
] - cli: add--heap-prof
flag available toNODE_OPTIONS
(Juan José) #54259 - [
c26b1bfe6a
] - crypto: allow length=0 for HKDF and PBKDF2 in SubtleCrypto.deriveBit...
2024-11-20, Version 23.3.0 (Current), @RafaelGSS
Notable Changes
- [
5767b76c30
] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732 - [
ccb69bb8d5
] - (SEMVER-MINOR) src: add cli option to preserve env vars on dr (Rafael Gonzaga) #55697 - [
d4e792643d
] - (SEMVER-MINOR) util: add sourcemap support to getCallSites (Marco Ippolito) #55589 - [
00e092bb4b
] - (SEMVER-MINOR) util: fix util.getCallSites plurality (Chengzhong Wu) #55626
Commits
- [
9862912d41
] - assert: differentiate cases wherecause
isundefined
or missing (Antoine du Hamel) #55738 - [
32e5bbca95
] - benchmark: addtest-reporters
(Aviv Keller) #55757 - [
c2103354e6
] - benchmark: addtest_runner/mock-fn
(Aviv Keller) #55771 - [
472d55e3e4
] - build: implement node_use_amaro flag in GN build (Cheng) #55798 - [
77735674eb
] - build: use glob for dependencies of out/Makefile (Richard Lau) #55789 - [
bba7323d51
] - build: apply cpp linting and formatting to ncrypto (Aviv Keller) #55362 - [
e0c222525e
] - crypto: allow length=0 for HKDF and PBKDF2 in SubtleCrypto.deriveBits (Filip Skokan) #55866 - [
cad557ec53
] - deps: update simdutf to 5.6.1 (Node.js GitHub Bot) #55850 - [
dc8aca3692
] - deps: update undici to 6.21.0 (Node.js GitHub Bot) #55851 - [
e0db9ede4f
] - deps: update c-ares to v1.34.3 (Node.js GitHub Bot) #55803 - [
e147935144
] - deps: update icu to 76.1 (Node.js GitHub Bot) #55551 - [
e0ef65b8d5
] - doc: remove non-working example (Antoine du Hamel) #55856 - [
ec953bca09
] - doc: addnode:sqlite
to mandatorynode:
prefix list (翠 / green) #55846 - [
1b863b96d5
] - doc: add-S
flag release preparation example (Antoine du Hamel) #55836 - [
a8311847d1
] - doc: clarify UV_THREADPOOL_SIZE env var usage (Preveen P) #55832 - [
787e51e603
] - doc: add notable-change mention to sec release (Rafael Gonzaga) #55830 - [
e56265cc18
] - doc: fix history info forURL.prototype.toJSON
(Antoine du Hamel) #55818 - [
c5afdaf5cb
] - doc: correct max-semi-space-size statement (Joe Bowbeer) #55812 - [
65ffb2cae3
] - doc: update unflag info ofimport.meta.resolve
(skyclouds2001) #55810 - [
9aeb671677
] - doc: run license-builder (github-actions[bot]) #55813 - [
df5ea1a5b3
] - doc: clarify triager role (Gireesh Punathil) #55775 - [
aa12de0f03
] - doc: sort --report-exclude alphabetically (Rafael Gonzaga) #55788 - [
8576ca9897
] - doc: clarify removal of experimental API does not require a deprecation (Antoine du Hamel) #55746 - [
5767b76c30
] - doc: enforce strict policy to semver-major releases (Rafael Gonzaga) #55732 - [
1f2fcf1dc8
] - doc: add history entries for JSON modules stabilization (Antoine du Hamel) #55855 - [
83ba688d8f
] - esm: fix import.meta.resolve crash (Marco Ippolito) #55777 - [
bdb6d12e7a
] - events: add hasEventListener util for validate (Sunghoon) #55230 - [
d41cb49516
] - fs: prevent unwanteddependencyOwners
removal (Carlos Espa) #55565 - [
db0d648d8f
] - fs: fix bufferSize option for opendir recursive (Ethan Arrowood) #55744 - [
693fda0802
] - lib: remove unused filefetch_module
(Michaël Zasso) #55880 - [
156873303a
] - lib: prefer symbol to number in webidltype
function (Antoine du Hamel) #55737 - [
cfe28b161a
] - lib: remove unnecessary optional chaining (Gürgün Dayıoğlu) #55728 - [
bbb8f5914d
] - lib: usePromise.withResolvers()
in timers (Yagiz Nizipli) #55720 - [
11e1bdd409
] - module: tidy code string concat → string templates (Jacob Smith) #55820 - [
9c99255468
] - permission: ignore internalModuleStat on module loading (Rafael Gonzaga) #55797 - [
5a437c446f
] - report: fix network queries in getReport libuv with exclude-network (Adrien Foulon) #55602 - [
bcbba723de
] - sqlite: add support for SQLite Session Extension (Bart Louwers) #54181 - [
49d55228de
] - src: use env strings to create sqlite results (Michaël Zasso) #55785 - [
58d7a6ec10
] - Revert "src: migrateString::Value
toString::ValueView
" (Michaël Zasso) #55828 - [
16786a6df8
] - src: improvenode:os
userInfo performance (Yagiz Nizipli) #55719 - [
ccb69bb8d5
] - (SEMVER-MINOR) src: add cli option to preserve env vars on dr (Rafael Gonzaga) #55697 - [
770670c52c
] - test: fix permission fixtures lint (Rafael Gonzaga) #55819 - [
84c47478d0
] - test: improve test coverage for child process message sending (Juan José) #55710 - [
e1f54e2527
] - test: ensure that test priority is not higher than current priority (Livia Medeiros) #55739 - [
e1b42e7637
] - test: add buffer to fs_permission tests (Rafael Gonzaga) #55734 - [
d1ad43e9ae
] - test: improve test coverage forServerResponse
(Juan José) #55711 - [
034505e037
] - test_runner: error on mocking an already mocked date (Aviv Keller) #55858 - [
44324aa7e9
] - tools: bump @eslint/plugin-kit from 0.2.0 to 0.2....
2024-11-20, Version 20.18.1 'Iron' (LTS), @marco-ippolito
Notable Changes
- [
7a8992b2d6
] - doc: add abmusse to collaborators (Abdirahim Musse) #55086
Commits
- [
085c3441fe
] - assert: show the diff when deep comparing data with a custom message (Giovanni) #54759 - [
01f0b0e7b4
] - benchmark: adjust config for deepEqual object (Rafael Gonzaga) #55254 - [
a45537269b
] - benchmark: rewrite detect-esm-syntax benchmark (Joyee Cheung) #55238 - [
1a0d8ef64f
] - benchmark: add no-warnings to process.has bench (Rafael Gonzaga) #55159 - [
2be5d611ce
] - benchmark: create benchmark for typescript (Marco Ippolito) #54904 - [
a2aa4fa477
] - benchmark: include ascii to fs/readfile (Rafael Gonzaga) #54988 - [
09849105fe
] - benchmark: add dotenv benchmark (Aviv Keller) #54278 - [
6b3c24dbad
] - buffer: fix out of range for toString (Jason Zhang) #54553 - [
f25a5b6dc4
] - build: use rclone instead of aws CLI (Michaël Zasso) #55617 - [
0bbeb605de
] - build: fix notify-on-review-wanted action (Rafael Gonzaga) #55304 - [
5b35836732
] - build: include.nycrc
in coverage workflows (Wuli Zuo) #55210 - [
f38d1e90e0
] - build: notify via slack when review-wanted (Rafael Gonzaga) #55102 - [
0b985ec4bb
] - build: remove -v flag to reduce noise (iwuliz) #55025 - [
09f75b27a1
] - build: display free disk space after build in the test-macOS workflow (iwuliz) #55025 - [
f25760c4a2
] - build: add the option to generate compile_commands.json in vcbuild.bat (Segev Finer) #52279 - [
746e78c4f3
] - Revert "build: upgrade clang-format to v18" (Chengzhong Wu) #54994 - [
67834ee646
] - build: printRunning XYZ linter...
for py and yml (Aviv Keller) #54386 - [
ae34e276a2
] - build: pin doc workflow to Node.js 20 (Richard Lau) #55755 - [
d0e871a706
] - build,win: add winget config to set up env (Hüseyin Açacak) #54729 - [
93ac799b6b
] - cli: fix spacing for port range error (Aviv Keller) #54495 - [
3ba2e7bf97
] - Revert "console: colorize console error and warn" (Aviv Keller) #54677 - [
2f678ea53b
] - crypto: ensure invalid SubtleCrypto JWK data import results in DataError (Filip Skokan) #55041 - [
5d28d98542
] - deps: update undici to 6.20.0 (Node.js GitHub Bot) #55329 - [
0c7f2fc421
] - deps: update archs files for openssl-3.0.15+quic1 (Node.js GitHub Bot) #55184 - [
da15e7edf5
] - deps: upgrade openssl sources to quictls/openssl-3.0.15+quic1 (Node.js GitHub Bot) #55184 - [
381f1f9d08
] - deps: update archs files for openssl-3.0.14+quic1 (Node.js GitHub Bot) #54336 - [
48d643f78a
] - deps: upgrade openssl sources to quictls/openssl-3.0.14+quic1 (Node.js GitHub Bot) #54336 - [
7b1796803b
] - deps: update timezone to 2024b (Node.js GitHub Bot) #55056 - [
8f1956c588
] - deps: update acorn-walk to 8.3.4 (Node.js GitHub Bot) #54950 - [
20501a7350
] - deps: update corepack to 0.29.4 (Node.js GitHub Bot) #54845 - [
0f81eafecc
] - doc: fix Markdown linter (Antoine du Hamel) #55344 - [
df713f0a98
] - Revert "doc: update test context.assert" (Antoine du Hamel) #55344 - [
fd6fc61d2c
] - doc: add pmarchini to collaborators (Pietro Marchini) #55331 - [
b963db9ee2
] - doc: fixevents.once()
example usingAbortSignal
(Ivo Janssen) #55144 - [
50b13bfb12
] - doc: add onboarding details for ambassador program (Marco Ippolito) #55284 - [
27564b7811
] - doc: fix initial default value of autoSelectFamily (Ihor Rohovets) #55245 - [
9e7be23aa5
] - doc: tweak onboarding instructions (Michael Dawson) #55212 - [
f412a029c3
] - doc: update test context.assert (Pietro Marchini) #55186 - [
2f7828debb
] - doc: fix unordered error anchors (Antoine du Hamel) #55242 - [
d08e4c235b
] - doc: mention addons to experimental permission (Rafael Gonzaga) #55166 - [
d65c2458dc
] - doc: use correct dash in stability status (Antoine du Hamel) #55200 - [
d9839c16cf
] - doc: fix link intest/README.md
(Livia Medeiros) #55165 - [
1ad659afa4
] - doc: add esm examples to node:net (Alfredo González) #55134 - [
81ad69d50f
] - doc: move the YAML changes element (sendoru) #55112 - [
7a51a161be
] - doc: fix the require resolve algorithm inmodules.md
(chirsz) #55117 - [
80edcdf899
] - doc: update style guide (Aviv Keller) #53223 - [
388c754dd2
] - doc: add missing:
torun()
'sglobPatterns
(Aviv Keller) #55135 - [
94302b6a76
] - doc: add abmusse to collaborators (Abdirahim Musse) #55086 - [
27ff2da964
] - doc: add note about--expose-internals
(Aviv Keller) #52861 - [
df6dc753b7
] - doc: removeparseREPLKeyword
from REPL documentation (Aviv Keller) #54749 - [
4baa5c4d10
] - doc: change backporting guide with updated info (Aviv Keller) #53746 - [
9947fc112f
] - doc: add missing definitio...
2024-11-12, Version 18.20.5 'Hydrogen' (LTS), @aduh95
Notable Changes
- [
ac37e554a5
] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333
Commits
- [
c2e6a8f215
] - benchmark: fix napi/ref addon (Michaël Zasso) #53233 - [
4c2e07aaac
] - build: pin doc workflow to Node.js 20 (Richard Lau) #55755 - [
6ba4ebd060
] - build: fix build with Python 3.12 (Luigi Pinca) #50582 - [
c50f01399e
] - crypto: ensure invalid SubtleCrypto JWK data import results in DataError (Filip Skokan) #55041 - [
5c46782137
] - crypto: make deriveBits length parameter optional and nullable (Filip Skokan) #53601 - [
6e7274fa53
] - crypto: reject dh,x25519,x448 in {Sign,Verify}Final (Huáng Jùnliàng) #53774 - [
d2442044db
] - crypto: reject Ed25519/Ed448 in Sign/Verify prototypes (Filip Skokan) #52340 - [
93670de499
] - deps: upgrade npm to 10.8.2 (npm team) #53799 - [
8531c95587
] - deps: upgrade npm to 10.8.1 (npm team) #53207 - [
fd9933ea0f
] - deps: upgrade npm to 10.8.0 (npm team) #53014 - [
03852495d7
] - deps: update simdutf to 5.6.0 (Node.js GitHub Bot) #55379 - [
3597be4146
] - deps: update simdutf to 5.5.0 (Node.js GitHub Bot) #54434 - [
52d2c03738
] - deps: update simdutf to 5.3.4 (Node.js GitHub Bot) #54312 - [
dd882ac483
] - deps: update simdutf to 5.3.1 (Node.js GitHub Bot) #54196 - [
5fb8e1b428
] - deps: update simdutf to 5.3.0 (Node.js GitHub Bot) #53837 - [
c952fd886d
] - deps: update simdutf to 5.2.8 (Node.js GitHub Bot) #52727 - [
a1ae050ed5
] - deps: update simdutf to 5.2.6 (Node.js GitHub Bot) #52727 - [
96ec48da7f
] - deps: update brotli to 1.1.0 (Node.js GitHub Bot) #50804 - [
11242bcfb4
] - deps: update zlib to 1.3.0.1-motley-71660e1 (Node.js GitHub Bot) #53464 - [
64f98a9869
] - deps: update zlib to 1.3.0.1-motley-c2469fd (Node.js GitHub Bot) #53464 - [
4b815550e0
] - deps: update zlib to 1.3.0.1-motley-68e57e6 (Node.js GitHub Bot) #53464 - [
f6b2f68ce7
] - deps: update zlib to 1.3.0.1-motley-8b7eff8 (Node.js GitHub Bot) #53464 - [
e151ebef86
] - deps: update zlib to 1.3.0.1-motley-e432200 (Node.js GitHub Bot) #53464 - [
637a306e02
] - deps: update zlib to 1.3.0.1-motley-887bb57 (Node.js GitHub Bot) #53464 - [
569a739569
] - deps: update zlib to 1.3.0.1-motley-209717d (Node.js GitHub Bot) #53156 - [
033f1e2ba5
] - deps: update zlib to 1.3.0.1-motley-4f653ff (Node.js GitHub Bot) #53052 - [
aaa857fc01
] - deps: update ada to 2.8.0 (Node.js GitHub Bot) #53254 - [
d577321877
] - deps: update acorn to 8.13.0 (Node.js GitHub Bot) #55558 - [
55b3c8a41f
] - deps: update acorn-walk to 8.3.4 (Node.js GitHub Bot) #54950 - [
50a9456f1e
] - deps: update acorn-walk to 8.3.3 (Node.js GitHub Bot) #53466 - [
f56cfe776b
] - deps: update acorn to 8.12.1 (Node.js GitHub Bot) #53465 - [
fce3ab686d
] - deps: update archs files for openssl-3.0.15+quic1 (Node.js GitHub Bot) #55184 - [
46c782486e
] - deps: upgrade openssl sources to quictls/openssl-3.0.15+quic1 (Node.js GitHub Bot) #55184 - [
4a18581dc3
] - deps: update corepack to 0.29.4 (Node.js GitHub Bot) #54845 - [
67e98831ab
] - deps: update archs files for openssl-3.0.14+quic1 (Node.js GitHub Bot) #54336 - [
c60c6630af
] - deps: upgrade openssl sources to quictls/openssl-3.0.14+quic1 (Node.js GitHub Bot) #54336 - [
935a506377
] - deps: update corepack to 0.29.3 (Node.js GitHub Bot) #54072 - [
dbdfdd0226
] - deps: update corepack to 0.29.2 (Node.js GitHub Bot) #53838 - [
395ee44608
] - deps: update corepack to 0.28.2 (Node.js GitHub Bot) #53253 - [
6ba8bc0618
] - deps: update c-ares to 1.29.0 (Node.js GitHub Bot) #53155 - [
81c3260cd2
] - deps: update corepack to 0.28.1 (Node.js GitHub Bot) #52946 - [
e4739e9aa6
] - doc: only apply content-visibility on all.html (Filip Skokan) #53510 - [
4d2ac5d98f
] - doc: move release key for Myles Borins (Richard Lau) #54059 - [
1c4decc998
] - doc: add release key for aduh95 (Antoine du Hamel) #55349 - [
a4f6f0918f
] - doc: add names next to release key bash commands (Aviv Keller) #52878 - [
c679348f83
] - errors: usedetermineSpecificType
in more error messages (Antoine du Hamel) #49580 - [
3059262185
] - esm: fix broken assertion inlegacyMainResolve
(Antoine du Hamel) #55708 - [
ac37e554a5
] - esm: mark import attributes and JSON module as stable (Nicolò Ribaudo) #55333 - [
84b0ead758
] - esm: fix hook name in error message (Bruce MacNaughton) #50466 - [
0092358d00
] - http: handle multi-value content-disposition header (Arsalan Ahmad) #50977 - [
d814fe935c
] - src: account for OpenSSL unexpected version (Shelley Vohr) #54038 - [
6615fe5db1
] - src: fix dynamically linked OpenSSL version (Richard Lau) #53456 - [[
d6114cb2e2
](https://github.com/nodej...
2024-11-11, Version 23.2.0 (Current), @aduh95
Notable Changes
Update root certificates to NSS 3.104
This is the version of NSS that shipped in Firefox 131.0 on 2024-10-01.
Certificates added:
- FIRMAPROFESIONAL CA ROOT-A WEB
- TWCA CYBER Root CA
- SecureSign Root CA12
- SecureSign Root CA14
- SecureSign Root CA15
Other notable changes
- [
fa61dced44
] - doc: move typescript support to active development (Marco Ippolito) #55536 - [
9dcca5441b
] - doc: add jazelly to collaborators (Jason Zhang) #55531 - [
f628fc43cb
] - (SEMVER-MINOR) fs: makedirent.path
writable (Antoine du Hamel) #55547 - [
25b1422337
] - (SEMVER-MINOR) http: add diagnostic channelhttp.client.request.created
(Marco Ippolito) #55586 - [
adda37f00c
] - (SEMVER-MINOR) module: addfindPackageJSON
util (Jacob Smith) #55412 - [
69dd1e13c3
] - (SEMVER-MINOR) module: addmodule.stripTypeScriptTypes
(Marco Ippolito) #55282
Commits
- [
9dbb255efb
] - assert: fixdeepStrictEqual
on errors whencause
is not undefined (Edigleysson Silva (Edy)) #55406 - [
7af76ef0b3
] - assert: fix the string length check for printing the simple diff (Giovanni Bucci) #55474 - [
34483a299b
] - benchmark: add nodeTiming.uvmetricsinfo bench (RafaelGSS) #55614 - [
b79e4835ab
] - build: use rclone instead of aws CLI (Michaël Zasso) #55617 - [
7ab1f46b8a
] - build: stop pre-compilinglint-md
(Aviv Keller) #55266 - [
4887214e23
] - build: fix building with system icu 76 (Michael Cho) #55563 - [
f8df27aa5a
] - build: fix GN arg used in generate_config_gypi.py (Shelley Vohr) #55530 - [
bb78904548
] - build: fix GN build for sqlite and nghttp2 (Shelley Vohr) #55529 - [
535f1b0d4c
] - crypto: update root certificates to NSS 3.104 (Richard Lau) #55681 - [
9b351b0749
] - crypto: fixRSA_PKCS1_PADDING
error message (Richard Lau) #55629 - [
4b192daac0
] - deps: update acorn to 8.14.0 (Node.js GitHub Bot) #55699 - [
dfb764cbc6
] - deps: update sqlite to 3.47.0 (Node.js GitHub Bot) #55557 - [
3477492588
] - deps: update amaro to 0.2.0 (Node.js GitHub Bot) #55601 - [
3a1d490535
] - deps: update nghttp2 to 1.64.0 (Node.js GitHub Bot) #55559 - [
50552fdc92
] - deps: update acorn to 8.13.0 (Node.js GitHub Bot) #55558 - [
1b82013f06
] - deps: update undici to 6.20.1 (Node.js GitHub Bot) #55503 - [
09060045b1
] - dns: stop using deprecatedares_query
(Aviv Keller) #55430 - [
2d0914f337
] - doc: consolidate history table ofCustomEvent
(Edigleysson Silva) #55758 - [
cbe09b579f
] - doc: add path aliases typescript doc (Carlos Espa) #55766 - [
89aa83842a
] - doc: add esm example inpath.md
(Aviv Keller) #55745 - [
ee12431298
] - doc: consistent use of word child process (Gireesh Punathil) #55654 - [
20cb52d1d8
] - doc: clarity to available addon options (Preveen P) #55715 - [
bffbaa13a2
] - doc: update--max-semi-space-size
description (Joe Bowbeer) #55495 - [
505ff199b6
] - doc: brokenPerformanceObserver
code sample (Dom Harrington) #54227 - [
b8ca9d89f4
] - doc: add write flag when open file as the demo code's intention (robberfree) #54626 - [
6662752b62
] - doc: add a note on console stream behavior (Gireesh Punathil) #55616 - [
9743fa44ed
] - doc: remove mention of ECDH-ES in crypto.diffieHellman (Filip Skokan) #55611 - [
5de2567644
] - doc: improve c++ embedder API doc (Gireesh Punathil) #55597 - [
f355054ec7
] - doc: capitalize "MIT License" (Aviv Keller) #55575 - [
fa61dced44
] - doc: move typescript support to active development (Marco Ippolito) #55536 - [
f77bf65059
] - doc: add suggested tsconfig for type stripping (Marco Ippolito) #55534 - [
f00ad27132
] - doc: add esm examples to node:string_decoder (Alfredo González) #55507 - [
9dcca5441b
] - doc: add jazelly to collaborators (Jason Zhang) #55531 - [
f628fc43cb
] - (SEMVER-MINOR) fs: makedirent.path
writable (Antoine du Hamel) #55547 - [
dd9b6833c7
] - Revert "fs,win: fix bug in paths with trailing slashes" (Rod Vagg) #55527 - [
8d0526f1f4
] - http: add diagnostic channelhttp.server.response.created
(Marco Ippolito) #55622 - [
25b1422337
] - (SEMVER-MINOR) http: add diagnostic channelhttp.client.request.created
(Marco Ippolito) #55586 - [
f92f20b930
] - http: don't emit error after destroy (Robert Nagy) #55457 - [
137aa5c9f6
] - http2: fix client async storage persistence (Orgad Shaneh) #55460 - [
d1965f9f5b
] - lib: implement webidl dictionary converter and use it in structuredClone (Jason Zhang) #55489 - [
bf552fa3cc
] - lib: prefer number to string in webidltype
function (Jason Zhang) #55489 - [
7bfd295416
] - meta: bump actions/setup-python from 5.2.0 to 5.3.0 (dependabot[bot]) #55688 - [
21e3b7b2f4
] - meta: bump actions/setup-node from 4.0.4 to 4.1.0 (dependabot[bot]) #55687 - [
2ae8d3b2ff
] - meta: bump rtCamp/action-slack-notify from 2.3.0 to 2.3.2 (dependabot[bot]) #55686 - [
42e6c47086
] - meta: bump actions...
2024-10-29, Version 22.11.0 'Jod' (LTS), @richardlau
Notable Changes
This release marks the transition of Node.js 22.x into Long Term Support (LTS)
with the codename 'Jod'. The 22.x release line now moves into "Active LTS"
and will remain so until October 2025. After that time, it will move into
"Maintenance" until end of life in April 2027.
Other than updating metadata, such as the process.release
object, to reflect
that the release is LTS, no further changes from Node.js 22.10.0 are included.
OpenSSL 3.x
Official binaries for Node.js 22.x currently include OpenSSL 3.0.x (more
specifically, the quictls OpenSSL fork).
OpenSSL 3.0.x is the currently designated long term support version that is
scheduled to be supported until 7th September 2026, which is within the expected
lifetime of Node.js 22.x. We are expecting upstream OpenSSL to announce a
successor long term support version prior to that date and since OpenSSL now
follows a semantic versioning-like versioning scheme we expect to be able to
update to the next long term supported version of OpenSSL during the lifetime of
Node.js 22.x.
2024-10-24, Version 23.1.0 (Current), @aduh95
Notable Changes
Buffer
now work with resizable ArrayBuffer
When a Buffer
is created using a resizable ArrayBuffer
, the Buffer
length
will now correctly change as the underlying ArrayBuffer
size is changed.
const ab = new ArrayBuffer(10, { maxByteLength: 20 });
const buffer = Buffer.from(ab);
console.log(buffer.byteLength); 10
ab.resize(15);
console.log(buffer.byteLength); 15
ab.resize(5);
console.log(buffer.byteLength); 5
Contributed by James M Snell in #55377.
MockTimers
test runner API is now stable
MockTimers
, introduced in April 2023, has just reached stable status. This
API provides comprehensive support for mocking Date
and all major timers in
Node.js, including setTimeout
, setInterval
, and setImmediate
, both from
the node:timers
, node:timers/promises
modules and global objects. After
months of refinement, developers can now fully rely on MockTimers
for testing
time-based operations with confidence, ensuring better control over asynchronous
behavior in their Node.js applications.
Example usage with initial Date
object as time set:
import { mock } from 'node:test';
mock.timers.enable({ apis: ['Date'], now: new Date('1970-01-01') });
Contributed by Erick Wendel in #55398.
JSON modules and import attributes are now stable
The two proposals reached stage 4 of the TC39 process, at the October 2024
meeting. The Node.js implementation already matches exactly the semantics
required by the proposals.
Contributed by Nicolò Ribaudo by #55333.
Other Notable Changes
- [
4ba31b7f20
] - (SEMVER-MINOR) assert: makeassertion_error
use Myers diff algorithm (Giovanni Bucci) #54862 - [
dcbc5fbe65
] - (SEMVER-MINOR) lib: addUV_UDP_REUSEPORT
for udp (theanarkh) #55403 - [
ec867ac7ce
] - (SEMVER-MINOR) net: addUV_TCP_REUSEPORT
for tcp (theanarkh) #55408
Commits
- [
4ba31b7f20
] - (SEMVER-MINOR) assert: make assertion_error use Myers diff algorithm (Giovanni Bucci) #54862 - [
fe667bea28
] - assert: fix deepEqual always return true on URL (Xuguang Mei) #50853 - [
aca03d9083
] - benchmark: add --runs support to run.js (Rafael Gonzaga) #55158 - [
c5abf50692
] - benchmark: adjust byte size for buffer-copy (Rafael Gonzaga) #55295 - [
d3618b2334
] - benchmark: adjust config for deepEqual object (Rafael Gonzaga) #55254 - [
c05582da3d
] - (SEMVER-MINOR) buffer: make Buffer work with resizable ArrayBuffer (James M Snell) #55377 - [
194bb0fca5
] - build: fix GN build for cares/uv deps (Cheng) #55477 - [
8eb5359592
] - build: fix uninstall script for AIX 7.1 (Cloorc) #55438 - [
32f7d5ad1c
] - build: conditionally compile bundled sqlite (Richard Lau) #55409 - [
2147e496e7
] - build: tidy up cares.gyp (Richard Lau) #55445 - [
2beae50c77
] - build: synchronize list of c-ares source files (Richard Lau) #55445 - [
f48d30eb9f
] - build: fix path concatenation (Mohammed Keyvanzadeh) #55387 - [
d42522eec5
] - build: fix make errors that occur in Makefile (minkyu_kim) #55287 - [
52da293471
] - cli: add--heap-prof
flag available toNODE_OPTIONS
(Juan José) #54259 - [
adead26815
] - crypto: include openssl/rand.h explicitly (Shelley Vohr) #55425 - [
df2f1adf9e
] - deps: V8: cherry-pick f915fa4c9f41 (Chengzhong Wu) #55484 - [
bfc10a975f
] - deps: update googletest to df1544b (Node.js GitHub Bot) #55465 - [
45ef1809bd
] - deps: update c-ares to v1.34.2 (Node.js GitHub Bot) #55463 - [
c2b5ebfeca
] - deps: update ada to 2.9.1 (Node.js GitHub Bot) #54679 - [
903863cafa
] - deps: update simdutf to 5.6.0 (Node.js GitHub Bot) #55379 - [
008fb5f7f4
] - deps: patch V8 to 12.9.202.28 (Node.js GitHub Bot) #55371 - [
8b282228ae
] - deps: update c-ares to v1.34.1 (Node.js GitHub Bot) #55369 - [
54d55f2337
] - Revert "deps: disable io_uring support in libuv by default" (Santiago Gimeno) #55114 - [
bfb3c621c4
] - deps: update libuv to 1.49.1 (Santiago Gimeno) #55114 - [
055d2b8919
] - deps: update amaro to 0.1.9 (Node.js GitHub Bot) #55348 - [
c028d21b44
] - diagnostics_channel: fix unsubscribe during publish (simon-id) #55116 - [
b4b6ddb777
] - dns: honor the order option (Luigi Pinca) #55392 - [
37352cef7f
] - doc: changed the command used to verify SHASUMS256 (adriancuadrado) #55420 - [
66bcf4c065
] - doc: move dual package shipping docs to separate repo (Joyee Cheung) #55444 - [
04b41bda03
] - doc: add note about stdio streams in child_process (Ederin (Ed) Igharoro) #55322 - [
689d3a3e41
] - doc: addisBigIntObject
to documentation (leviscar) #55450 - [
784c825a27
] - doc: remove outdated remarks abouthighWaterMark
in fs (Ian Kerins) #55462 - [
1ec25e8573
] - doc: move Danielle Adams key to old gpg keys (RafaelGSS) #55399 - [
7d5bb097eb
] - doc: move Bryan English key to old gpg keys (RafaelGSS) #55399 - [
2967471f67
] - doc: move Beth Griggs keys to old gpg keys (RafaelGSS) #55399 - [
0be3a7505f
] - doc: add changelog for mocktimers (Erick Wendel) #55398 - [
e15f779794
] - doc: spell out condition restrictions (Jan Martin) #55187 - [
c3f2216a7d
] - doc: add instructions for WinGet build (Hüseyin Açacak) #55356 - [
bdc2c3bb94
] - doc: add missing return values in buffer docs (Karl Horky) #55273 - [
41f68f59af
] - doc: fix ambasador markdown list (Rafael Gonzaga) #55361 - [
bbd5318729
] - esm: add a fallback when importer in not a file (Antoine du Hamel) #55471 - [[`22d7777...
2024-10-16, Version 23.0.0 (Current), @RafaelGSS
We’re excited to announce the release of Node.js 23! Key highlights include:
- Enabling
require(esm)
by default for Node.js applications - Removing support for Windows 32-bit systems
- Stabilizing the
node --run
command - Enhancements to the test runner, including glob pattern support for coverage files
Node.js 23 will replace Node.js 22 as the ‘Current’ release line when Node.js 22 enters long-term support (LTS) later this month.
According to the release schedule, Node.js 23 will remain the ‘Current’ release for the next six months, until April 2025.
Other Notable Changes
- [
7ad0cc3e57
] - (SEMVER-MAJOR) build: remove support for 32-bit Windows (Michaël Zasso) #53184 - [
83eb4f2855
] - (SEMVER-MINOR) deps: V8: cherry-pick cd10ad7cdbe5 (Joyee Cheung) #52535 - [
b8493a5789
] - doc: add abmusse to collaborators (Abdirahim Musse) #55086 - [
7fab6e8885
] - (SEMVER-MAJOR) doc: use gcc 12 on AIX for Node.js >=23 (Richard Lau) #54338 - [
d473606040
] - (SEMVER-MINOR) lib: propagate aborted state to dependent signals before firing events (jazelly) #54826 - [
06206af181
] - (SEMVER-MINOR) module: unflag --experimental-require-module (Joyee Cheung) #55085 - [
0b9249e335
] - (SEMVER-MINOR) module: implement the "module-sync" exports condition (Joyee Cheung) #54648 - [
92a25abca9
] - (SEMVER-MINOR) path: addmatchGlob
method (Aviv Keller) #52881 - [
12dd4c7575
] - src: mark node --run as stable (Yagiz Nizipli) #53763 - [
4174b73153
] - test: support glob matching coverage files (Aviv Keller) #53553
Semver-Major Commits
- [
764b13d75c
] - (SEMVER-MAJOR) assert,util: change WeakMap and WeakSet comparison handling (Cristian Barlutiu) #53495 - [
3800d60c66
] - (SEMVER-MAJOR) buffer: throw when writing beyond buffer" (Robert Nagy) #54588 - [
17fd32790a
] - (SEMVER-MAJOR) buffer: make File cloneable (Matthew Aitken) #47613 - [
f68d7d2acc
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #54536 - [
9d0748c5df
] - (SEMVER-MAJOR) build: disable ICF for mksnapshot (Leszek Swirski) #54077 - [
b7bcf3e121
] - (SEMVER-MAJOR) build: include v8-sandbox.h header in distribution (Michaël Zasso) #54077 - [
1dfa3b8255
] - (SEMVER-MAJOR) build: reset embedder string to "-node.0" (Michaël Zasso) #54077 - [
046343ea9d
] - (SEMVER-MAJOR) build: warn for GCC versions earlier than 12.2 (Michaël Zasso) #54081 - [
a5decd4c8d
] - (SEMVER-MAJOR) build: drop experimental support for Windows <10 (Michaël Zasso) #54079 - [
7ad0cc3e57
] - (SEMVER-MAJOR) build: remove support for 32-bit Windows (Michaël Zasso) #53184 - [
c7e42092f3
] - (SEMVER-MAJOR) build: compile with C++20 support (Michaël Zasso) #45427 - [
e2b7e41e23
] - (SEMVER-MAJOR) child_process: remove unused internal event (Rich Trott) #53793 - [
4f1fe8a015
] - (SEMVER-MAJOR) cli: remove deprecated V8 flag (Omer Katz) #54761 - [
8f37492b65
] - (SEMVER-MAJOR) cli: move --trace-atomics-wait to eol (Marco Ippolito) #52747 - [
f7e73cd1f2
] - (SEMVER-MAJOR) cli: remove --no-experimental-global-customevent flag (Daeyeon Jeong) #52723 - [
311504125f
] - (SEMVER-MAJOR) cli: remove --no-experimental-fetch flag (Filip Skokan) #52611 - [
a30ae50860
] - (SEMVER-MAJOR) cli: remove --no-experimental-global-webcrypto flag (Filip Skokan) #52564 - [
afe56aa58b
] - (SEMVER-MAJOR) crypto: runtime deprecate crypto.fips (Yagiz Nizipli) #55019 - [
33a6d1fe3a
] - (SEMVER-MAJOR) crypto: remove ERR_CRYPTO_SCRYPT_INVALID_PARAMETER (Tobias Nießen) #53305 - [
ff826069a8
] - (SEMVER-MAJOR) crypto: move DEP0182 to runtime deprecation (Tobias Nießen) #52552 - [
6e150f9527
] - (SEMVER-MAJOR) deps: V8: cherry-pick 97199f686e2f (Michaël Zasso) #54536 - [
1e16779fa1
] - (SEMVER-MAJOR) deps: V8: cherry-pick 01a47f3ffff2 (Michaël Zasso) #54536 - [
762a440e68
] - (SEMVER-MAJOR) deps: patch V8 to support older Clang versions (Michaël Zasso) #54536 - [
95f2213eed
] - (SEMVER-MAJOR) deps: always define V8_NODISCARD as no-op (Michaël Zasso) #54536 - [
09d997f181
] - (SEMVER-MAJOR) deps: fix FP16 bitcasts.h (Stefan Stojanovic) #54536 - [
1866363854
] - (SEMVER-MAJOR) deps: patch V8 to support compilation with MSVC (StefanStojanovic) #54536 - [
6f4f22f84c
] - (SEMVER-MAJOR) deps: patch V8 to avoid duplicated zlib symbol (Michaël Zasso) #54536 - [
dfff61475e
] - (SEMVER-MAJOR) deps: disable V8 concurrent sparkplug compilation (Michaël Zasso) #54536 - [
69ad89f8eb
] - (SEMVER-MAJOR) deps: always define V8_EXPORT_PRIVATE as no-op (Michaël Zasso) #54536 - [
5ab3140dfb
] - (SEMVER-MAJOR) deps: update V8 to 12.9.202.18 (Michaël Zasso) #54536 - [
fba06eb34a
] - (SEMVER-MAJOR) deps: remove bogus V8 DCHECK (Michaël Zasso) #54077 - [
5355603fb5
] - (SEMVER-MAJOR) deps: V8: cherry-pick 00e9eeb3fb2c (Michaël Zasso) #54077 - [
bcc1e2716c
] - (SEMVER-MAJOR) deps: V8: cherry-pick b1397772c70c (Michaël Zasso) #54077 - [
415bc750a5
] - (SEMVER-MAJOR) deps: V8: cherry-pick 35888fee7bba (Joyee Cheung) #54077 - [
28f3e5c9d1
] - (SEMVER-MAJOR) deps: always define V8_NODISCARD as no-op (Michaël Zasso) #54077 - [
a41c381cde
] - (SEMVER-MAJOR) deps: fix FP16 bitcasts.h (Stefan Stojanovic) [#54077](https://github.com/nod...