Skip to content

Releases: nodejs/node

2023-08-09, Version 20.5.1 (Current), @RafaelGSS

09 Aug 17:58
v20.5.1
Compare
Choose a tag to compare

This is a security release.

Notable Changes

The following CVEs are fixed in this release:

More detailed information on each of the vulnerabilities can be found in August 2023 Security Releases blog post.

Commits

2023-08-09, Version 18.17.1 'Hydrogen' (LTS), @RafaelGSS

09 Aug 17:58
v18.17.1
Compare
Choose a tag to compare

This is a security release.

Notable Changes

The following CVEs are fixed in this release:

More detailed information on each of the vulnerabilities can be found in August 2023 Security Releases blog post.

Commits

2023-08-09, Version 16.20.2 'Gallium' (LTS), @RafaelGSS

09 Aug 17:57
v16.20.2
Compare
Choose a tag to compare

This is a security release.

Notable Changes

The following CVEs are fixed in this release:

More detailed information on each of the vulnerabilities can be found in August 2023 Security Releases blog post.

Commits

2023-07-18, Version 20.5.0 (Current), @juanarbol

20 Jul 21:41
Compare
Choose a tag to compare

Notable Changes

  • [45be29d89f] - doc: add atlowChemi to collaborators (atlowChemi) #48757
  • [a316808136] - (SEMVER-MINOR) events: allow safely adding listener to abortSignal (Chemi Atlow) #48596
  • [986b46a567] - fs: add a fast-path for readFileSync utf-8 (Yagiz Nizipli) #48658
  • [0ef73ff6f0] - (SEMVER-MINOR) test_runner: add shards support (Raz Luvaton) #48639

Commits

Read more

2023-07-18, Version 18.17.0 'Hydrogen' (LTS), @danielleadams

18 Jul 20:05
v18.17.0
a39b8a2
Compare
Choose a tag to compare

Notable Changes

Ada 2.0

Node.js v18.17.0 comes with the latest version of the URL parser, Ada. This update brings significant performance improvements
to URL parsing, including enhancements to the url.domainToASCII and url.domainToUnicode functions in node:url.

Ada 2.0 has been integrated into the Node.js codebase, ensuring that all parts of the application can benefit from the
improved performance. Additionally, Ada 2.0 features a significant performance boost over its predecessor, Ada 1.0.4,
while also eliminating the need for the ICU requirement for URL hostname parsing.

Contributed by Yagiz Nizipli and Daniel Lemire in #47339

Web Crypto API

Web Crypto API functions' arguments are now coerced and validated as per their WebIDL definitions like in other Web Crypto API implementations.
This further improves interoperability with other implementations of Web Crypto API.

Contributed by Filip Skokan in #46067

  • crypto:
    • update root certificates to NSS 3.89 (Node.js GitHub Bot) #47659
  • dns:
    • (SEMVER-MINOR) expose getDefaultResultOrder (btea) #46973
  • doc:
    • add ovflowd to collaborators (Claudio Wunder) #47844
    • add KhafraDev to collaborators (Matthew Aitken) #47510
  • events:
    • (SEMVER-MINOR) add getMaxListeners method (Matthew Aitken) #47039
  • fs:
    • (SEMVER-MINOR) add support for mode flag to specify the copy behavior (Tetsuharu Ohzeki) #47084
    • (SEMVER-MINOR) add recursive option to readdir and opendir (Ethan Arrowood) #41439
    • (SEMVER-MINOR) add support for mode flag to specify the copy behavior (Tetsuharu Ohzeki) #47084
    • (SEMVER-MINOR) implement byob mode for readableWebStream() (Debadree Chatterjee) #46933
  • http:
    • (SEMVER-MINOR) prevent writing to the body when not allowed by HTTP spec (Gerrard Lindsay) #47732
    • (SEMVER-MINOR) remove internal error in assignSocket (Matteo Collina) #47723
    • (SEMVER-MINOR) add highWaterMark opt in http.createServer (HinataKah0) #47405
  • lib:
    • (SEMVER-MINOR) add webstreams to Duplex.from() (Debadree Chatterjee) #46190
    • (SEMVER-MINOR) implement AbortSignal.any() (Chemi Atlow) #47821
  • module:
    • change default resolver to not throw on unknown scheme (Gil Tayar) #47824
  • node-api:
    • (SEMVER-MINOR) define version 9 (Chengzhong Wu) #48151
    • (SEMVER-MINOR) deprecate napi_module_register (Vladimir Morozov) #46319
  • stream:
    • (SEMVER-MINOR) preserve object mode in compose (Raz Luvaton) #47413
    • (SEMVER-MINOR) add setter & getter for default highWaterMark (#46929) (Robert Nagy) #46929
  • test:
    • unflake test-vm-timeout-escape-nexttick (Santiago Gimeno) #48078
  • test_runner:
    • (SEMVER-MINOR) add shorthands to test (Chemi Atlow) #47909
    • (SEMVER-MINOR) support combining coverage reports (Colin Ihrig) #47686
    • (SEMVER-MINOR) execute before hook on test (Chemi Atlow) #47586
    • (SEMVER-MINOR) expose reporter for use in run api (Chemi Atlow) #47238
  • tools:
    • update LICENSE and license-builder.sh (Santiago Gimeno) #48078
  • url:
    • (SEMVER-MINOR) implement URL.canParse (Matthew Aitken) #47179
  • wasi:
    • (SEMVER-MINOR) no longer require flag to enable wasi (Michael Dawson) #47286

Commits

  • [2ba08ac002] - benchmark: use cluster.isPrimary instead of cluster.isMaster (Deokjin Kim) #48002
  • [60ca69d96c] - benchmark: add eventtarget creation bench (Rafael Gonzaga) #47774
  • [d8233d96bb] - benchmark: add a benchmark for defaultResolve (Antoine du Hamel) #47543
  • [a1aabb6912] - benchmark: fix invalid requirementsURL (Deokjin Kim) #47378
  • [394c61caf9] - bootstrap: support namespaced builtins in snapshot scripts (Joyee Cheung) #47467
  • [0165a765a0] - bootstrap: do not expand process.argv[1] for snapshot entry points (Joyee Cheung) #47466
  • [cca557cdd9] - buffer: combine checking range of sourceStart in buf.copy (Deokjin Kim) #47758
  • [4c69be467c] - buffer: use private properties for brand checks in File (Matthew Aitken) #47154
  • [d002f9b6e2] - build: revert unkonwn ruff selector (Moshe Atlow) #48753
  • [93f77cb762] - build: set v8_enable_webassembly=false when lite mode is enabled (Cheng Shao) #48248
  • [1662e894f3] - build: add action to close stale PRs (Michael Dawson) #48051
  • [5ca437b288] - build: use pathlib for paths (Mohammed Keyvanzadeh) #47581
  • [72443bc54b] - build: refactor configure.py (Mohammed Keyvanzadeh) #47667
  • [d4eecb5be9] - build: add devcontainer configuration (Tierney Cyren) #40825
  • [803ed41144] - build: bump ossf/scorecard-action from 2.1.2 to 2.1.3 (dependabot[bot]) #47367
  • [48468c4413] - build: replace Python linter flake8 with ruff (Christian Clauss) #47519
  • [3ceb2c4387] - build: add node-core-utils to setup (Jiawen Geng) #47442
  • [fdc59b8e14] - build: bump github/codeql-action from 2.2.6 to 2.2.9 (dependabot[bot]) #47366
  • [3924893023] - build: update stale action from v7 to v8 (Rich Trott) #47357
  • [753185c5b0] - build: remove Python pip --no-user option (Christian Clauss) #47372
  • [67af0a6a2b] - build: avoid usage of pipes library (Mohammed Keyvanzadeh) #47271
  • [db910dd6b2] - build, deps, tools: avoid excessive LTO (Konstantin Demin) #47313
  • [35d1def891] - child_process: use signal.reason in child process abort (Debadree Chatterjee) #47817
  • [7692d2e7b9] - cluster: use ObjectPrototypeHasOwnProperty (Daeyeon Jeong) #48141
  • [7617772762] - crypto: use openssl's own memory BIOs in crypto_context.cc (GauriSpears) #47160
  • [8cabfe7c6e] - crypto: fix setEngine() when OPENSSL_NO_ENGINE set (Tobias Nießen) #47977
  • [de1338da05] - crypto: fix webcrypto private/secret import with empty usages (Filip Skokan) #47877
  • [27a696fda9] - crypto: update root...
Read more

2023-07-05, Version 20.4.0 (Current), @RafaelGSS

05 Jul 15:12
v20.4.0
Compare
Choose a tag to compare

Notable Changes

Mock Timers

The new feature allows developers to write more reliable and predictable tests for time-dependent functionality.
It includes MockTimers with the ability to mock setTimeout, setInterval from globals, node:timers, and node:timers/promises.

The feature provides a simple API to advance time, enable specific timers, and release all timers.

import assert from 'node:assert';
import { test } from 'node:test';

test('mocks setTimeout to be executed synchronously without having to actually wait for it', (context) => {
  const fn = context.mock.fn();
  // Optionally choose what to mock
  context.mock.timers.enable(['setTimeout']);
  const nineSecs = 9000;
  setTimeout(fn, nineSecs);

  const threeSeconds = 3000;
  context.mock.timers.tick(threeSeconds);
  context.mock.timers.tick(threeSeconds);
  context.mock.timers.tick(threeSeconds);

  assert.strictEqual(fn.mock.callCount(), 1);
});

This feature was contributed by Erick Wendel in #47775.

Support to the explicit resource management proposal

Node is adding support to the explicit resource management
proposal to its resources allowing users of TypeScript/babel to use using/await using with
V8 support for everyone else on the way.

This feature was contributed by Moshe Atlow and Benjamin Gruenbaum in #48518.

Other notable changes

  • [fe333d2584] - crypto: update root certificates to NSS 3.90 (Node.js GitHub Bot) #48416
  • [60c2ea4e79] - doc: add vmoroz to collaborators (Vladimir Morozov) #48527
  • [5cacdf9e6b] - doc: add kvakil to collaborators (Keyhan Vakil) #48449
  • [504d1d7bdc] - (SEMVER-MINOR) tls: add ALPNCallback server option for dynamic ALPN negotiation (Tim Perry) #45190

Commits

Read more

2023-06-20, Version 20.3.1 (Current), @RafaelGSS

20 Jun 20:15
v20.3.1
Compare
Choose a tag to compare

This is a security release.

Notable Changes

The following CVEs are fixed in this release:

More detailed information on each of the vulnerabilities can be found in June 2023 Security Releases blog post.

Commits

2023-06-20, Version 18.16.1 'Hydrogen' (LTS), @RafaelGSS

20 Jun 20:35
v18.16.1
Compare
Choose a tag to compare

This is a security release.

Notable Changes

The following CVEs are fixed in this release:

More detailed information on each of the vulnerabilities can be found in June 2023 Security Releases blog post.

Commits

2023-06-20, Version 16.20.1 'Gallium' (LTS), @RafaelGSS

20 Jun 19:29
v16.20.1
Compare
Choose a tag to compare

This is a security release.

Notable Changes

The following CVEs are fixed in this release:

More detailed information on each of the vulnerabilities can be found in June 2023 Security Releases blog post.

Commits

2023-06-08, Version 20.3.0 (Current), @targos

08 Jun 16:34
v20.3.0
Compare
Choose a tag to compare

Notable Changes

  • [bfcb3d1d9a] - deps: upgrade to libuv 1.45.0, including significant performance improvements to file system operations on Linux (Santiago Gimeno) #48078
  • [5094d1b292] - doc: add Ruy Adorno to list of TSC members (Michael Dawson) #48172
  • [2f5dbca690] - doc: mark Node.js 14 as End-of-Life (Richard Lau) #48023
  • [b1828b325e] - (SEMVER-MINOR) lib: implement AbortSignal.any() (Chemi Atlow) #47821
  • [f380953103] - module: change default resolver to not throw on unknown scheme (Gil Tayar) #47824
  • [a94f87ed99] - (SEMVER-MINOR) node-api: define version 9 (Chengzhong Wu) #48151
  • [9e2b13dfa7] - stream: deprecate asIndexedPairs (Chemi Atlow) #48102

Commits

  • [35c96156d1] - benchmark: use cluster.isPrimary instead of cluster.isMaster (Deokjin Kim) #48002
  • [3e6e3abf32] - bootstrap: throw ERR_NOT_SUPPORTED_IN_SNAPSHOT in unsupported operation (Joyee Cheung) #47887
  • [c480559347] - bootstrap: put is_building_snapshot state in IsolateData (Joyee Cheung) #47887
  • [50c0a15535] - build: set v8_enable_webassembly=false when lite mode is enabled (Cheng Shao) #48248
  • [4562805cf6] - build: speed up compilation of mksnapshot output (Keyhan Vakil) #48162
  • [8b89f13933] - build: add action to close stale PRs (Michael Dawson) #48051
  • [5d92202220] - build: replace js2c.py with js2c.cc (Joyee Cheung) #46997
  • [6cf2adc36e] - cluster: use ObjectPrototypeHasOwnProperty (Daeyeon Jeong) #48141
  • [f564b03c38] - crypto: use openssl's own memory BIOs in crypto_context.cc (GauriSpears) #47160
  • [ac8dd61fc3] - crypto: remove default encoding from cipher (Tobias Nießen) #47998
  • [15c2de4407] - crypto: fix setEngine() when OPENSSL_NO_ENGINE set (Tobias Nießen) #47977
  • [9e2dd5b5e2] - deps: update zlib to 337322d (Node.js GitHub Bot) #48218
  • [bfcb3d1d9a] - deps: upgrade to libuv 1.45.0 (Santiago Gimeno) #48078
  • [13930f092f] - deps: update ada to 2.5.0 (Node.js GitHub Bot) #48223
  • [3047caebec] - deps: set CARES_RANDOM_FILE for c-ares (Richard Lau) #48156
  • [0db79a0872] - deps: update histogram 0.11.8 (Marco Ippolito) #47742
  • [99af6716f5] - deps: update histogram to 0.11.7 (Marco Ippolito) #47742
  • [d4922bc985] - deps: update c-ares to 1.19.1 (Node.js GitHub Bot) #48115
  • [f6ccdb289f] - deps: update simdutf to 3.2.12 (Node.js GitHub Bot) #48118
  • [3ed0afc778] - deps: update minimatch to 9.0.1 (Node.js GitHub Bot) #48094
  • [df7540fb73] - deps: update ada to 2.4.2 (Node.js GitHub Bot) #48092
  • [07df5c48e8] - deps: update corepack to 0.18.0 (Node.js GitHub Bot) #48091
  • [d95a5bb559] - deps: update uvwasi to 0.0.18 (Node.js GitHub Bot) #47866
  • [443477e041] - deps: update uvwasi to 0.0.17 (Node.js GitHub Bot) #47866
  • [03f67d6d6d] - deps: upgrade npm to 9.6.7 (npm team) #48062
  • [d3e3a911fd] - deps: update nghttp2 to 1.53.0 (Node.js GitHub Bot) #47997
  • [f7c4daaf67] - deps: update ada to 2.4.1 (Node.js GitHub Bot) #48036
  • [c6a752560d] - deps: add loongarch64 into openssl Makefile and gen openssl-loongarch64 (Shi Pujin) #46401
  • [d194241716] - deps: update undici to 5.22.1 (Node.js GitHub Bot) #47994
  • [02e919f4a2] - deps,test: update postject to 1.0.0-alpha.6 (Node.js GitHub Bot) #48072
  • [2c19f596ad] - doc: clarify array args to Buffer.from() (Bryan English) #48274
  • [d681e5f456] - doc: document watch option for node:test run() (Moshe Atlow) #48256
  • [96e54ddbca] - doc: reserve 117 for Electron 26 (Calvin) #48245
  • [9aff8c7818] - doc: update documentation for FIPS support (Richard Lau) #48194
  • [8c5338648f] - doc: improve the documentation of the stdio option (Kumar Arnav) #48110
  • [11918d705f] - doc: update Buffer.allocUnsafe description (sinkhaha) #48183
  • [2b51ee5e22] - doc: update codeowners with website team (Claudio Wunder) #48197
  • [360df25d04] - doc: fix broken link to new folder doc/contributing/maintaining (Andrea Fassina) #48205
  • [13e95e21a4] - doc: add atlowChemi to triagers (Chemi Atlow) #48104
  • [5f83ce530f] - doc: fix typo in readline completer function section (Vadym) #48188
  • [3c82165d27] - doc: remove broken link for keygen (Rich Trott) #48176
  • [0ca90a1e6d] - doc: add auto intrinsic height to prevent jitter/flicker (Daniel Holbert) #48195
  • [f117855092] - doc: add version info on the SEA docs (Antoine du Hamel) #48173
  • [5094d1b292] - doc: add Ruy to list of TSC members (Michael Dawson) #48172
  • [39d8140227] - doc: update socket.remote* properties documentation (Saba Kharanauli) #48139
  • [5497c13efe] - doc: update outdated section on TLSv1.3-PSK ...
Read more