Repository: nodejs/node
Pull request: v22.11.0 proposal

## 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](https://github.com/quictls/openssl)).
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.

---

Related tasks:
- [x] https://github.com/nodejs/build/issues/3940
- [x] https://github.com/nodejs/nodejs-latest-linker/pull/19
- [x] https://github.com/nodejs/Release/pull/1049
- [x] Create https://github.com/nodejs/node/labels/lts-watch-v22.x label

Changed files:
filename: CHANGELOG.md
patch: @@ -2,11 +2,11 @@
 
 Select a Node.js version below to view the changelog history:
 
-* [Node.js 22](doc/changelogs/CHANGELOG_V22.md) **Current**
+* [Node.js 22](doc/changelogs/CHANGELOG_V22.md) **Long Term Support**
 * [Node.js 21](doc/changelogs/CHANGELOG_V21.md) **Current**
-* [Node.js 20](doc/changelogs/CHANGELOG_V20.md) **Long Term Support**
+* [Node.js 20](doc/changelogs/CHANGELOG_V20.md) Long Term Support
 * [Node.js 19](doc/changelogs/CHANGELOG_V19.md) End-of-Life
-* [Node.js 18](doc/changelogs/CHANGELOG_V18.md) **Long Term Support**
+* [Node.js 18](doc/changelogs/CHANGELOG_V18.md) Long Term Support
 * [Node.js 17](doc/changelogs/CHANGELOG_V17.md) End-of-Life
 * [Node.js 16](doc/changelogs/CHANGELOG_V16.md) End-of-Life
 * [Node.js 15](doc/changelogs/CHANGELOG_V15.md) End-of-Life
@@ -31,14 +31,15 @@ release.
 
 <table>
 <tr>
-  <th title="Current"><a href="doc/changelogs/CHANGELOG_V22.md">22</a> (Current)</th>
+  <th title="LTS Until 2027-04"><a href="doc/changelogs/CHANGELOG_V22.md">22</a> (LTS)</th>
   <th title="Current"><a href="doc/changelogs/CHANGELOG_V21.md">21</a> (Current)</th>
   <th title="LTS Until 2026-04"><a href="doc/changelogs/CHANGELOG_V20.md">20</a> (LTS)</th>
   <th title="LTS Until 2025-04"><a href="doc/changelogs/CHANGELOG_V18.md">18</a> (LTS)</th>
 </tr>
 <tr>
   <td valign="top">
-<b><a href="doc/changelogs/CHANGELOG_V22.md#22.10.0">22.10.0</a></b><br/>
+<b><a href="doc/changelogs/CHANGELOG_V22.md#22.11.0">22.11.0</a></b><br/>
+<a href="doc/changelogs/CHANGELOG_V22.md#22.10.0">22.10.0</a><br/>
 <a href="doc/changelogs/CHANGELOG_V22.md#22.9.0">22.9.0</a><br/>
 <a href="doc/changelogs/CHANGELOG_V22.md#22.8.0">22.8.0</a><br/>
 <a href="doc/changelogs/CHANGELOG_V22.md#22.7.0">22.7.0</a><br/>

filename: doc/changelogs/CHANGELOG_V22.md
patch: @@ -4,10 +4,14 @@
 
 <table>
 <tr>
+<th>LTS 'Jod'</th>
 <th>Current</th>
 </tr>
 <tr>
 <td>
+<a href="#22.11.0">22.11.0</a><br/>
+</td>
+<td>
 <a href="#22.10.0">22.10.0</a><br/>
 <a href="#22.9.0">22.9.0</a><br/>
 <a href="#22.8.0">22.8.0</a><br/>
@@ -49,6 +53,32 @@
   * [io.js](CHANGELOG_IOJS.md)
   * [Archive](CHANGELOG_ARCHIVE.md)
 
+<a id="22.11.0"></a>
+
+## 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](https://github.com/quictls/openssl)).
+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.
+
 <a id="22.10.0"></a>
 
 ## 2024-10-16, Version 22.10.0 (Current), @aduh95

filename: src/node_version.h
patch: @@ -23,13 +23,13 @@
 #define SRC_NODE_VERSION_H_
 
 #define NODE_MAJOR_VERSION 22
-#define NODE_MINOR_VERSION 10
-#define NODE_PATCH_VERSION 1
+#define NODE_MINOR_VERSION 11
+#define NODE_PATCH_VERSION 0
 
-#define NODE_VERSION_IS_LTS 0
-#define NODE_VERSION_LTS_CODENAME ""
+#define NODE_VERSION_IS_LTS 1
+#define NODE_VERSION_LTS_CODENAME "Jod"
 
-#define NODE_VERSION_IS_RELEASE 0
+#define NODE_VERSION_IS_RELEASE 1
 
 #ifndef NODE_STRINGIFY
 #define NODE_STRINGIFY(n) NODE_STRINGIFY_HELPER(n)

filename: test/parallel/test-process-release.js
patch: @@ -27,6 +27,8 @@ if (versionParts[0] === '4' && versionParts[1] >= 2) {
   assert.strictEqual(process.release.lts, 'Hydrogen');
 } else if (versionParts[0] === '20' && versionParts[1] >= 9) {
   assert.strictEqual(process.release.lts, 'Iron');
+} else if (versionParts[0] === '22' && versionParts[1] >= 11) {
+  assert.strictEqual(process.release.lts, 'Jod');
 } else {
   assert.strictEqual(process.release.lts, undefined);
 }