diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7d3999d1291b0a..daa91c3d68404d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,7 @@
Select a Node.js version below to view the changelog history:
+* [Node.js 21](doc/changelogs/CHANGELOG_V21.md) **Current**
* [Node.js 20](doc/changelogs/CHANGELOG_V20.md) **Current**
* [Node.js 19](doc/changelogs/CHANGELOG_V19.md) End-of-Life
* [Node.js 18](doc/changelogs/CHANGELOG_V18.md) **Long Term Support**
@@ -29,11 +30,15 @@ release.
+ 21 (Current) |
20 (Current) |
18 (LTS) |
+21.0.0
+ |
+
20.8.0
20.7.0
20.6.1
diff --git a/doc/changelogs/CHANGELOG_ARCHIVE.md b/doc/changelogs/CHANGELOG_ARCHIVE.md
index 14fe32c7f5a48e..984f342e13cb2d 100644
--- a/doc/changelogs/CHANGELOG_ARCHIVE.md
+++ b/doc/changelogs/CHANGELOG_ARCHIVE.md
@@ -154,6 +154,7 @@
|
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_IOJS.md b/doc/changelogs/CHANGELOG_IOJS.md
index 3620e81235c5d9..2a3afd4952ad26 100644
--- a/doc/changelogs/CHANGELOG_IOJS.md
+++ b/doc/changelogs/CHANGELOG_IOJS.md
@@ -62,6 +62,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V010.md b/doc/changelogs/CHANGELOG_V010.md
index af40d61d460c23..c4e3305f3ab6ed 100644
--- a/doc/changelogs/CHANGELOG_V010.md
+++ b/doc/changelogs/CHANGELOG_V010.md
@@ -64,6 +64,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [18.x](CHANGELOG_V18.md)
* [17.x](CHANGELOG_V17.md)
diff --git a/doc/changelogs/CHANGELOG_V012.md b/doc/changelogs/CHANGELOG_V012.md
index 00be56d2d14f3e..80b905f2bcae76 100644
--- a/doc/changelogs/CHANGELOG_V012.md
+++ b/doc/changelogs/CHANGELOG_V012.md
@@ -32,6 +32,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [18.x](CHANGELOG_V18.md)
* [17.x](CHANGELOG_V17.md)
diff --git a/doc/changelogs/CHANGELOG_V10.md b/doc/changelogs/CHANGELOG_V10.md
index 718b0048f3bd8f..aa7ad43df5fa5b 100644
--- a/doc/changelogs/CHANGELOG_V10.md
+++ b/doc/changelogs/CHANGELOG_V10.md
@@ -58,6 +58,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V11.md b/doc/changelogs/CHANGELOG_V11.md
index 16cf3ec7cb5e0c..6ee1b216946bac 100644
--- a/doc/changelogs/CHANGELOG_V11.md
+++ b/doc/changelogs/CHANGELOG_V11.md
@@ -30,6 +30,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
* [17.x](CHANGELOG_V17.md)
diff --git a/doc/changelogs/CHANGELOG_V12.md b/doc/changelogs/CHANGELOG_V12.md
index fe3f7c75c3e27a..3e791c36f55afd 100644
--- a/doc/changelogs/CHANGELOG_V12.md
+++ b/doc/changelogs/CHANGELOG_V12.md
@@ -67,6 +67,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V13.md b/doc/changelogs/CHANGELOG_V13.md
index 46cfc1d50590e9..ceca04933d3060 100644
--- a/doc/changelogs/CHANGELOG_V13.md
+++ b/doc/changelogs/CHANGELOG_V13.md
@@ -30,6 +30,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V14.md b/doc/changelogs/CHANGELOG_V14.md
index 903887d669d6a3..5478345472816c 100644
--- a/doc/changelogs/CHANGELOG_V14.md
+++ b/doc/changelogs/CHANGELOG_V14.md
@@ -62,6 +62,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V15.md b/doc/changelogs/CHANGELOG_V15.md
index 5bc4c75dab9766..c4d0c689002728 100644
--- a/doc/changelogs/CHANGELOG_V15.md
+++ b/doc/changelogs/CHANGELOG_V15.md
@@ -31,6 +31,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V16.md b/doc/changelogs/CHANGELOG_V16.md
index 4c081b0a77c9d0..c1f44c1c84ab3e 100644
--- a/doc/changelogs/CHANGELOG_V16.md
+++ b/doc/changelogs/CHANGELOG_V16.md
@@ -53,6 +53,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V17.md b/doc/changelogs/CHANGELOG_V17.md
index 5c21ba09c382a3..cf31f6d5474602 100644
--- a/doc/changelogs/CHANGELOG_V17.md
+++ b/doc/changelogs/CHANGELOG_V17.md
@@ -28,6 +28,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V18.md b/doc/changelogs/CHANGELOG_V18.md
index 9640d12c3967e0..e3baef51982317 100644
--- a/doc/changelogs/CHANGELOG_V18.md
+++ b/doc/changelogs/CHANGELOG_V18.md
@@ -41,6 +41,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [17.x](CHANGELOG_V17.md)
diff --git a/doc/changelogs/CHANGELOG_V19.md b/doc/changelogs/CHANGELOG_V19.md
index a9020012c99c84..0b417bd1489f44 100644
--- a/doc/changelogs/CHANGELOG_V19.md
+++ b/doc/changelogs/CHANGELOG_V19.md
@@ -26,6 +26,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [18.x](CHANGELOG_V18.md)
* [17.x](CHANGELOG_V17.md)
diff --git a/doc/changelogs/CHANGELOG_V20.md b/doc/changelogs/CHANGELOG_V20.md
index 27f295c830671b..a288c4e03ef4fd 100644
--- a/doc/changelogs/CHANGELOG_V20.md
+++ b/doc/changelogs/CHANGELOG_V20.md
@@ -25,6 +25,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
* [17.x](CHANGELOG_V17.md)
diff --git a/doc/changelogs/CHANGELOG_V21.md b/doc/changelogs/CHANGELOG_V21.md
new file mode 100644
index 00000000000000..3473295b63f52a
--- /dev/null
+++ b/doc/changelogs/CHANGELOG_V21.md
@@ -0,0 +1,86 @@
+# Node.js 21 ChangeLog
+
+
+
+
+
+Current |
+
+
+
+21.0.0
+ |
+
+
+
+* Other Versions
+ * [20.x](CHANGELOG_V20.md)
+ * [19.x](CHANGELOG_V19.md)
+ * [18.x](CHANGELOG_V18.md)
+ * [17.x](CHANGELOG_V17.md)
+ * [16.x](CHANGELOG_V16.md)
+ * [15.x](CHANGELOG_V15.md)
+ * [14.x](CHANGELOG_V14.md)
+ * [13.x](CHANGELOG_V13.md)
+ * [12.x](CHANGELOG_V12.md)
+ * [11.x](CHANGELOG_V11.md)
+ * [10.x](CHANGELOG_V10.md)
+ * [9.x](CHANGELOG_V9.md)
+ * [8.x](CHANGELOG_V8.md)
+ * [7.x](CHANGELOG_V7.md)
+ * [6.x](CHANGELOG_V6.md)
+ * [5.x](CHANGELOG_V5.md)
+ * [4.x](CHANGELOG_V4.md)
+ * [0.12.x](CHANGELOG_V012.md)
+ * [0.10.x](CHANGELOG_V010.md)
+ * [io.js](CHANGELOG_IOJS.md)
+ * [Archive](CHANGELOG_ARCHIVE.md)
+
+
+
+## 2023-10-17, Version 21.0.0 (Current), @RafaelGSS and @targos
+
+// Intro
+
+Node.js 21 will replace Node.js 20 as our ‘Current’ release line when Node.js 20 enters long-term support (LTS) later this month.
+As per the release schedule, Node.js 21 will be ‘Current' release for the next 6 months, until April 2024.
+
+### Notable Changes
+
+//
+
+### Semver-Major Commits
+
+* \[[`4e3983031a`](https://github.com/nodejs/node/commit/4e3983031a)] - **(SEMVER-MAJOR)** **build**: bump supported macOS and Xcode versions (Michaël Zasso) [#49164](https://github.com/nodejs/node/pull/49164)
+* \[[`5a0777776d`](https://github.com/nodejs/node/commit/5a0777776d)] - **(SEMVER-MAJOR)** **crypto**: do not overwrite \_writableState.defaultEncoding (Tobias Nießen) [#49140](https://github.com/nodejs/node/pull/49140)
+* \[[`e9ff81016d`](https://github.com/nodejs/node/commit/e9ff81016d)] - **(SEMVER-MAJOR)** **deps**: update llhttp to 9.1.2 (Paolo Insogna) [#48981](https://github.com/nodejs/node/pull/48981)
+* \[[`7ace5aba75`](https://github.com/nodejs/node/commit/7ace5aba75)] - **(SEMVER-MAJOR)** **events**: validate options of `on` and `once` (Deokjin Kim) [#46018](https://github.com/nodejs/node/pull/46018)
+* \[[`b3ec13d449`](https://github.com/nodejs/node/commit/b3ec13d449)] - **(SEMVER-MAJOR)** **fs**: adjust `position` validation in reading methods (Livia Medeiros) [#42835](https://github.com/nodejs/node/pull/42835)
+* \[[`1948dce707`](https://github.com/nodejs/node/commit/1948dce707)] - **(SEMVER-MAJOR)** **fs**: add globSync implementation (Moshe Atlow) [#47653](https://github.com/nodejs/node/pull/47653)
+* \[[`c5b0b894ed`](https://github.com/nodejs/node/commit/c5b0b894ed)] - **(SEMVER-MAJOR)** **lib**: mark URL/URLSearchParams as uncloneable and untransferable (Chengzhong Wu) [#47497](https://github.com/nodejs/node/pull/47497)
+* \[[`3205b1936a`](https://github.com/nodejs/node/commit/3205b1936a)] - **(SEMVER-MAJOR)** **lib**: remove aix directory case for package reader (Yagiz Nizipli) [#48605](https://github.com/nodejs/node/pull/48605)
+* \[[`b40f0c3074`](https://github.com/nodejs/node/commit/b40f0c3074)] - **(SEMVER-MAJOR)** **lib**: add `navigator.hardwareConcurrency` (Yagiz Nizipli) [#47769](https://github.com/nodejs/node/pull/47769)
+* \[[`4b08c4c047`](https://github.com/nodejs/node/commit/4b08c4c047)] - **(SEMVER-MAJOR)** **lib**: runtime deprecate punycode (Yagiz Nizipli) [#47202](https://github.com/nodejs/node/pull/47202)
+* \[[`3ce51ae9c0`](https://github.com/nodejs/node/commit/3ce51ae9c0)] - **(SEMVER-MAJOR)** **module**: harmonize error code between ESM and CJS (Antoine du Hamel) [#48606](https://github.com/nodejs/node/pull/48606)
+* \[[`7202859402`](https://github.com/nodejs/node/commit/7202859402)] - **(SEMVER-MAJOR)** **net**: do not treat `server.maxConnections=0` as `Infinity` (ignoramous) [#48276](https://github.com/nodejs/node/pull/48276)
+* \[[`c15bafdaf4`](https://github.com/nodejs/node/commit/c15bafdaf4)] - **(SEMVER-MAJOR)** **net**: only defer \_final call when connecting (Jason Zhang) [#47385](https://github.com/nodejs/node/pull/47385)
+* \[[`6ffacbf0f9`](https://github.com/nodejs/node/commit/6ffacbf0f9)] - **(SEMVER-MAJOR)** **node-api**: rename internal NAPI\_VERSION definition (Chengzhong Wu) [#48501](https://github.com/nodejs/node/pull/48501)
+* \[[`d920b7c94b`](https://github.com/nodejs/node/commit/d920b7c94b)] - **(SEMVER-MAJOR)** **src**: throw DOMException on cloning non-serializable objects (Chengzhong Wu) [#47839](https://github.com/nodejs/node/pull/47839)
+* \[[`64549731b6`](https://github.com/nodejs/node/commit/64549731b6)] - **(SEMVER-MAJOR)** **src**: throw DataCloneError on transfering untransferable objects (Chengzhong Wu) [#47604](https://github.com/nodejs/node/pull/47604)
+* \[[`dac8de689b`](https://github.com/nodejs/node/commit/dac8de689b)] - **(SEMVER-MAJOR)** **stream**: use private properties for strategies (Yagiz Nizipli) [#47218](https://github.com/nodejs/node/pull/47218)
+* \[[`1fa084ecdf`](https://github.com/nodejs/node/commit/1fa084ecdf)] - **(SEMVER-MAJOR)** **stream**: use private properties for encoding (Yagiz Nizipli) [#47218](https://github.com/nodejs/node/pull/47218)
+* \[[`4e93247079`](https://github.com/nodejs/node/commit/4e93247079)] - **(SEMVER-MAJOR)** **stream**: use private properties for compression (Yagiz Nizipli) [#47218](https://github.com/nodejs/node/pull/47218)
+* \[[`527589b755`](https://github.com/nodejs/node/commit/527589b755)] - **(SEMVER-MAJOR)** **test\_runner**: disallow array in `run` options (Raz Luvaton) [#49935](https://github.com/nodejs/node/pull/49935)
+* \[[`7cd4e70948`](https://github.com/nodejs/node/commit/7cd4e70948)] - **(SEMVER-MAJOR)** **test\_runner**: support passing globs (Moshe Atlow) [#47653](https://github.com/nodejs/node/pull/47653)
+* \[[`2ef170254b`](https://github.com/nodejs/node/commit/2ef170254b)] - **(SEMVER-MAJOR)** **tls**: use `validateNumber` for `options.minDHSize` (Deokjin Kim) [#49973](https://github.com/nodejs/node/pull/49973)
+* \[[`092fb9f541`](https://github.com/nodejs/node/commit/092fb9f541)] - **(SEMVER-MAJOR)** **tls**: use validateFunction for `options.checkServerIdentity` (Deokjin Kim) [#49896](https://github.com/nodejs/node/pull/49896)
+* \[[`ccca547e28`](https://github.com/nodejs/node/commit/ccca547e28)] - **(SEMVER-MAJOR)** **util**: runtime deprecate `promisify`-ing a function returning a `Promise` (Antoine du Hamel) [#49609](https://github.com/nodejs/node/pull/49609)
+* \[[`4038cf0513`](https://github.com/nodejs/node/commit/4038cf0513)] - **(SEMVER-MAJOR)** **vm**: freeze `dependencySpecifiers` array (Antoine du Hamel) [#49720](https://github.com/nodejs/node/pull/49720)
+
+### Semver-Minor Commits
+
+//
+
+### Semver-Patch Commits
+
+//
diff --git a/doc/changelogs/CHANGELOG_V4.md b/doc/changelogs/CHANGELOG_V4.md
index d9c8d9193aa957..e8baa5a615a346 100644
--- a/doc/changelogs/CHANGELOG_V4.md
+++ b/doc/changelogs/CHANGELOG_V4.md
@@ -56,6 +56,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V5.md b/doc/changelogs/CHANGELOG_V5.md
index 0949a73b63d327..6cd42b15b33120 100644
--- a/doc/changelogs/CHANGELOG_V5.md
+++ b/doc/changelogs/CHANGELOG_V5.md
@@ -32,6 +32,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V6.md b/doc/changelogs/CHANGELOG_V6.md
index e891c4e298c6ea..836c64edb73413 100644
--- a/doc/changelogs/CHANGELOG_V6.md
+++ b/doc/changelogs/CHANGELOG_V6.md
@@ -61,6 +61,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V7.md b/doc/changelogs/CHANGELOG_V7.md
index 702c212ace22f6..22a976ed15e068 100644
--- a/doc/changelogs/CHANGELOG_V7.md
+++ b/doc/changelogs/CHANGELOG_V7.md
@@ -30,6 +30,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V8.md b/doc/changelogs/CHANGELOG_V8.md
index cac64544bfa11b..00ecd10cef07aa 100644
--- a/doc/changelogs/CHANGELOG_V8.md
+++ b/doc/changelogs/CHANGELOG_V8.md
@@ -52,6 +52,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/doc/changelogs/CHANGELOG_V9.md b/doc/changelogs/CHANGELOG_V9.md
index b5531909ea243f..46937b022a501f 100644
--- a/doc/changelogs/CHANGELOG_V9.md
+++ b/doc/changelogs/CHANGELOG_V9.md
@@ -31,6 +31,7 @@
* Other Versions
+ * [21.x](CHANGELOG_V21.md)
* [20.x](CHANGELOG_V20.md)
* [19.x](CHANGELOG_V19.md)
* [18.x](CHANGELOG_V18.md)
diff --git a/src/node_version.h b/src/node_version.h
index 9001284dabf584..7742c432bb6d39 100644
--- a/src/node_version.h
+++ b/src/node_version.h
@@ -29,7 +29,7 @@
#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)