diff --git a/CHANGELOG.md b/CHANGELOG.md
index bcefce214b1f9a..e0bdf58086f811 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -33,7 +33,8 @@ release.
-17.3.1
+17.4.0
+17.3.1
17.3.0
17.2.0
17.1.0
diff --git a/doc/api/child_process.md b/doc/api/child_process.md
index c457ac8aa34c8e..31c8f506fc9bff 100644
--- a/doc/api/child_process.md
+++ b/doc/api/child_process.md
@@ -392,7 +392,7 @@ controller.abort();
added: v0.5.0
changes:
- version:
- - REPLACEME
+ - v17.4.0
pr-url: https://github.com/nodejs/node/pull/41225
description: The `modulePath` parameter can be a WHATWG `URL` object using
`file:` protocol.
diff --git a/doc/api/crypto.md b/doc/api/crypto.md
index 1b390dc12af497..70ecb0d4c64cad 100644
--- a/doc/api/crypto.md
+++ b/doc/api/crypto.md
@@ -4060,7 +4060,7 @@ console.log(getHashes()); // ['DSA', 'DSA-SHA', 'DSA-SHA1', ...]
### `crypto.getRandomValues(typedArray)`
* `typedArray` {Buffer|TypedArray|DataView|ArrayBuffer}
@@ -5250,7 +5250,7 @@ If the `callback` function is provided this function uses libuv's threadpool.
### `crypto.subtle`
* Type: {SubtleCrypto}
diff --git a/doc/api/events.md b/doc/api/events.md
index 817099643e2ba4..e16cadf879d9c9 100644
--- a/doc/api/events.md
+++ b/doc/api/events.md
@@ -740,7 +740,7 @@ added:
- v13.4.0
- v12.16.0
changes:
- - version: REPLACEME
+ - version: v17.4.0
pr-url: https://github.com/nodejs/node/pull/41267
description: No longer experimental.
-->
@@ -1029,7 +1029,7 @@ added:
- v13.4.0
- v12.16.0
changes:
- - version: REPLACEME
+ - version: v17.4.0
pr-url: https://github.com/nodejs/node/pull/41267
description: No longer experimental.
-->
@@ -1045,7 +1045,7 @@ added:
- v13.4.0
- v12.16.0
changes:
- - version: REPLACEME
+ - version: v17.4.0
pr-url: https://github.com/nodejs/node/pull/41267
description: No longer experimental.
-->
@@ -1173,7 +1173,7 @@ setMaxListeners(5, target, emitter);
## Class: `events.EventEmitterAsyncResource extends EventEmitter`
Integrates `EventEmitter` with {AsyncResource} for `EventEmitter`s that
diff --git a/doc/api/perf_hooks.md b/doc/api/perf_hooks.md
index cbdd34bdb52830..fd7c2bbcd68729 100644
--- a/doc/api/perf_hooks.md
+++ b/doc/api/perf_hooks.md
@@ -874,7 +874,7 @@ added: v11.10.0
### `histogram.count`
* {number}
@@ -884,7 +884,7 @@ The number of samples recorded by the histogram.
### `histogram.countBigInt`
* {bigint}
@@ -905,7 +905,7 @@ loop delay threshold.
### `histogram.exceedsBigInt`
* {bigint}
@@ -926,7 +926,7 @@ The maximum recorded event loop delay.
### `histogram.maxBigInt`
* {bigint}
@@ -956,7 +956,7 @@ The minimum recorded event loop delay.
### `histogram.minBigInt`
* {bigint}
@@ -977,7 +977,7 @@ Returns the value at the given percentile.
### `histogram.percentileBigInt(percentile)`
* `percentile` {number} A percentile value in the range (0, 100).
@@ -998,7 +998,7 @@ Returns a `Map` object detailing the accumulated percentile distribution.
### `histogram.percentilesBigInt`
* {Map}
@@ -1066,7 +1066,7 @@ added:
### `histogram.add(other)`
* `other` {RecordableHistogram}
diff --git a/doc/api/stream.md b/doc/api/stream.md
index 7660b5f50fca8b..aca80150fa0f67 100644
--- a/doc/api/stream.md
+++ b/doc/api/stream.md
@@ -1686,7 +1686,7 @@ showBoth();
### `readable.map(fn[, options])`
> Stability: 1 - Experimental
@@ -1730,7 +1730,7 @@ for await (const result of dnsResults) {
### `readable.filter(fn[, options])`
> Stability: 1 - Experimental
@@ -2280,7 +2280,7 @@ Returns whether the stream has encountered an error.
### `stream.isReadable(stream)`
> Stability: 1 - Experimental
diff --git a/doc/changelogs/CHANGELOG_V17.md b/doc/changelogs/CHANGELOG_V17.md
index 664c330a6cbb69..54bedec9a36008 100644
--- a/doc/changelogs/CHANGELOG_V17.md
+++ b/doc/changelogs/CHANGELOG_V17.md
@@ -8,6 +8,7 @@
|
+17.4.0
17.3.1
17.3.0
17.2.0
@@ -37,6 +38,190 @@
* [io.js](CHANGELOG_IOJS.md)
* [Archive](CHANGELOG_ARCHIVE.md)
+
+
+## 2022-01-18, Version 17.4.0 (Current), @targos
+
+### Notable Changes
+
+* \[[`ef6f98c2e3`](https://github.com/nodejs/node/commit/ef6f98c2e3)] - **(SEMVER-MINOR)** **child\_process**: add support for URL to `cp.fork` (Antoine du Hamel) [#41225](https://github.com/nodejs/node/pull/41225)
+* \[[`d62fe315c2`](https://github.com/nodejs/node/commit/d62fe315c2)] - **(SEMVER-MINOR)** **crypto**: alias webcrypto.subtle and webcrypto.getRandomValues on crypto (James M Snell) [#41266](https://github.com/nodejs/node/pull/41266)
+* \[[`fcb37e9ce5`](https://github.com/nodejs/node/commit/fcb37e9ce5)] - **doc**: add Mesteery to collaborators (Mestery) [#41543](https://github.com/nodejs/node/pull/41543)
+* \[[`4079fc42b7`](https://github.com/nodejs/node/commit/4079fc42b7)] - **(SEMVER-MINOR)** **events**: graduate capturerejections to supported (James M Snell) [#41267](https://github.com/nodejs/node/pull/41267)
+* \[[`fe21607901`](https://github.com/nodejs/node/commit/fe21607901)] - **(SEMVER-MINOR)** **events**: add EventEmitterAsyncResource to core (James M Snell) [#41246](https://github.com/nodejs/node/pull/41246)
+* \[[`6d8eb6ace6`](https://github.com/nodejs/node/commit/6d8eb6ace6)] - **(SEMVER-MINOR)** **loader**: return package format from defaultResolve if known (Gabriel Bota) [#40980](https://github.com/nodejs/node/pull/40980)
+* \[[`27c619140a`](https://github.com/nodejs/node/commit/27c619140a)] - **(SEMVER-MINOR)** **perf\_hooks**: multiple fixes for Histogram (James M Snell) [#41153](https://github.com/nodejs/node/pull/41153)
+* \[[`09c25bb224`](https://github.com/nodejs/node/commit/09c25bb224)] - **(SEMVER-MINOR)** **stream**: add filter method to readable (Benjamin Gruenbaum, Robert Nagy) [#41354](https://github.com/nodejs/node/pull/41354)
+* \[[`1150963217`](https://github.com/nodejs/node/commit/1150963217)] - **(SEMVER-MINOR)** **stream**: add isReadable helper (Robert Nagy) [#41199](https://github.com/nodejs/node/pull/41199)
+* \[[`9f5a873965`](https://github.com/nodejs/node/commit/9f5a873965)] - **(SEMVER-MINOR)** **stream**: add map method to Readable (Benjamin Gruenbaum, Robert Nagy) [#40815](https://github.com/nodejs/node/pull/40815)
+
+### Commits
+
+* \[[`314102b14d`](https://github.com/nodejs/node/commit/314102b14d)] - **async\_hooks**: add missing initialization (Michael Dawson) [#41288](https://github.com/nodejs/node/pull/41288)
+* \[[`56345a3f63`](https://github.com/nodejs/node/commit/56345a3f63)] - **async\_hooks**: fix AsyncLocalStorage in unhandledRejection cases (Bradley Farias) [#41202](https://github.com/nodejs/node/pull/41202)
+* \[[`fa84353952`](https://github.com/nodejs/node/commit/fa84353952)] - **benchmark**: simplify http benchmarker regular expression (Rich Trott) [#38206](https://github.com/nodejs/node/pull/38206)
+* \[[`88d760c559`](https://github.com/nodejs/node/commit/88d760c559)] - **benchmark**: fix benchmark/run.js handling of --set (Rich Trott) [#41334](https://github.com/nodejs/node/pull/41334)
+* \[[`dcf1ea0a3f`](https://github.com/nodejs/node/commit/dcf1ea0a3f)] - **benchmark,test**: use Object.hasOwn() where applicable (Rich Trott) [#41229](https://github.com/nodejs/node/pull/41229)
+* \[[`4958c800da`](https://github.com/nodejs/node/commit/4958c800da)] - **build**: fix npm version detection (Michaël Zasso) [#41575](https://github.com/nodejs/node/pull/41575)
+* \[[`e8538c3751`](https://github.com/nodejs/node/commit/e8538c3751)] - **build**: fix node build failures in WSL Ubuntu (MrJithil) [#41476](https://github.com/nodejs/node/pull/41476)
+* \[[`3d88ea195e`](https://github.com/nodejs/node/commit/3d88ea195e)] - **build**: fix workflow access to git history (Rich Trott) [#41472](https://github.com/nodejs/node/pull/41472)
+* \[[`b0f0ad1004`](https://github.com/nodejs/node/commit/b0f0ad1004)] - **build**: start build on z/OS (alexcfyung) [#41273](https://github.com/nodejs/node/pull/41273)
+* \[[`80a3766ac7`](https://github.com/nodejs/node/commit/80a3766ac7)] - **build**: use list for mutable retval rather than tuple (Rich Trott) [#41372](https://github.com/nodejs/node/pull/41372)
+* \[[`afe1e00509`](https://github.com/nodejs/node/commit/afe1e00509)] - **build**: remove Python 2 workaround (Rich Trott) [#41357](https://github.com/nodejs/node/pull/41357)
+* \[[`011c5f6498`](https://github.com/nodejs/node/commit/011c5f6498)] - **build**: improve readability of texts in workflows (Mestery) [#40988](https://github.com/nodejs/node/pull/40988)
+* \[[`2233f31069`](https://github.com/nodejs/node/commit/2233f31069)] - **build,tools,win**: trim unused VCBUILD\_PYTHON\_LOCATION variable (David Sanders) [#41235](https://github.com/nodejs/node/pull/41235)
+* \[[`d9465ae614`](https://github.com/nodejs/node/commit/d9465ae614)] - **child\_process**: queue pending messages (Erick Wendel) [#41221](https://github.com/nodejs/node/pull/41221)
+* \[[`ed41fd110d`](https://github.com/nodejs/node/commit/ed41fd110d)] - **child\_process**: revise argument processing (Rich Trott) [#41280](https://github.com/nodejs/node/pull/41280)
+* \[[`ef6f98c2e3`](https://github.com/nodejs/node/commit/ef6f98c2e3)] - **(SEMVER-MINOR)** **child\_process**: add support for URL to `cp.fork` (Antoine du Hamel) [#41225](https://github.com/nodejs/node/pull/41225)
+* \[[`d62fe315c2`](https://github.com/nodejs/node/commit/d62fe315c2)] - **(SEMVER-MINOR)** **crypto**: alias webcrypto.subtle and webcrypto.getRandomValues on crypto (James M Snell) [#41266](https://github.com/nodejs/node/pull/41266)
+* \[[`8ea56a9606`](https://github.com/nodejs/node/commit/8ea56a9606)] - **crypto**: fix error capture when loading engine (Tobias Nießen) [#41187](https://github.com/nodejs/node/pull/41187)
+* \[[`f5b8aee1a1`](https://github.com/nodejs/node/commit/f5b8aee1a1)] - **deps**: upgrade npm to 8.3.1 (npm-robot) [#41503](https://github.com/nodejs/node/pull/41503)
+* \[[`af3acecd7e`](https://github.com/nodejs/node/commit/af3acecd7e)] - **deps**: V8: cherry-pick 3b6b21f595f6 (Michaël Zasso) [#41457](https://github.com/nodejs/node/pull/41457)
+* \[[`02ca5d7c7c`](https://github.com/nodejs/node/commit/02ca5d7c7c)] - **deps**: upgrade to libuv 1.43.0 (Colin Ihrig) [#41398](https://github.com/nodejs/node/pull/41398)
+* \[[`48e4780fd7`](https://github.com/nodejs/node/commit/48e4780fd7)] - **doc**: remove statement about client private keys (Tobias Nießen) [#41505](https://github.com/nodejs/node/pull/41505)
+* \[[`ba7160e815`](https://github.com/nodejs/node/commit/ba7160e815)] - **doc**: fix typo in `onboarding.md` (Antoine du Hamel) [#41544](https://github.com/nodejs/node/pull/41544)
+* \[[`fcb37e9ce5`](https://github.com/nodejs/node/commit/fcb37e9ce5)] - **doc**: add Mesteery to collaborators (Mestery) [#41543](https://github.com/nodejs/node/pull/41543)
+* \[[`abbfed8789`](https://github.com/nodejs/node/commit/abbfed8789)] - **doc**: add missing word in readable.read() text (Rich Trott) [#41524](https://github.com/nodejs/node/pull/41524)
+* \[[`712dfdc11f`](https://github.com/nodejs/node/commit/712dfdc11f)] - **doc**: add missing YAML tag in `esm.md` (Antoine du Hamel) [#41516](https://github.com/nodejs/node/pull/41516)
+* \[[`f443a4e8fa`](https://github.com/nodejs/node/commit/f443a4e8fa)] - **doc**: expand fs.access() mode parameter docs (Colin Ihrig) [#41484](https://github.com/nodejs/node/pull/41484)
+* \[[`5c0c459976`](https://github.com/nodejs/node/commit/5c0c459976)] - **doc**: correct checkHost behavior with wildcards etc (Tobias Nießen) [#41468](https://github.com/nodejs/node/pull/41468)
+* \[[`c632241440`](https://github.com/nodejs/node/commit/c632241440)] - **doc**: remove extraneous colon in legacy subject (Tobias Nießen) [#41477](https://github.com/nodejs/node/pull/41477)
+* \[[`b7b0631b10`](https://github.com/nodejs/node/commit/b7b0631b10)] - **doc**: remove SameValue comparison reference (Rich Trott) [#41460](https://github.com/nodejs/node/pull/41460)
+* \[[`524103d6bf`](https://github.com/nodejs/node/commit/524103d6bf)] - **doc**: update mailmap entries for mhdawson (Michael Dawson) [#41437](https://github.com/nodejs/node/pull/41437)
+* \[[`62aa190c01`](https://github.com/nodejs/node/commit/62aa190c01)] - **doc**: add guidance on order vulns are listed in (Michael Dawson) [#41429](https://github.com/nodejs/node/pull/41429)
+* \[[`d721a758b2`](https://github.com/nodejs/node/commit/d721a758b2)] - **doc**: update output in inspector examples (David Sanders) [#41390](https://github.com/nodejs/node/pull/41390)
+* \[[`60025bde16`](https://github.com/nodejs/node/commit/60025bde16)] - **doc**: add note regarding unfinished TLA (Antoine du Hamel) [#41434](https://github.com/nodejs/node/pull/41434)
+* \[[`10bdb5969e`](https://github.com/nodejs/node/commit/10bdb5969e)] - **doc**: add reference for `===` operator in assert.md (Rich Trott) [#41442](https://github.com/nodejs/node/pull/41442)
+* \[[`edc6a7af42`](https://github.com/nodejs/node/commit/edc6a7af42)] - **doc**: clarify `uncaughtException` `origin` for ESM (Antoine du Hamel) [#41339](https://github.com/nodejs/node/pull/41339)
+* \[[`4a369d03b4`](https://github.com/nodejs/node/commit/4a369d03b4)] - **doc**: revise HTTPRequestOptions text (Rich Trott) [#41407](https://github.com/nodejs/node/pull/41407)
+* \[[`f43bfe2e16`](https://github.com/nodejs/node/commit/f43bfe2e16)] - **doc**: add reference for == and != operators (Rich Trott) [#41413](https://github.com/nodejs/node/pull/41413)
+* \[[`d3111bf0cc`](https://github.com/nodejs/node/commit/d3111bf0cc)] - **doc**: add @RaisinTen to the TSC (Michael Dawson) [#41419](https://github.com/nodejs/node/pull/41419)
+* \[[`e6bed4e972`](https://github.com/nodejs/node/commit/e6bed4e972)] - **doc**: update Abstract Equality Comparison text in assert.md (Rich Trott) [#41375](https://github.com/nodejs/node/pull/41375)
+* \[[`19db19bb80`](https://github.com/nodejs/node/commit/19db19bb80)] - **doc**: fix example commands for `REPLACEME` updates (Richard Lau) [#41269](https://github.com/nodejs/node/pull/41269)
+* \[[`16c0bea91d`](https://github.com/nodejs/node/commit/16c0bea91d)] - **doc**: document that `require.main` may be `undefined` (Antoine du Hamel) [#41384](https://github.com/nodejs/node/pull/41384)
+* \[[`014d4836ec`](https://github.com/nodejs/node/commit/014d4836ec)] - **doc**: clarify entry point behavior when using loader hooks (Antoine du Hamel) [#41304](https://github.com/nodejs/node/pull/41304)
+* \[[`6460b1b32d`](https://github.com/nodejs/node/commit/6460b1b32d)] - **doc**: clarify `require` behavior with non `.js` extensions (Antoine du Hamel) [#41345](https://github.com/nodejs/node/pull/41345)
+* \[[`0d18a8c232`](https://github.com/nodejs/node/commit/0d18a8c232)] - **doc**: revise frozen-intrinsics text (Rich Trott) [#41342](https://github.com/nodejs/node/pull/41342)
+* \[[`c267bb2192`](https://github.com/nodejs/node/commit/c267bb2192)] - **doc**: fix example description for worker\_threads (Dmitry Petrov) [#41341](https://github.com/nodejs/node/pull/41341)
+* \[[`ffe17a84f2`](https://github.com/nodejs/node/commit/ffe17a84f2)] - **doc**: make pull-request guide default branch agnostic (Antoine du Hamel) [#41299](https://github.com/nodejs/node/pull/41299)
+* \[[`5cfc547997`](https://github.com/nodejs/node/commit/5cfc547997)] - **doc**: fix sync comment in observer snippet (Eric Jacobson) [#41262](https://github.com/nodejs/node/pull/41262)
+* \[[`3a80104b29`](https://github.com/nodejs/node/commit/3a80104b29)] - **doc**: remove section about amending commits in PR guide (Thiago Santos) [#41287](https://github.com/nodejs/node/pull/41287)
+* \[[`23f97ec04e`](https://github.com/nodejs/node/commit/23f97ec04e)] - **doc**: remove legacy in-page links in v8.md (Rich Trott) [#41291](https://github.com/nodejs/node/pull/41291)
+* \[[`e819685cec`](https://github.com/nodejs/node/commit/e819685cec)] - **doc**: include stack trace difference in ES modules (Marcos Bérgamo) [#41157](https://github.com/nodejs/node/pull/41157)
+* \[[`dac8407944`](https://github.com/nodejs/node/commit/dac8407944)] - **doc**: fix example in node-api docs (Michael Dawson) [#41264](https://github.com/nodejs/node/pull/41264)
+* \[[`29563abd85`](https://github.com/nodejs/node/commit/29563abd85)] - **doc**: add usage recommendation for writable.\_destroy (Rafael Gonzaga) [#41040](https://github.com/nodejs/node/pull/41040)
+* \[[`e27e8272f7`](https://github.com/nodejs/node/commit/e27e8272f7)] - **doc**: make function signature comply with JSDoc comment (Rich Trott) [#41242](https://github.com/nodejs/node/pull/41242)
+* \[[`d83a02994c`](https://github.com/nodejs/node/commit/d83a02994c)] - **doc**: align maxHeaderSize default with current value (Gil Pedersen) [#41183](https://github.com/nodejs/node/pull/41183)
+* \[[`730e25d7dd`](https://github.com/nodejs/node/commit/730e25d7dd)] - **doc**: add unhandledRejection to strict mode (Colin Ihrig) [#41194](https://github.com/nodejs/node/pull/41194)
+* \[[`74742c3618`](https://github.com/nodejs/node/commit/74742c3618)] - **doc**: adding estimated execution time (mawaregetsuka) [#41142](https://github.com/nodejs/node/pull/41142)
+* \[[`34ef5a7d4d`](https://github.com/nodejs/node/commit/34ef5a7d4d)] - **doc**: fix syntax error in nested conditions example (Mateusz Burzyński) [#41205](https://github.com/nodejs/node/pull/41205)
+* \[[`c9a4603913`](https://github.com/nodejs/node/commit/c9a4603913)] - **esm**: make `process.exit()` default to exit code 0 (Gang Chen) [#41388](https://github.com/nodejs/node/pull/41388)
+* \[[`8a94ca7a69`](https://github.com/nodejs/node/commit/8a94ca7a69)] - **esm**: refactor esm tests out of test/message (Geoffrey Booth) [#41352](https://github.com/nodejs/node/pull/41352)
+* \[[`5ebe086ea6`](https://github.com/nodejs/node/commit/5ebe086ea6)] - **esm**: reconcile JSDoc vs. actual parameter name (Rich Trott) [#41238](https://github.com/nodejs/node/pull/41238)
+* \[[`9fe304b8e8`](https://github.com/nodejs/node/commit/9fe304b8e8)] - **events**: clarify JSDoc entries (Rich Trott) [#41311](https://github.com/nodejs/node/pull/41311)
+* \[[`4079fc42b7`](https://github.com/nodejs/node/commit/4079fc42b7)] - **(SEMVER-MINOR)** **events**: graduate capturerejections to supported (James M Snell) [#41267](https://github.com/nodejs/node/pull/41267)
+* \[[`e3a0a9cb3a`](https://github.com/nodejs/node/commit/e3a0a9cb3a)] - **events**: add jsdoc details for Event and EventTarget (James M Snell) [#41274](https://github.com/nodejs/node/pull/41274)
+* \[[`fe21607901`](https://github.com/nodejs/node/commit/fe21607901)] - **(SEMVER-MINOR)** **events**: add EventEmitterAsyncResource to core (James M Snell) [#41246](https://github.com/nodejs/node/pull/41246)
+* \[[`d4a6f2caf1`](https://github.com/nodejs/node/commit/d4a6f2caf1)] - **fs**: use async directory processing in cp() (Colin Ihrig) [#41351](https://github.com/nodejs/node/pull/41351)
+* \[[`0951bd94db`](https://github.com/nodejs/node/commit/0951bd94db)] - **fs**: correct param names in JSDoc comments (Rich Trott) [#41237](https://github.com/nodejs/node/pull/41237)
+* \[[`1d75436a1c`](https://github.com/nodejs/node/commit/1d75436a1c)] - **http**: remove duplicate code (Shaw) [#39239](https://github.com/nodejs/node/pull/39239)
+* \[[`0aacd4926d`](https://github.com/nodejs/node/commit/0aacd4926d)] - **http2**: handle existing socket data when creating HTTP/2 server sessions (Tim Perry) [#41185](https://github.com/nodejs/node/pull/41185)
+* \[[`24fbbf2747`](https://github.com/nodejs/node/commit/24fbbf2747)] - **lib**: remove spurious JSDoc entry (Rich Trott) [#41240](https://github.com/nodejs/node/pull/41240)
+* \[[`e457ec05d6`](https://github.com/nodejs/node/commit/e457ec05d6)] - **lib**: fix checking syntax of esm module (Qingyu Deng) [#41198](https://github.com/nodejs/node/pull/41198)
+* \[[`f176124e8b`](https://github.com/nodejs/node/commit/f176124e8b)] - **lib,tools**: remove empty lines between JSDoc tags (Rich Trott) [#41147](https://github.com/nodejs/node/pull/41147)
+* \[[`68fd2ac999`](https://github.com/nodejs/node/commit/68fd2ac999)] - **loader**: fix package resolution for edge case (Gabriel Bota) [#41218](https://github.com/nodejs/node/pull/41218)
+* \[[`6d8eb6ace6`](https://github.com/nodejs/node/commit/6d8eb6ace6)] - **(SEMVER-MINOR)** **loader**: return package format from defaultResolve if known (Gabriel Bota) [#40980](https://github.com/nodejs/node/pull/40980)
+* \[[`a6146c7e27`](https://github.com/nodejs/node/commit/a6146c7e27)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#41456](https://github.com/nodejs/node/pull/41456)
+* \[[`07353e9b8b`](https://github.com/nodejs/node/commit/07353e9b8b)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#41475](https://github.com/nodejs/node/pull/41475)
+* \[[`e1ff4521d7`](https://github.com/nodejs/node/commit/e1ff4521d7)] - **meta**: correct my name in AUTHORS (Jacob Smith) [#41444](https://github.com/nodejs/node/pull/41444)
+* \[[`da1d5d6563`](https://github.com/nodejs/node/commit/da1d5d6563)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#41449](https://github.com/nodejs/node/pull/41449)
+* \[[`0f9afa58d5`](https://github.com/nodejs/node/commit/0f9afa58d5)] - **meta**: add required fields in issue templates (Rich Trott) [#41378](https://github.com/nodejs/node/pull/41378)
+* \[[`da04408075`](https://github.com/nodejs/node/commit/da04408075)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#41374](https://github.com/nodejs/node/pull/41374)
+* \[[`1f6c4e819b`](https://github.com/nodejs/node/commit/1f6c4e819b)] - **meta**: replace API docs issue template with form (Rich Trott) [#41348](https://github.com/nodejs/node/pull/41348)
+* \[[`253c3e5488`](https://github.com/nodejs/node/commit/253c3e5488)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#41336](https://github.com/nodejs/node/pull/41336)
+* \[[`3e188cacc2`](https://github.com/nodejs/node/commit/3e188cacc2)] - **meta**: replace feature request template with form (Rich Trott) [#41317](https://github.com/nodejs/node/pull/41317)
+* \[[`e339220511`](https://github.com/nodejs/node/commit/e339220511)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#41322](https://github.com/nodejs/node/pull/41322)
+* \[[`d0d595f8f2`](https://github.com/nodejs/node/commit/d0d595f8f2)] - **meta**: update node-api team name (Richard Lau) [#41268](https://github.com/nodejs/node/pull/41268)
+* \[[`a53fa2010b`](https://github.com/nodejs/node/commit/a53fa2010b)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#41248](https://github.com/nodejs/node/pull/41248)
+* \[[`edefb41ec1`](https://github.com/nodejs/node/commit/edefb41ec1)] - **meta**: update AUTHORS (Node.js GitHub Bot) [#41234](https://github.com/nodejs/node/pull/41234)
+* \[[`6da7909797`](https://github.com/nodejs/node/commit/6da7909797)] - **meta**: remove community-committee from CODEOWNERS (Rich Trott) [#41169](https://github.com/nodejs/node/pull/41169)
+* \[[`5fe011a24d`](https://github.com/nodejs/node/commit/5fe011a24d)] - **node-api**: add missing initialization of last error (Michael Dawson) [#41290](https://github.com/nodejs/node/pull/41290)
+* \[[`27c619140a`](https://github.com/nodejs/node/commit/27c619140a)] - **(SEMVER-MINOR)** **perf\_hooks**: multiple fixes for Histogram (James M Snell) [#41153](https://github.com/nodejs/node/pull/41153)
+* \[[`e60187d8ab`](https://github.com/nodejs/node/commit/e60187d8ab)] - **policy**: add missing JSDoc @param entry (Rich Trott) [#41239](https://github.com/nodejs/node/pull/41239)
+* \[[`ec9071f55d`](https://github.com/nodejs/node/commit/ec9071f55d)] - **src**: use `std::optional` for Worker thread id (Anna Henningsen) [#41453](https://github.com/nodejs/node/pull/41453)
+* \[[`6aec92f959`](https://github.com/nodejs/node/commit/6aec92f959)] - **src**: gracefully handle errors in GetX509NameObject (Tobias Nießen) [#41490](https://github.com/nodejs/node/pull/41490)
+* \[[`7ac126b75c`](https://github.com/nodejs/node/commit/7ac126b75c)] - **src**: fix out-of-bounds check of serialization indices (JoostK) [#41452](https://github.com/nodejs/node/pull/41452)
+* \[[`93b3664b9a`](https://github.com/nodejs/node/commit/93b3664b9a)] - **src**: do IWYU for some STL includes (David Sanders) [#41236](https://github.com/nodejs/node/pull/41236)
+* \[[`337ebfcd53`](https://github.com/nodejs/node/commit/337ebfcd53)] - **src**: split out async stack corruption detection from inline fn (Anna Henningsen) [#41331](https://github.com/nodejs/node/pull/41331)
+* \[[`250e197a62`](https://github.com/nodejs/node/commit/250e197a62)] - **src**: store native async execution resources as `v8::Local` (Anna Henningsen) [#41331](https://github.com/nodejs/node/pull/41331)
+* \[[`6187e81a8e`](https://github.com/nodejs/node/commit/6187e81a8e)] - **src**: guard slightly costly check in MakeCallback more strongly (Anna Henningsen) [#41331](https://github.com/nodejs/node/pull/41331)
+* \[[`51d86fe6a0`](https://github.com/nodejs/node/commit/51d86fe6a0)] - **stream**: remove always-false condition check (Rich Trott) [#41488](https://github.com/nodejs/node/pull/41488)
+* \[[`b08138f367`](https://github.com/nodejs/node/commit/b08138f367)] - **stream**: fix error-path function call (Rich Trott) [#41433](https://github.com/nodejs/node/pull/41433)
+* \[[`d79f8c2987`](https://github.com/nodejs/node/commit/d79f8c2987)] - **stream**: remove unused function argument (Rich Trott) [#41403](https://github.com/nodejs/node/pull/41403)
+* \[[`09c25bb224`](https://github.com/nodejs/node/commit/09c25bb224)] - **(SEMVER-MINOR)** **stream**: add filter method to readable (Benjamin Gruenbaum) [#41354](https://github.com/nodejs/node/pull/41354)
+* \[[`1150963217`](https://github.com/nodejs/node/commit/1150963217)] - **(SEMVER-MINOR)** **stream**: add isReadable helper (Robert Nagy) [#41199](https://github.com/nodejs/node/pull/41199)
+* \[[`9f5a873965`](https://github.com/nodejs/node/commit/9f5a873965)] - **(SEMVER-MINOR)** **stream**: add map method to Readable (Benjamin Gruenbaum) [#40815](https://github.com/nodejs/node/pull/40815)
+* \[[`3dc65646c8`](https://github.com/nodejs/node/commit/3dc65646c8)] - **stream**: fix enqueue race condition on esm modules (Rafael Gonzaga) [#40901](https://github.com/nodejs/node/pull/40901)
+* \[[`09f2fd36a4`](https://github.com/nodejs/node/commit/09f2fd36a4)] - **test**: improve test coverage of dns/promises (Yoshiki Kurihara) [#41425](https://github.com/nodejs/node/pull/41425)
+* \[[`106ef0cef4`](https://github.com/nodejs/node/commit/106ef0cef4)] - **test**: remove broken wiki link from test/common doc (Yoshiki Kurihara) [#41426](https://github.com/nodejs/node/pull/41426)
+* \[[`9d8d7c63cb`](https://github.com/nodejs/node/commit/9d8d7c63cb)] - **test**: do not OR F\_OK in fs.access() test (Colin Ihrig) [#41484](https://github.com/nodejs/node/pull/41484)
+* \[[`3e2154deda`](https://github.com/nodejs/node/commit/3e2154deda)] - **test**: mark test-performance-eventloopdelay flaky (Michael Dawson) [#41409](https://github.com/nodejs/node/pull/41409)
+* \[[`e808ee68d0`](https://github.com/nodejs/node/commit/e808ee68d0)] - **test**: mark test-repl-sigint-nested-eval as flaky (Michael Dawson) [#41302](https://github.com/nodejs/node/pull/41302)
+* \[[`f97f6c585d`](https://github.com/nodejs/node/commit/f97f6c585d)] - **test**: use spawnSync() full name in test-stdio-pipe-stderr (Rich Trott) [#41332](https://github.com/nodejs/node/pull/41332)
+* \[[`75c565bf18`](https://github.com/nodejs/node/commit/75c565bf18)] - **test**: improve expectWarning error message (Rich Trott) [#41326](https://github.com/nodejs/node/pull/41326)
+* \[[`c136d597f0`](https://github.com/nodejs/node/commit/c136d597f0)] - **test**: use spawnSync() full name (Rich Trott) [#41327](https://github.com/nodejs/node/pull/41327)
+* \[[`b2a87f770d`](https://github.com/nodejs/node/commit/b2a87f770d)] - **test**: add comments explaining \_setSimultaneousAccepts deprecation tests (Yoshiki Kurihara) [#41307](https://github.com/nodejs/node/pull/41307)
+* \[[`fac0871102`](https://github.com/nodejs/node/commit/fac0871102)] - **test**: mark test-worker-take-heapsnapshot flaky (Michael Dawson) [#41253](https://github.com/nodejs/node/pull/41253)
+* \[[`90617b9303`](https://github.com/nodejs/node/commit/90617b9303)] - **test**: mark wpt/test-user-timing test flaky (Michael Dawson) [#41203](https://github.com/nodejs/node/pull/41203)
+* \[[`8f08328a01`](https://github.com/nodejs/node/commit/8f08328a01)] - **test**: correct param name in JSDoc comment (Rich Trott) [#41241](https://github.com/nodejs/node/pull/41241)
+* \[[`367ab2a55e`](https://github.com/nodejs/node/commit/367ab2a55e)] - **test**: mark test-crypto-keygen slow on windows (Michael Dawson) [#41207](https://github.com/nodejs/node/pull/41207)
+* \[[`f067876338`](https://github.com/nodejs/node/commit/f067876338)] - **test**: improve test coverage of dns/promises (Yoshiki Kurihara) [#41133](https://github.com/nodejs/node/pull/41133)
+* \[[`2e92f6f5d9`](https://github.com/nodejs/node/commit/2e92f6f5d9)] - **timers**: use ref counts to count timers (Darshan Sen) [#41231](https://github.com/nodejs/node/pull/41231)
+* \[[`3c8b25bec8`](https://github.com/nodejs/node/commit/3c8b25bec8)] - **tls**: use optional chaining to simplify checks (Antoine du Hamel) [#41337](https://github.com/nodejs/node/pull/41337)
+* \[[`a11ff31bca`](https://github.com/nodejs/node/commit/a11ff31bca)] - **tls**: permit null as a pfx value (CallMeLaNN) [#41170](https://github.com/nodejs/node/pull/41170)
+* \[[`5129b7c802`](https://github.com/nodejs/node/commit/5129b7c802)] - **tools**: fix small not-quite-a-bug in find-inactive-tsc.mjs (Rich Trott) [#41469](https://github.com/nodejs/node/pull/41469)
+* \[[`258ee4ba64`](https://github.com/nodejs/node/commit/258ee4ba64)] - **tools**: enable ESLint recommended configuration (Rich Trott) [#41463](https://github.com/nodejs/node/pull/41463)
+* \[[`090a674a81`](https://github.com/nodejs/node/commit/090a674a81)] - **tools**: enable ESLint no-constant-condition rule (Rich Trott) [#41463](https://github.com/nodejs/node/pull/41463)
+* \[[`1f4369a106`](https://github.com/nodejs/node/commit/1f4369a106)] - **tools**: enable ESLint require-yield rule (Rich Trott) [#41463](https://github.com/nodejs/node/pull/41463)
+* \[[`8090ce7a6c`](https://github.com/nodejs/node/commit/8090ce7a6c)] - **tools**: enable ESLint no-sparse-arrays rule (Rich Trott) [#41463](https://github.com/nodejs/node/pull/41463)
+* \[[`afa4f37faf`](https://github.com/nodejs/node/commit/afa4f37faf)] - **tools**: enable ESLint no-loss-of-precision rule (Rich Trott) [#41463](https://github.com/nodejs/node/pull/41463)
+* \[[`ec337b2019`](https://github.com/nodejs/node/commit/ec337b2019)] - **tools**: replace for loop with map() (Rich Trott) [#41451](https://github.com/nodejs/node/pull/41451)
+* \[[`c91ac205a5`](https://github.com/nodejs/node/commit/c91ac205a5)] - **tools**: use GITHUB\_ACTIONS env var in inactivity scripts (Rich Trott) [#41422](https://github.com/nodejs/node/pull/41422)
+* \[[`4a57d476a8`](https://github.com/nodejs/node/commit/4a57d476a8)] - **tools**: replace while+exec() with matchAll() (Rich Trott) [#41406](https://github.com/nodejs/node/pull/41406)
+* \[[`583f8d969a`](https://github.com/nodejs/node/commit/583f8d969a)] - **tools**: fix argv bug in find-inactive-tsc.mjs (Rich Trott) [#41394](https://github.com/nodejs/node/pull/41394)
+* \[[`dcada80f30`](https://github.com/nodejs/node/commit/dcada80f30)] - **tools**: remove conditional assignment in custom ESLint rule (Rich Trott) [#41325](https://github.com/nodejs/node/pull/41325)
+* \[[`e15e1cb030`](https://github.com/nodejs/node/commit/e15e1cb030)] - **tools**: update lint-md-dependencies to @rollup/plugin-node-resolve\@13.1.2 (Node.js GitHub Bot) [#41369](https://github.com/nodejs/node/pull/41369)
+* \[[`07683021b7`](https://github.com/nodejs/node/commit/07683021b7)] - **tools**: update doc to rehype-raw\@6.1.1 (Node.js GitHub Bot) [#41367](https://github.com/nodejs/node/pull/41367)
+* \[[`bd8b95a5e8`](https://github.com/nodejs/node/commit/bd8b95a5e8)] - **tools**: remove last of error-masking in commit-queue.sh (Rich Trott) [#41356](https://github.com/nodejs/node/pull/41356)
+* \[[`9284d24df6`](https://github.com/nodejs/node/commit/9284d24df6)] - **tools**: update eslint to 8.6.0 (Node.js GitHub Bot) [#41368](https://github.com/nodejs/node/pull/41368)
+* \[[`5fc886f68e`](https://github.com/nodejs/node/commit/5fc886f68e)] - **tools**: do not mask errors on multiple commit retrieval (Rich Trott) [#41340](https://github.com/nodejs/node/pull/41340)
+* \[[`0ca7cda962`](https://github.com/nodejs/node/commit/0ca7cda962)] - **tools**: enable jsdoc/check-param-names lint rule (Rich Trott) [#41311](https://github.com/nodejs/node/pull/41311)
+* \[[`75ff8e6505`](https://github.com/nodejs/node/commit/75ff8e6505)] - **tools**: improve section tag additions in HTML doc generator (Rich Trott) [#41318](https://github.com/nodejs/node/pull/41318)
+* \[[`9c4124706e`](https://github.com/nodejs/node/commit/9c4124706e)] - **tools**: simplify commit-queue.sh merge command (Rich Trott) [#41314](https://github.com/nodejs/node/pull/41314)
+* \[[`137c814848`](https://github.com/nodejs/node/commit/137c814848)] - **tools**: update lint-md-dependencies to rollup\@2.62.0 (Node.js GitHub Bot) [#41315](https://github.com/nodejs/node/pull/41315)
+* \[[`58da5d9b43`](https://github.com/nodejs/node/commit/58da5d9b43)] - **tools**: use Object.hasOwn() in alljson.mjs (Rich Trott) [#41306](https://github.com/nodejs/node/pull/41306)
+* \[[`c12cbf2020`](https://github.com/nodejs/node/commit/c12cbf2020)] - **tools**: avoid generating duplicate id attributes (Rich Trott) [#41291](https://github.com/nodejs/node/pull/41291)
+* \[[`80a114d1b7`](https://github.com/nodejs/node/commit/80a114d1b7)] - **tools**: be intentional about masking possible error in start-ci.sh (Rich Trott) [#41284](https://github.com/nodejs/node/pull/41284)
+* \[[`198528426d`](https://github.com/nodejs/node/commit/198528426d)] - **tools**: use {N} for spaces in regex (Rich Trott) [#41295](https://github.com/nodejs/node/pull/41295)
+* \[[`46b364a684`](https://github.com/nodejs/node/commit/46b364a684)] - **tools**: consolidate update-authors.js logic (Rich Trott) [#41255](https://github.com/nodejs/node/pull/41255)
+* \[[`c546cef4bc`](https://github.com/nodejs/node/commit/c546cef4bc)] - **tools**: update doc dependency mdast-util-gfm-table to 1.0.2 (Rich Trott) [#41260](https://github.com/nodejs/node/pull/41260)
+* \[[`60c059e4bc`](https://github.com/nodejs/node/commit/60c059e4bc)] - **tools**: make license-builder.sh comply with shellcheck 0.8.0 (Rich Trott) [#41258](https://github.com/nodejs/node/pull/41258)
+* \[[`62e28f19f7`](https://github.com/nodejs/node/commit/62e28f19f7)] - **tools**: use arrow function for callback in lint-sh.js (Rich Trott) [#41256](https://github.com/nodejs/node/pull/41256)
+* \[[`e2df381da9`](https://github.com/nodejs/node/commit/e2df381da9)] - **tools**: add double-quotes to make-v8.sh (Rich Trott) [#41257](https://github.com/nodejs/node/pull/41257)
+* \[[`dae2e5fffa`](https://github.com/nodejs/node/commit/dae2e5fffa)] - **tools**: enable prefer-object-has-own lint rule (Rich Trott) [#41245](https://github.com/nodejs/node/pull/41245)
+* \[[`aa7d14768d`](https://github.com/nodejs/node/commit/aa7d14768d)] - **tools**: update eslint to 8.5.0 (Node.js GitHub Bot) [#41228](https://github.com/nodejs/node/pull/41228)
+* \[[`0c14e7e7c8`](https://github.com/nodejs/node/commit/0c14e7e7c8)] - **tools**: enable jsdoc/tag-lines ESLint rule (Rich Trott) [#41147](https://github.com/nodejs/node/pull/41147)
+* \[[`c486da1715`](https://github.com/nodejs/node/commit/c486da1715)] - **tools**: update lint-md-dependencies to @rollup/plugin-node-resolve\@13.1.1 (Node.js GitHub Bot) [#41227](https://github.com/nodejs/node/pull/41227)
+* \[[`82f492bbb0`](https://github.com/nodejs/node/commit/82f492bbb0)] - **tools**: fix CQ and auto-start-ci jobs (Antoine du Hamel) [#41230](https://github.com/nodejs/node/pull/41230)
+* \[[`c44185ca37`](https://github.com/nodejs/node/commit/c44185ca37)] - **tools**: fix GitHub Actions status when CQ is empty (Antoine du Hamel) [#41193](https://github.com/nodejs/node/pull/41193)
+* \[[`800640adf9`](https://github.com/nodejs/node/commit/800640adf9)] - **tools,benchmark,lib,test**: enable no-case-declarations lint rule (Rich Trott) [#41385](https://github.com/nodejs/node/pull/41385)
+* \[[`4518fdda24`](https://github.com/nodejs/node/commit/4518fdda24)] - **tools,lib,test**: enable ESLint no-regex-spaces rule (Rich Trott) [#41463](https://github.com/nodejs/node/pull/41463)
+* \[[`c8e8fc0ecb`](https://github.com/nodejs/node/commit/c8e8fc0ecb)] - **typings**: add types for symbol and accessor properties on `primordials` (ExE Boss) [#40992](https://github.com/nodejs/node/pull/40992)
+* \[[`d733b56101`](https://github.com/nodejs/node/commit/d733b56101)] - **typings**: add JSDoc for `string_decoder` (Qingyu Deng) [#38229](https://github.com/nodejs/node/pull/38229)
+* \[[`01ad8debd3`](https://github.com/nodejs/node/commit/01ad8debd3)] - **url,lib**: pass urlsearchparams-constructor.any.js (Khaidi Chu) [#41197](https://github.com/nodejs/node/pull/41197)
+* \[[`5ed8a1c017`](https://github.com/nodejs/node/commit/5ed8a1c017)] - **util**: do not reduce to a single line if not appropriate using inspect (Ruben Bridgewater) [#41083](https://github.com/nodejs/node/pull/41083)
+* \[[`ab5e94c832`](https://github.com/nodejs/node/commit/ab5e94c832)] - **util**: display a present-but-undefined error cause (Jordan Harband) [#41247](https://github.com/nodejs/node/pull/41247)
+
## 2022-01-10, Version 17.3.1 (Current), @BethGriggs
diff --git a/src/node_version.h b/src/node_version.h
index 78500c72cc25a9..3747ef4a99e4eb 100644
--- a/src/node_version.h
+++ b/src/node_version.h
@@ -23,13 +23,13 @@
#define SRC_NODE_VERSION_H_
#define NODE_MAJOR_VERSION 17
-#define NODE_MINOR_VERSION 3
-#define NODE_PATCH_VERSION 2
+#define NODE_MINOR_VERSION 4
+#define NODE_PATCH_VERSION 0
#define NODE_VERSION_IS_LTS 0
#define NODE_VERSION_LTS_CODENAME ""
-#define NODE_VERSION_IS_RELEASE 0
+#define NODE_VERSION_IS_RELEASE 1
#ifndef NODE_STRINGIFY
#define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)
|