From 548adafb6e895a24e6357a507f8ade2c603986b8 Mon Sep 17 00:00:00 2001 From: Ulises Gascon Date: Thu, 12 Feb 2026 19:14:33 +0100 Subject: [PATCH 01/14] feat(blog): create post evolving the Node.js Release Schedule --- .../evolving-the-nodejs-release-schedule.md | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md new file mode 100644 index 0000000000000..36e0146a55e42 --- /dev/null +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -0,0 +1,83 @@ +--- +date: '2026-04-01T00:00:00.000Z' +category: announcements +title: Evolving the Node.js Release Schedule +layout: blog-post +author: The Node.js Release Team +--- +Starting with `v27`, Node.js will move from two major releases per year to one. This post explains what's changing, why, and what it means for users. + +## Why This Change + +The current release schedule is 10 years old. It was created during the io.js merger to balance the needs of a growing ecosystem. As one contributor put it at the time, it was "a guess of what enterprises would need." + +We now have a decade of data showing how people actually use Node.js: + +- Odd-numbered releases see minimal adoption. Users wait for LTS. +- The odd/even distinction confuses newcomers. +- Many organizations skip odd releases entirely, upgrading only between LTS versions. + +### Volunteer Sustainability + +Node.js is maintained primarily by volunteers. While some contributors receive sponsorship, most of the work (reviewing PRs, handling security issues, cutting releases, backporting fixes) is done by people in their spare time. + +Managing security releases across four or five active release lines has become difficult to sustain. Each additional line increases backporting complexity. By reducing concurrent release lines, we can focus on better supporting the releases people actually use. + +## What's Changing + +Starting with `v27` in 2027: + +- **One major release per year** (April), with LTS promotion in October +- **Every release becomes LTS**. No more odd/even distinction. +- **Alpha channel replaces odd-numbered releases** for early testing +- **Version numbers align with years**: `v27` in 2027, `v28` in 2028 +- **Maximum 3 active release lines** (down from 5) + +### New Schedule + +| Phase | Duration | Description | +|-------|----------|-------------| +| Alpha | 5 months | Oct to Mar. Early testing, semver-major allowed | +| Current | 6 months | Apr to Oct. Stabilization | +| Active LTS | 12 months | Regular updates and fixes | +| Maintenance | 17 months | Security and critical fixes only | + +Total support: 35 months from release to End of Life. + +## What's NOT Changing + +- **LTS support duration** remains similar (29 months: 12 Active + 17 Maintenance) +- **Migration windows preserved**. Overlap between LTS versions remains. +- **Quality standards unchanged**. Same testing, same CITGM, same security process. +- **Predictable schedule**. April releases, October LTS promotion. + +## Timeline + +### `v26` (Current Schedule) + +| Milestone | Date | +|-----------|------| +| Release | April 2026 | +| Enters LTS | October 2026 | +| Maintenance | October 2027 | +| End of Life | April 2029 | + +`v26` follows the existing schedule. This is the last release under the current model. + +### `v27` (New Schedule) + +| Milestone | Date | +|-----------|------| +| Alpha begins | October 2026 | +| Release | April 2027 | +| Enters LTS | October 2027 | +| Maintenance | October 2028 | +| End of Life | March 2030 | + +`v27` is the first release under the new schedule. + +## Thank You + +This change is the result of discussions across [GitHub issues](https://github.com/nodejs/Release/issues/1113), Release Working Group meetings, and [the Collaboration Summit Chesapeake 2025](https://youtu.be/ppi87YjU9x0?si=NFF5WKIGDJE_U-_V&t=6524). We thank everyone who contributed feedback. + +For questions or comments, see [GitHub Issue #1113](https://github.com/nodejs/Release/issues/1113). From 62a4ff2814b9945136d6043fc3ab9314265a6580 Mon Sep 17 00:00:00 2001 From: Ulises Gascon Date: Thu, 12 Feb 2026 20:23:46 +0100 Subject: [PATCH 02/14] docs: add Alpha channel details and simplify LTS terminology MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add "About the Alpha Channel" section explaining: - Target audience (library authors, CI pipelines) - Expectations (no security patches, API may change) - Rationale (feedback loop + V8 updates) - ABI stability noted as TBD - Simplify schedule phases: Alpha → Current → LTS (29 months) - Remove Active LTS / Maintenance distinction - Add Ubuntu release cycle comparison for familiarity - Clean up v26/v27 timelines (remove Maintenance milestone) --- .../evolving-the-nodejs-release-schedule.md | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 36e0146a55e42..68c56cdcea535 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -5,6 +5,7 @@ title: Evolving the Node.js Release Schedule layout: blog-post author: The Node.js Release Team --- + Starting with `v27`, Node.js will move from two major releases per year to one. This post explains what's changing, why, and what it means for users. ## Why This Change @@ -39,14 +40,29 @@ Starting with `v27` in 2027: |-------|----------|-------------| | Alpha | 5 months | Oct to Mar. Early testing, semver-major allowed | | Current | 6 months | Apr to Oct. Stabilization | -| Active LTS | 12 months | Regular updates and fixes | -| Maintenance | 17 months | Security and critical fixes only | +| LTS | 29 months | Long-term support with security fixes | Total support: 35 months from release to End of Life. +This model follows a pattern similar to Ubuntu's release cycle: predictable April/October anchors, with interim releases for testing and LTS releases for production. + +### About the Alpha Channel + +The Alpha channel replaces odd-numbered releases. + +**Who it's for:** Library authors and CI pipelines testing compatibility with upcoming breaking changes. Not intended for production use. + +**What to expect:** +- Semver-major changes land during this phase +- No security patches (only stable releases receive security fixes) +- API may change between Alpha releases +- ABI stability guarantees are still being defined and will be documented separately + +**Why:** Provides early feedback on breaking changes without maintaining another full release line. Also allows landing V8 updates earlier in the cycle, so we don't ship a single V8 version per year. + ## What's NOT Changing -- **LTS support duration** remains similar (29 months: 12 Active + 17 Maintenance) +- **LTS support duration** remains similar (29 months) - **Migration windows preserved**. Overlap between LTS versions remains. - **Quality standards unchanged**. Same testing, same CITGM, same security process. - **Predictable schedule**. April releases, October LTS promotion. @@ -71,13 +87,12 @@ Total support: 35 months from release to End of Life. | Alpha begins | October 2026 | | Release | April 2027 | | Enters LTS | October 2027 | -| Maintenance | October 2028 | | End of Life | March 2030 | `v27` is the first release under the new schedule. ## Thank You -This change is the result of discussions across [GitHub issues](https://github.com/nodejs/Release/issues/1113), Release Working Group meetings, and [the Collaboration Summit Chesapeake 2025](https://youtu.be/ppi87YjU9x0?si=NFF5WKIGDJE_U-_V&t=6524). We thank everyone who contributed feedback. +This change is the result of discussions across GitHub issues, Release Working Group meetings, and [the Collaboration Summit Chesapeake 2025](https://youtu.be/ppi87YjU9x0?si=NFF5WKIGDJE_U-_V&t=6524). We thank everyone who contributed feedback. For questions or comments, see [GitHub Issue #1113](https://github.com/nodejs/Release/issues/1113). From cc35d52cf7ed998cf4fea5587e749e743eca053b Mon Sep 17 00:00:00 2001 From: Ulises Gascon Date: Thu, 12 Feb 2026 21:26:45 +0100 Subject: [PATCH 03/14] docs: add 10-year schedule and clarify Alpha as nightly builds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add comprehensive 10-year schedule table (v27-v36) with Alpha, Release, LTS, and End of Life dates - Clarify that Alpha channel uses only nightly builds (no formal alpha releases, reducing releaser workload) - Link to nodejs.org/download/nightly for early testing - Reorder Timeline section: v26 → v27 → 10-year table --- .../evolving-the-nodejs-release-schedule.md | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 68c56cdcea535..327ca31b5134c 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -48,15 +48,14 @@ This model follows a pattern similar to Ubuntu's release cycle: predictable Apri ### About the Alpha Channel -The Alpha channel replaces odd-numbered releases. +The Alpha channel replaces odd-numbered releases. During this period, only [nightly builds](https://nodejs.org/download/nightly/) are available for early testing. **Who it's for:** Library authors and CI pipelines testing compatibility with upcoming breaking changes. Not intended for production use. **What to expect:** - Semver-major changes land during this phase - No security patches (only stable releases receive security fixes) -- API may change between Alpha releases -- ABI stability guarantees are still being defined and will be documented separately +- API may change between builds **Why:** Provides early feedback on breaking changes without maintaining another full release line. Also allows landing V8 updates earlier in the cycle, so we don't ship a single V8 version per year. @@ -91,6 +90,21 @@ The Alpha channel replaces odd-numbered releases. `v27` is the first release under the new schedule. +### The Next 10 Years + +| Version | Alpha | Release | LTS | End of Life | +|---------|----------|----------|----------|-------------| +| v27 | Oct 2026 | Apr 2027 | Oct 2027 | Mar 2030 | +| v28 | Oct 2027 | Apr 2028 | Oct 2028 | Mar 2031 | +| v29 | Oct 2028 | Apr 2029 | Oct 2029 | Mar 2032 | +| v30 | Oct 2029 | Apr 2030 | Oct 2030 | Mar 2033 | +| v31 | Oct 2030 | Apr 2031 | Oct 2031 | Mar 2034 | +| v32 | Oct 2031 | Apr 2032 | Oct 2032 | Mar 2035 | +| v33 | Oct 2032 | Apr 2033 | Oct 2033 | Mar 2036 | +| v34 | Oct 2033 | Apr 2034 | Oct 2034 | Mar 2037 | +| v35 | Oct 2034 | Apr 2035 | Oct 2035 | Mar 2038 | +| v36 | Oct 2035 | Apr 2036 | Oct 2036 | Mar 2039 | + ## Thank You This change is the result of discussions across GitHub issues, Release Working Group meetings, and [the Collaboration Summit Chesapeake 2025](https://youtu.be/ppi87YjU9x0?si=NFF5WKIGDJE_U-_V&t=6524). We thank everyone who contributed feedback. From 3c1aa4e03badb1a8b1dac8f2fe673cbce6ff7775 Mon Sep 17 00:00:00 2001 From: Ulises Gascon Date: Fri, 13 Feb 2026 16:32:29 +0100 Subject: [PATCH 04/14] docs: use proper terminology --- .../evolving-the-nodejs-release-schedule.md | 67 ++++++++++--------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 327ca31b5134c..9ed150cb98fa8 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -6,7 +6,7 @@ layout: blog-post author: The Node.js Release Team --- -Starting with `v27`, Node.js will move from two major releases per year to one. This post explains what's changing, why, and what it means for users. +Starting with `27.x`, Node.js will move from two major releases per year to one. This post explains what's changing, why, and what it means for users. ## Why This Change @@ -26,21 +26,21 @@ Managing security releases across four or five active release lines has become d ## What's Changing -Starting with `v27` in 2027: +Starting with `27.x` in 2027: - **One major release per year** (April), with LTS promotion in October - **Every release becomes LTS**. No more odd/even distinction. - **Alpha channel replaces odd-numbered releases** for early testing -- **Version numbers align with years**: `v27` in 2027, `v28` in 2028 +- **Version numbers align with years**: `27.x` in 2027, `28.x` in 2028 - **Maximum 3 active release lines** (down from 5) ### New Schedule -| Phase | Duration | Description | -|-------|----------|-------------| -| Alpha | 5 months | Oct to Mar. Early testing, semver-major allowed | -| Current | 6 months | Apr to Oct. Stabilization | -| LTS | 29 months | Long-term support with security fixes | +| Phase | Duration | Description | +| ------- | --------- | ----------------------------------------------- | +| Alpha | 5 months | Oct to Mar. Early testing, semver-major allowed | +| Current | 6 months | Apr to Oct. Stabilization | +| LTS | 29 months | Long-term support with security fixes | Total support: 35 months from release to End of Life. @@ -53,6 +53,7 @@ The Alpha channel replaces odd-numbered releases. During this period, only [nigh **Who it's for:** Library authors and CI pipelines testing compatibility with upcoming breaking changes. Not intended for production use. **What to expect:** + - Semver-major changes land during this phase - No security patches (only stable releases receive security fixes) - API may change between builds @@ -68,42 +69,42 @@ The Alpha channel replaces odd-numbered releases. During this period, only [nigh ## Timeline -### `v26` (Current Schedule) +### `26.x` (Current Schedule) -| Milestone | Date | -|-----------|------| -| Release | April 2026 | -| Enters LTS | October 2026 | +| Milestone | Date | +| ----------- | ------------ | +| Release | April 2026 | +| Enters LTS | October 2026 | | Maintenance | October 2027 | -| End of Life | April 2029 | +| End of Life | April 2029 | -`v26` follows the existing schedule. This is the last release under the current model. +`26.x` follows the existing schedule. This is the last release under the current model. -### `v27` (New Schedule) +### `27.x` (New Schedule) -| Milestone | Date | -|-----------|------| +| Milestone | Date | +| ------------ | ------------ | | Alpha begins | October 2026 | -| Release | April 2027 | -| Enters LTS | October 2027 | -| End of Life | March 2030 | +| Release | April 2027 | +| Enters LTS | October 2027 | +| End of Life | March 2030 | -`v27` is the first release under the new schedule. +`27.x` is the first release under the new schedule. ### The Next 10 Years | Version | Alpha | Release | LTS | End of Life | -|---------|----------|----------|----------|-------------| -| v27 | Oct 2026 | Apr 2027 | Oct 2027 | Mar 2030 | -| v28 | Oct 2027 | Apr 2028 | Oct 2028 | Mar 2031 | -| v29 | Oct 2028 | Apr 2029 | Oct 2029 | Mar 2032 | -| v30 | Oct 2029 | Apr 2030 | Oct 2030 | Mar 2033 | -| v31 | Oct 2030 | Apr 2031 | Oct 2031 | Mar 2034 | -| v32 | Oct 2031 | Apr 2032 | Oct 2032 | Mar 2035 | -| v33 | Oct 2032 | Apr 2033 | Oct 2033 | Mar 2036 | -| v34 | Oct 2033 | Apr 2034 | Oct 2034 | Mar 2037 | -| v35 | Oct 2034 | Apr 2035 | Oct 2035 | Mar 2038 | -| v36 | Oct 2035 | Apr 2036 | Oct 2036 | Mar 2039 | +| ------- | -------- | -------- | -------- | ----------- | +| 27.x | Oct 2026 | Apr 2027 | Oct 2027 | Mar 2030 | +| 28.x | Oct 2027 | Apr 2028 | Oct 2028 | Mar 2031 | +| 29.x | Oct 2028 | Apr 2029 | Oct 2029 | Mar 2032 | +| 30.x | Oct 2029 | Apr 2030 | Oct 2030 | Mar 2033 | +| 31.x | Oct 2030 | Apr 2031 | Oct 2031 | Mar 2034 | +| 32.x | Oct 2031 | Apr 2032 | Oct 2032 | Mar 2035 | +| 33.x | Oct 2032 | Apr 2033 | Oct 2033 | Mar 2036 | +| 34.x | Oct 2033 | Apr 2034 | Oct 2034 | Mar 2037 | +| 35.x | Oct 2034 | Apr 2035 | Oct 2035 | Mar 2038 | +| 36.x | Oct 2035 | Apr 2036 | Oct 2036 | Mar 2039 | ## Thank You From 295317e452c5add0d7ce8bd5757d45cb3514fae8 Mon Sep 17 00:00:00 2001 From: Ulises Gascon Date: Fri, 13 Feb 2026 16:42:19 +0100 Subject: [PATCH 05/14] docs: clarify Alpha channel vs nightly builds in release schedule post --- .../evolving-the-nodejs-release-schedule.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 9ed150cb98fa8..20e755c668336 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -48,17 +48,16 @@ This model follows a pattern similar to Ubuntu's release cycle: predictable Apri ### About the Alpha Channel -The Alpha channel replaces odd-numbered releases. During this period, only [nightly builds](https://nodejs.org/download/nightly/) are available for early testing. +The Alpha channel replaces odd-numbered releases. Alpha releases are signed, tagged, and tested through CITGM. This is different from [nightly builds](https://nodejs.org/download/nightly/), which remain available as automated untested builds from main. **Who it's for:** Library authors and CI pipelines testing compatibility with upcoming breaking changes. Not intended for production use. **What to expect:** - - Semver-major changes land during this phase -- No security patches (only stable releases receive security fixes) -- API may change between builds +- Releases are signed and tagged (unlike nightly) +- API may change between releases -**Why:** Provides early feedback on breaking changes without maintaining another full release line. Also allows landing V8 updates earlier in the cycle, so we don't ship a single V8 version per year. +**Why:** Provides early feedback on breaking changes with quality gates that nightly builds lack. Also allows landing V8 updates earlier in the cycle. ## What's NOT Changing From 1d1c970c35810f9179b7a3193b79e7836df9abe9 Mon Sep 17 00:00:00 2001 From: Ulises Gascon Date: Fri, 13 Feb 2026 17:16:46 +0100 Subject: [PATCH 06/14] docs: add image to support the new schedule --- .../evolving-the-nodejs-release-schedule.md | 2 + .../2026-new-release-schedule.svg | 40 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 apps/site/public/static/images/blog/announcements/2026-new-release-schedule.svg diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 20e755c668336..47bff628c51c0 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -68,6 +68,8 @@ The Alpha channel replaces odd-numbered releases. Alpha releases are signed, tag ## Timeline +![New Node.js Release Schedule](/static/images/blog/announcements/2026-new-release-schedule.svg) + ### `26.x` (Current Schedule) | Milestone | Date | diff --git a/apps/site/public/static/images/blog/announcements/2026-new-release-schedule.svg b/apps/site/public/static/images/blog/announcements/2026-new-release-schedule.svg new file mode 100644 index 0000000000000..08547d5e9f6c9 --- /dev/null +++ b/apps/site/public/static/images/blog/announcements/2026-new-release-schedule.svg @@ -0,0 +1,40 @@ +Jan 2026Jan 2027Jan 2028Jan 2029Jan 2030Jan 2031Jan 2032Jan 2033MainNode.js 24Node.js 25Node.js 26Node.js 27Node.js 28Node.js 29Node.js 30unstablemaintenanceactivecurrentmaintenancecurrentmaintenanceactivecurrentltscurrentalphaltscurrentalphaltscurrentalphaltscurrentalpha \ No newline at end of file From edf1129287b2c614ce4266942fb5cfad3ed7b878 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Wed, 18 Feb 2026 12:31:57 +0100 Subject: [PATCH 07/14] copy-edit Tried to implement some of the feedback Signed-off-by: Antoine du Hamel --- .../evolving-the-nodejs-release-schedule.md | 85 +++++++++++++------ 1 file changed, 60 insertions(+), 25 deletions(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 47bff628c51c0..b2bba5140b2ab 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -6,95 +6,124 @@ layout: blog-post author: The Node.js Release Team --- -Starting with `27.x`, Node.js will move from two major releases per year to one. This post explains what's changing, why, and what it means for users. +Starting with 27.x, Node.js will move from two major releases per year to one. +This post explains what's changing, why, and what it means for users. ## Why This Change -The current release schedule is 10 years old. It was created during the io.js merger to balance the needs of a growing ecosystem. As one contributor put it at the time, it was "a guess of what enterprises would need." +The current release schedule is 10 years old. It was created during the io.js +merger to balance the needs of a growing ecosystem. As one contributor put it at +the time, it was "a guess of what enterprises would need." We now have a decade of data showing how people actually use Node.js: -- Odd-numbered releases see minimal adoption. Users wait for LTS. +- Odd-numbered releases see minimal adoption. Most users wait for Long-Term Support. - The odd/even distinction confuses newcomers. - Many organizations skip odd releases entirely, upgrading only between LTS versions. ### Volunteer Sustainability -Node.js is maintained primarily by volunteers. While some contributors receive sponsorship, most of the work (reviewing PRs, handling security issues, cutting releases, backporting fixes) is done by people in their spare time. +Node.js is maintained primarily by volunteers. While some contributors receive sponsorship, most +of the work (reviewing Pull Requests, handling security issues, cutting +releases, backporting fixes) is done by people in their spare time. -Managing security releases across four or five active release lines has become difficult to sustain. Each additional line increases backporting complexity. By reducing concurrent release lines, we can focus on better supporting the releases people actually use. +Managing security releases across four or five active release lines has become +difficult to sustain. Each additional line increases backporting complexity. By +reducing the number of concurrent release lines, we can focus on better +supporting the releases people actually use. ## What's Changing -Starting with `27.x` in 2027: +As of October 2026: - **One major release per year** (April), with LTS promotion in October - **Every release becomes LTS**. No more odd/even distinction. -- **Alpha channel replaces odd-numbered releases** for early testing -- **Version numbers align with years**: `27.x` in 2027, `28.x` in 2028 -- **Maximum 3 active release lines** (down from 5) +- **Alpha channel replaces odd-numbered releases** for early testing (for librairies) +- **Version numbers align with years**: 27.0.0 in 2027, 28.0.0 in 2028 +- **Reduced Releasers burden** ### New Schedule | Phase | Duration | Description | | ------- | --------- | ----------------------------------------------- | | Alpha | 5 months | Oct to Mar. Early testing, semver-major allowed | -| Current | 6 months | Apr to Oct. Stabilization | +| Interim | 6 months | Apr to Oct. Stabilization | | LTS | 29 months | Long-term support with security fixes | +| EOL | Infinity | The project no longer provides any support | Total support: 35 months from release to End of Life. -This model follows a pattern similar to Ubuntu's release cycle: predictable April/October anchors, with interim releases for testing and LTS releases for production. +We took some inspiration from Ubuntu's release cycle: predictable +April/October anchors, with Interim releases for testing and LTS releases for +production. ### About the Alpha Channel -The Alpha channel replaces odd-numbered releases. Alpha releases are signed, tagged, and tested through CITGM. This is different from [nightly builds](https://nodejs.org/download/nightly/), which remain available as automated untested builds from main. +The Alpha channel replaces odd-numbered releases. Alpha releases are signed, +tagged, and tested through CITGM. CITGM (Canary in the Goldmine) is a tool we +maintain that runs the test suite of major open-source packages on the upcoming +version of Node.js, which can let us detect ecosystem breakage and notify the +package authors ahead of the release. -**Who it's for:** Library authors and CI pipelines testing compatibility with upcoming breaking changes. Not intended for production use. +This is different from [Nightly builds](https://nodejs.org/download/nightly/), which remain +available as automated untested builds from `main` – Alpha release may not contain all changes from +`main`, a change may be not included in an Alpha release if: + +- during Pull Request review, reviewers add a label requesting the change to not be backported + (e.g. if an API is getting runtime deprecated in an Alpha release, the change actually removing + that API should not land until the next release line). +- during the Alpha release preparation, the releaser ultimately which commits actually makes the + release (e.g. if a dependency update contains a major bug). + +**Who it's for:** Library authors and CI pipelines testing compatibility with +upcoming breaking changes. Not intended for production use. **What to expect:** -- Semver-major changes land during this phase +- Semver-major changes may land during this phase - Releases are signed and tagged (unlike nightly) - API may change between releases -**Why:** Provides early feedback on breaking changes with quality gates that nightly builds lack. Also allows landing V8 updates earlier in the cycle. +**Why:** Provides early feedback on breaking changes with quality gates that +Nightly builds lack. Also allows landing V8 updates earlier in the cycle. ## What's NOT Changing -- **LTS support duration** remains similar (29 months) +- **Long-Term Support duration** remains similar (29 months) - **Migration windows preserved**. Overlap between LTS versions remains. - **Quality standards unchanged**. Same testing, same CITGM, same security process. - **Predictable schedule**. April releases, October LTS promotion. +- **V8 adoption cycle**. Node.js latest releases will still include a version of + V8 that's at most about 6-month old. ## Timeline ![New Node.js Release Schedule](/static/images/blog/announcements/2026-new-release-schedule.svg) -### `26.x` (Current Schedule) +### Node.js 26 Schedule (exiting one) | Milestone | Date | | ----------- | ------------ | -| Release | April 2026 | +| 26.0.0 | April 2026 | | Enters LTS | October 2026 | | Maintenance | October 2027 | | End of Life | April 2029 | -`26.x` follows the existing schedule. This is the last release under the current model. +Node.js 26 follows the existing schedule. This is the last release line under the current model. -### `27.x` (New Schedule) +### Node.js 27 Schedule (new one) | Milestone | Date | | ------------ | ------------ | | Alpha begins | October 2026 | -| Release | April 2027 | +| 27.0.0 | April 2027 | | Enters LTS | October 2027 | | End of Life | March 2030 | -`27.x` is the first release under the new schedule. +Node.js 27 is the first release line under the new schedule. ### The Next 10 Years -| Version | Alpha | Release | LTS | End of Life | +| Version | Alpha | Interim | LTS | End of Life | | ------- | -------- | -------- | -------- | ----------- | | 27.x | Oct 2026 | Apr 2027 | Oct 2027 | Mar 2030 | | 28.x | Oct 2027 | Apr 2028 | Oct 2028 | Mar 2031 | @@ -107,8 +136,14 @@ The Alpha channel replaces odd-numbered releases. Alpha releases are signed, tag | 35.x | Oct 2034 | Apr 2035 | Oct 2035 | Mar 2038 | | 36.x | Oct 2035 | Apr 2036 | Oct 2036 | Mar 2039 | +This schedule is not final and may be amended. Refer to the +[`schedule.json`](https://github.com/nodejs/Release/blob/HEAD/schedule.json) for an up-to-date +record of the support claims from the project. + ## Thank You -This change is the result of discussions across GitHub issues, Release Working Group meetings, and [the Collaboration Summit Chesapeake 2025](https://youtu.be/ppi87YjU9x0?si=NFF5WKIGDJE_U-_V&t=6524). We thank everyone who contributed feedback. +This change is the result of discussions across GitHub issues, Release Working Group meetings, and +[the Collaboration Summit Chesapeake 2025](https://youtu.be/ppi87YjU9x0?si=NFF5WKIGDJE_U-_V&t=6524). +We thank everyone who contributed feedback. -For questions or comments, see [GitHub Issue #1113](https://github.com/nodejs/Release/issues/1113). +For questions or comments, see [nodejs/Release#1113](https://github.com/nodejs/Release/issues/1113). From 8e611a8a4ade5cd5721327dcf7828c21c5995298 Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Wed, 18 Feb 2026 12:41:58 +0100 Subject: [PATCH 08/14] Apply suggestions from code review Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Signed-off-by: Antoine du Hamel --- .../announcements/evolving-the-nodejs-release-schedule.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index b2bba5140b2ab..5cf4c8fec9504 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -66,13 +66,13 @@ version of Node.js, which can let us detect ecosystem breakage and notify the package authors ahead of the release. This is different from [Nightly builds](https://nodejs.org/download/nightly/), which remain -available as automated untested builds from `main` – Alpha release may not contain all changes from +available as automated untested builds from `main` – Alpha releases may not contain all changes from `main`, a change may be not included in an Alpha release if: - during Pull Request review, reviewers add a label requesting the change to not be backported (e.g. if an API is getting runtime deprecated in an Alpha release, the change actually removing that API should not land until the next release line). -- during the Alpha release preparation, the releaser ultimately which commits actually makes the +- during the Alpha release preparation, the releaser ultimately decides which commits actually make the release (e.g. if a dependency update contains a major bug). **Who it's for:** Library authors and CI pipelines testing compatibility with From e5c2095abbc5dd3fcd67e7c58acc82d1da5d401d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Sat, 21 Feb 2026 19:33:04 +0100 Subject: [PATCH 09/14] docs: improve readability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Filip Skokan Signed-off-by: Ulises Gascón --- .../blog/announcements/evolving-the-nodejs-release-schedule.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 5cf4c8fec9504..9dd73132616b9 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -38,7 +38,7 @@ As of October 2026: - **One major release per year** (April), with LTS promotion in October - **Every release becomes LTS**. No more odd/even distinction. -- **Alpha channel replaces odd-numbered releases** for early testing (for librairies) +- **Alpha channel replaces odd-numbered releases** for early testing - **Version numbers align with years**: 27.0.0 in 2027, 28.0.0 in 2028 - **Reduced Releasers burden** From fc0544b68f09dd46a1e2bbb9a2b5d1ac1b9d7f9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Sat, 21 Feb 2026 19:33:19 +0100 Subject: [PATCH 10/14] docs: improve readability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Signed-off-by: Ulises Gascón --- .../blog/announcements/evolving-the-nodejs-release-schedule.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 9dd73132616b9..f29ad9abb75d7 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -110,7 +110,7 @@ Nightly builds lack. Also allows landing V8 updates earlier in the cycle. Node.js 26 follows the existing schedule. This is the last release line under the current model. -### Node.js 27 Schedule (new one) +### Node.js 27 Schedule (new model) | Milestone | Date | | ------------ | ------------ | From 26a711c54e94c4a27a14e0c0430835b7491ffc2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Sat, 21 Feb 2026 19:33:34 +0100 Subject: [PATCH 11/14] docs: improve readability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Signed-off-by: Ulises Gascón --- .../blog/announcements/evolving-the-nodejs-release-schedule.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index f29ad9abb75d7..48b5f7c84fe51 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -99,7 +99,7 @@ Nightly builds lack. Also allows landing V8 updates earlier in the cycle. ![New Node.js Release Schedule](/static/images/blog/announcements/2026-new-release-schedule.svg) -### Node.js 26 Schedule (exiting one) +### Node.js 26 Schedule (existing model) | Milestone | Date | | ----------- | ------------ | From 5309f987fe3d587a8b1b76f88fc46485960df987 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Sat, 21 Feb 2026 19:34:06 +0100 Subject: [PATCH 12/14] docs: improve readability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: René Signed-off-by: Ulises Gascón --- .../blog/announcements/evolving-the-nodejs-release-schedule.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 48b5f7c84fe51..7c7aa84e9543d 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -93,7 +93,7 @@ Nightly builds lack. Also allows landing V8 updates earlier in the cycle. - **Quality standards unchanged**. Same testing, same CITGM, same security process. - **Predictable schedule**. April releases, October LTS promotion. - **V8 adoption cycle**. Node.js latest releases will still include a version of - V8 that's at most about 6-month old. + V8 that's at most about 6 months old. ## Timeline From 66a5c46a8166e94b3cfc86e25677f52926f69464 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Sat, 21 Feb 2026 19:37:15 +0100 Subject: [PATCH 13/14] docs: improve readability MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rafael Gonzaga Signed-off-by: Ulises Gascón --- .../blog/announcements/evolving-the-nodejs-release-schedule.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 7c7aa84e9543d..77f66a7e617c3 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -37,7 +37,7 @@ supporting the releases people actually use. As of October 2026: - **One major release per year** (April), with LTS promotion in October -- **Every release becomes LTS**. No more odd/even distinction. +- **Every release becomes LTS**. No more odd/even distinction - Node.js 27 will be LTS. - **Alpha channel replaces odd-numbered releases** for early testing - **Version numbers align with years**: 27.0.0 in 2027, 28.0.0 in 2028 - **Reduced Releasers burden** From 79d6b8778a5a0d174d7cdb9e706563504b8eb05a Mon Sep 17 00:00:00 2001 From: Ulises Gascon Date: Sat, 21 Feb 2026 19:58:06 +0100 Subject: [PATCH 14/14] docs: improve readability Co-Authored-By: Rafael Gonzaga Co-Authored-By: Waldenesque <116973718+Waldenesque@users.noreply.github.com> --- .../evolving-the-nodejs-release-schedule.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md index 77f66a7e617c3..276e8185d8760 100644 --- a/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md +++ b/apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md @@ -7,7 +7,12 @@ author: The Node.js Release Team --- Starting with 27.x, Node.js will move from two major releases per year to one. -This post explains what's changing, why, and what it means for users. +This post explains what's changing, why, and what it means for users. For the +full discussion and background, see [nodejs/Release#1113](https://github.com/nodejs/Release/issues/1113). + +**TL;DR:** If you already upgrade between LTS versions, little changes beyond +version numbering. LTS support windows remain similar, and the upgrade path +stays the same. ## Why This Change @@ -21,6 +26,10 @@ We now have a decade of data showing how people actually use Node.js: - The odd/even distinction confuses newcomers. - Many organizations skip odd releases entirely, upgrading only between LTS versions. +We also recognize that enterprises need predictability. The new schedule is +designed to be well-defined, so teams can plan upgrades and allocate resources +accordingly. + ### Volunteer Sustainability Node.js is maintained primarily by volunteers. While some contributors receive sponsorship, most @@ -79,13 +88,19 @@ available as automated untested builds from `main` – Alpha releases may not co upcoming breaking changes. Not intended for production use. **What to expect:** + - Semver-major changes may land during this phase - Releases are signed and tagged (unlike nightly) - API may change between releases +- The release cadence is flexible; the Release Team will determine the timing + and frequency of Alpha releases based on the volume of changes and project needs **Why:** Provides early feedback on breaking changes with quality gates that Nightly builds lack. Also allows landing V8 updates earlier in the cycle. +The rules for shipping semver-major commits in Alpha versions will be defined by +the Release Team and documented in the [Release repository](https://github.com/nodejs/Release). + ## What's NOT Changing - **Long-Term Support duration** remains similar (29 months) @@ -144,6 +159,7 @@ record of the support claims from the project. This change is the result of discussions across GitHub issues, Release Working Group meetings, and [the Collaboration Summit Chesapeake 2025](https://youtu.be/ppi87YjU9x0?si=NFF5WKIGDJE_U-_V&t=6524). +We will continue discussing this topic at the upcoming Collaboration Summit in London. We thank everyone who contributed feedback. For questions or comments, see [nodejs/Release#1113](https://github.com/nodejs/Release/issues/1113).