Skip to content

Commit 6ff5898

Browse files
UlisesGasconaduh95MikeMcC399panvaRenegade334
authored
Blog: Evolving the Node.js Release Schedule (#8631)
* feat(blog): create post evolving the Node.js Release Schedule * docs: add Alpha channel details and simplify LTS terminology - 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) * docs: add 10-year schedule and clarify Alpha as nightly builds - 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 * docs: use proper terminology * docs: clarify Alpha channel vs nightly builds in release schedule post * docs: add image to support the new schedule * copy-edit Tried to implement some of the feedback Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> * Apply suggestions from code review Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> * docs: improve readability Co-authored-by: Filip Skokan <panva.ip@gmail.com> Signed-off-by: Ulises Gascón <ulisesgascongonzalez@gmail.com> * docs: improve readability Co-authored-by: René <contact.9a5d6388@renegade334.me.uk> Signed-off-by: Ulises Gascón <ulisesgascongonzalez@gmail.com> * docs: improve readability Co-authored-by: René <contact.9a5d6388@renegade334.me.uk> Signed-off-by: Ulises Gascón <ulisesgascongonzalez@gmail.com> * docs: improve readability Co-authored-by: René <contact.9a5d6388@renegade334.me.uk> Signed-off-by: Ulises Gascón <ulisesgascongonzalez@gmail.com> * docs: improve readability Co-authored-by: Rafael Gonzaga <rafael.nunu@hotmail.com> Signed-off-by: Ulises Gascón <ulisesgascongonzalez@gmail.com> * docs: improve readability Co-Authored-By: Rafael Gonzaga <rafael.nunu@hotmail.com> Co-Authored-By: Waldenesque <116973718+Waldenesque@users.noreply.github.com> * docs: improve readability Co-Authored-By: Sebastian Beltran <103585995+bjohansebas@users.noreply.github.com> * docs: improve readability Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Signed-off-by: Ulises Gascón <ulisesgascongonzalez@gmail.com> * docs: improve readability Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Signed-off-by: Ulises Gascón <ulisesgascongonzalez@gmail.com> * test: update getAuthorWithId test for new nodejs author order * docs: fix TL;DR accuracy per review feedback * docs: improve readability Co-authored-by: Matt Cowley <me@mattcowley.co.uk> Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com> * docs: rename Interim phase to Current * docs: improve readability * docs: update publication date to April 2nd * docs: improve readability - Fix Alpha duration from 5 to 6 months (Oct-Mar) - Correct LTS duration from 29 to 30 months - Update total support from 35 to 36 months - Update all EOL dates from March to April - Add alpha versioning format example (27.0.0-alpha.1) - Clarify version number alignment wording - Clarify "from first Current release" for total support - Fix grammar: "to not be" → "not to be" - Fix grammar: "may be not included" → "may not be included" - Improve readability by breaking long lines Co-authored-by: Richard Lau <5445507+richardlau@users.noreply.github.com> Co-authored-by: Nick Schonning <1297909+nschonni@users.noreply.github.com> * Apply suggestions from code review Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> * Update apps/site/pages/en/blog/announcements/evolving-the-nodejs-release-schedule.md Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> --------- Signed-off-by: Antoine du Hamel <duhamelantoine1995@gmail.com> Signed-off-by: Ulises Gascón <ulisesgascongonzalez@gmail.com> Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com> Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com> Co-authored-by: Filip Skokan <panva.ip@gmail.com> Co-authored-by: René <contact.9a5d6388@renegade334.me.uk> Co-authored-by: Rafael Gonzaga <rafael.nunu@hotmail.com> Co-authored-by: Waldenesque <116973718+Waldenesque@users.noreply.github.com> Co-authored-by: Sebastian Beltran <103585995+bjohansebas@users.noreply.github.com> Co-authored-by: Matt Cowley <me@mattcowley.co.uk> Co-authored-by: Richard Lau <5445507+richardlau@users.noreply.github.com> Co-authored-by: Nick Schonning <1297909+nschonni@users.noreply.github.com>
1 parent abe2187 commit 6ff5898

File tree

4 files changed

+214
-3
lines changed

4 files changed

+214
-3
lines changed

apps/site/authors.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,11 @@
158158
"name": "Julián Duque",
159159
"website": "https://github.com/julianduque"
160160
},
161+
"Node.js Releasers": {
162+
"id": "nodejs",
163+
"name": "Node.js Release Working Group",
164+
"website": "https://github.com/nodejs/release"
165+
},
161166
"Node.js Technical Steering Committee": {
162167
"id": "nodejs",
163168
"name": "Node.js Technical Steering Committee",
Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
---
2+
date: '2026-03-10T16:00:00.000Z'
3+
category: announcements
4+
title: Evolving the Node.js Release Schedule
5+
layout: blog-post
6+
author: Node.js Releasers
7+
---
8+
9+
Starting with 27.x, Node.js will move from two major releases per year to one.
10+
This post explains what's changing, why, and what it means for users. For the
11+
full discussion and background, see [nodejs/Release#1113](https://github.com/nodejs/Release/issues/1113).
12+
13+
**TL;DR:** If you already only upgrade to LTS versions, little changes beyond
14+
version numbering. LTS support windows remain similar, and now every release
15+
becomes LTS.
16+
17+
**Library authors:** Please integrate Alpha releases to your CI as early as possible;
18+
if you only test on LTS releases, you will not be able to report bugs before they
19+
affect your users.
20+
21+
## Why This Change
22+
23+
The current release schedule is 10 years old. It was created during the io.js
24+
merger to balance the needs of a growing ecosystem. As one contributor put it at
25+
the time, it was "an educated guess of what enterprises would need."
26+
27+
We now have a decade of data showing how people actually use Node.js:
28+
29+
- Odd-numbered releases see minimal adoption. Most users wait for Long-Term Support.
30+
- The odd/even distinction confuses newcomers.
31+
- Many organizations skip odd releases entirely, upgrading only to LTS versions.
32+
33+
We also recognize that enterprises need predictability. The new schedule is
34+
designed to be well-defined, so teams can plan upgrades and allocate resources
35+
accordingly.
36+
37+
### Volunteer Sustainability
38+
39+
Node.js is maintained primarily by volunteers. While some contributors receive sponsorship, most
40+
of the work (reviewing Pull Requests, handling security issues, cutting
41+
releases, backporting fixes) is done by people in their spare time.
42+
43+
Managing security releases across four or five active release lines has become
44+
difficult to sustain. Each additional line increases backporting complexity. By
45+
reducing the number of concurrent release lines, we can focus on better
46+
supporting the releases people actually use.
47+
48+
## What's Changing
49+
50+
As of October 2026:
51+
52+
- **One major release per year** (April), with LTS promotion in October.
53+
- **Every release becomes LTS**. No more odd/even distinction - Node.js 27 will become LTS.
54+
- **Alpha channel for early testing** with semver-major changes allowed.
55+
- **Alpha versioning** follows semver prerelease format (e.g., `27.0.0-alpha.1`).
56+
- **Version numbers align with the calendar year of their initial Current release**: 27.0.0 in 2027, 28.0.0 in 2028.
57+
- **Reduced Releasers' burden**.
58+
59+
### New Schedule
60+
61+
| Phase | Duration | Description |
62+
| ------- | --------- | ----------------------------------------------- |
63+
| Alpha | 6 months | Oct to Mar. Early testing, semver-major allowed |
64+
| Current | 6 months | Apr to Oct. Stabilization |
65+
| LTS | 30 months | Long-term support with security fixes |
66+
| EOL | Infinity | The project no longer provides any support |
67+
68+
Total support: 36 months from first Current release to [End of Life (EOL)](https://nodejs.org/en/about/eol).
69+
70+
### About the Alpha Channel
71+
72+
The Alpha channel fills the early-testing role that odd-numbered releases once served,
73+
but with a key difference: semver-major changes are allowed during Alpha.
74+
Alpha releases are signed, tagged, and tested through [CITGM](https://github.com/nodejs/citgm). CITGM (Canary in the Goldmine) is a tool we
75+
maintain that runs the test suite of major open-source packages on the upcoming
76+
version of Node.js, which can let us detect ecosystem breakage and notify the
77+
package authors ahead of the release.
78+
79+
This is different from [Nightly builds](https://nodejs.org/download/nightly/), which remain
80+
available as automated untested builds from `main` – Alpha releases may not contain all changes from
81+
`main`, a change may not be included in an Alpha release if:
82+
83+
- during Pull Request review, reviewers add a label requesting the change not to be backported
84+
(e.g. if an API is getting runtime deprecated in an Alpha release, the change actually removing
85+
that API should not land until the next release line).
86+
- during the Alpha release preparation, the releaser ultimately decides which commits actually make the
87+
release (e.g. if a dependency update contains a major bug).
88+
89+
**Who it's for:** Library authors and CI pipelines testing compatibility with
90+
upcoming breaking changes. Not intended for production use.
91+
92+
**What to expect:**
93+
94+
- Releases are signed and tagged (unlike nightly).
95+
- API may change between releases.
96+
- The release cadence is flexible; the Release Team will determine the timing
97+
and frequency of Alpha releases based on the volume of changes and project needs.
98+
99+
**Why:** Provides early feedback on breaking changes with quality gates that
100+
Nightly builds lack. Also allows landing V8 updates earlier in the cycle.
101+
102+
The rules for shipping semver-major commits in Alpha versions will be defined by
103+
the Release Team and documented in the [Release repository](https://github.com/nodejs/Release).
104+
105+
## What's NOT Changing
106+
107+
- **Long-Term Support duration** remains similar (30 months).
108+
- **Migration windows preserved**. Overlap between LTS versions remains.
109+
- **Quality standards unchanged**. Same testing, same CITGM, same security process.
110+
- **Predictable schedule**. April releases, October LTS promotion.
111+
- **V8 adoption cycle**. Node.js latest releases will still include a version of
112+
V8 that's at most about 6 months old.
113+
114+
## Timeline
115+
116+
![New Node.js Release Schedule](/static/images/blog/announcements/2026-new-release-schedule.svg)
117+
118+
### Node.js 26 Schedule (existing model)
119+
120+
| Milestone | Date |
121+
| ----------- | ------------ |
122+
| 26.0.0 | April 2026 |
123+
| Enters LTS | October 2026 |
124+
| Maintenance | October 2027 |
125+
| End of Life | April 2029 |
126+
127+
Node.js 26 follows the existing schedule. This is the last release line under the current model.
128+
129+
### Node.js 27 Schedule (new model)
130+
131+
| Milestone | Date |
132+
| ------------ | ------------ |
133+
| Alpha begins | October 2026 |
134+
| 27.0.0 | April 2027 |
135+
| Enters LTS | October 2027 |
136+
| End of Life | April 2030 |
137+
138+
Node.js 27 is the first release line under the new schedule.
139+
140+
### The Next 10 Years
141+
142+
| Version | Alpha | Current | LTS | End of Life |
143+
| ------- | -------- | -------- | -------- | ----------- |
144+
| 27.x | Oct 2026 | Apr 2027 | Oct 2027 | Apr 2030 |
145+
| 28.x | Oct 2027 | Apr 2028 | Oct 2028 | Apr 2031 |
146+
| 29.x | Oct 2028 | Apr 2029 | Oct 2029 | Apr 2032 |
147+
| 30.x | Oct 2029 | Apr 2030 | Oct 2030 | Apr 2033 |
148+
| 31.x | Oct 2030 | Apr 2031 | Oct 2031 | Apr 2034 |
149+
| 32.x | Oct 2031 | Apr 2032 | Oct 2032 | Apr 2035 |
150+
| 33.x | Oct 2032 | Apr 2033 | Oct 2033 | Apr 2036 |
151+
| 34.x | Oct 2033 | Apr 2034 | Oct 2034 | Apr 2037 |
152+
| 35.x | Oct 2034 | Apr 2035 | Oct 2035 | Apr 2038 |
153+
| 36.x | Oct 2035 | Apr 2036 | Oct 2036 | Apr 2039 |
154+
155+
This schedule is not final and may be amended. Refer to the
156+
[`schedule.json`](https://github.com/nodejs/Release/blob/HEAD/schedule.json) for an up-to-date
157+
record of the support claims from the project.
158+
159+
## Thank You
160+
161+
This change is the result of discussions across GitHub issues, Release Working Group meetings, and
162+
[the Collaboration Summit Chesapeake 2025](https://youtu.be/ppi87YjU9x0?si=NFF5WKIGDJE_U-_V&t=6524).
163+
We will continue discussing this topic at the upcoming Collaboration Summit in London.
164+
We thank everyone who contributed feedback.
165+
166+
For questions or comments, see [nodejs/Release#1113](https://github.com/nodejs/Release/issues/1113).
Lines changed: 40 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)