Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
548adaf
feat(blog): create post evolving the Node.js Release Schedule
UlisesGascon Feb 12, 2026
62a4ff2
docs: add Alpha channel details and simplify LTS terminology
UlisesGascon Feb 12, 2026
cc35d52
docs: add 10-year schedule and clarify Alpha as nightly builds
UlisesGascon Feb 12, 2026
3c1aa4e
docs: use proper terminology
UlisesGascon Feb 13, 2026
295317e
docs: clarify Alpha channel vs nightly builds in release schedule post
UlisesGascon Feb 13, 2026
1d1c970
docs: add image to support the new schedule
UlisesGascon Feb 13, 2026
edf1129
copy-edit
aduh95 Feb 18, 2026
8e611a8
Apply suggestions from code review
aduh95 Feb 18, 2026
e5c2095
docs: improve readability
UlisesGascon Feb 21, 2026
fc0544b
docs: improve readability
UlisesGascon Feb 21, 2026
26a711c
docs: improve readability
UlisesGascon Feb 21, 2026
5309f98
docs: improve readability
UlisesGascon Feb 21, 2026
66a5c46
docs: improve readability
UlisesGascon Feb 21, 2026
79d6b87
docs: improve readability
UlisesGascon Feb 21, 2026
7dd8066
docs: improve readability
UlisesGascon Feb 22, 2026
3539972
docs: improve readability
UlisesGascon Feb 22, 2026
5cf9c14
docs: improve readability
UlisesGascon Feb 22, 2026
463ed6d
test: update getAuthorWithId test for new nodejs author order
UlisesGascon Feb 22, 2026
7503c54
docs: fix TL;DR accuracy per review feedback
UlisesGascon Feb 24, 2026
13f3189
docs: improve readability
UlisesGascon Feb 24, 2026
23ce3d1
docs: rename Interim phase to Current
UlisesGascon Feb 24, 2026
01ecbeb
docs: improve readability
UlisesGascon Feb 26, 2026
1f5459f
docs: update publication date to April 2nd
UlisesGascon Feb 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions apps/site/authors.json
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,11 @@
"name": "Julián Duque",
"website": "https://github.com/julianduque"
},
"Node.js Releasers": {
"id": "nodejs",
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding a third author entry with the same id "nodejs" creates ambiguity in the author lookup system. The function getAuthorWithId finds the FIRST match based on object iteration order, which means "Node.js Releasers" will now be returned when querying by id "nodejs", changing the behavior from the previous expectation of returning "Node.js Technical Steering Committee". Consider using unique IDs for each author entry (e.g., "nodejs-release", "nodejs-tsc", "nodejs-project") to avoid this ambiguity and make the lookup behavior more predictable and maintainable.

Suggested change
"id": "nodejs",
"id": "nodejs-release",

Copilot uses AI. Check for mistakes.
"name": "Node.js Release Working Group",
"website": "https://github.com/nodejs/release"
},
"Node.js Technical Steering Committee": {
"id": "nodejs",
"name": "Node.js Technical Steering Committee",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
---
date: '2026-04-02T00:00:00.000Z'
category: announcements
title: Evolving the Node.js Release Schedule
layout: blog-post
author: Node.js Releasers
---

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. For the
full discussion and background, see [nodejs/Release#1113](https://github.com/nodejs/Release/issues/1113).

**TL;DR:** If you already only upgrade to LTS versions, little changes beyond
version numbering. LTS support windows remain similar, and now every release
becomes LTS.

**Library authors:** Please integrate Alpha releases to your CI as early as possible;
if you only test on LTS releases, you will not be able to report bugs before they
affect your 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. Most users wait for Long-Term Support.
- The odd/even distinction confuses newcomers.
- Many organizations skip odd releases entirely, upgrading only to 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
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 the number of concurrent release lines, we can focus on better
supporting the releases people actually use.

## What's Changing

As of October 2026:

- **One major release per year** (April), with LTS promotion in October.
- **Every release becomes LTS**. No more odd/even distinction - Node.js 27 will become LTS.
- **Alpha channel for early testing** with semver-major changes allowed.
- **Version numbers align with the year of the first Current release and transition to LTS**: 27.0.0 in 2027, 28.0.0 in 2028.
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrasing "Version numbers align with the year of the first Current release and transition to LTS" is ambiguous. The version number aligns with the year of the Current release (e.g., 27.0.0 in April 2027), not with when it transitions to LTS (October). Consider rewording to "Version numbers align with the year of the Current release" or "Version numbers align with the calendar year of their initial Current release" for clarity.

Suggested change
- **Version numbers align with the year of the first Current release and transition to LTS**: 27.0.0 in 2027, 28.0.0 in 2028.
- **Version numbers align with the calendar year of their initial Current release**: 27.0.0 in 2027, 28.0.0 in 2028.

Copilot uses AI. Check for mistakes.
- **Reduced Releasers' burden**.

### New Schedule

| Phase | Duration | Description |
| ------- | --------- | ----------------------------------------------- |
| Alpha | 5 months | Oct to Mar. Early testing, semver-major allowed |
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's an inconsistency in the Alpha duration. The table at line 62 states "Alpha | 5 months | Oct to Mar", but counting from October to the following April is 6 months (October, November, December, January, February, March = 6 months). The timeline table also confirms this: Alpha begins Oct 2026, and Current release is Apr 2027, which is 6 months apart. Either the duration should be corrected to "6 months" or the date range should be adjusted to match "5 months".

Suggested change
| Alpha | 5 months | Oct to Mar. Early testing, semver-major allowed |
| Alpha | 6 months | Oct to Mar. Early testing, semver-major allowed |

Copilot uses AI. Check for mistakes.
| Current | 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 (EOL)](https://nodejs.org/en/about/eol).
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The total support duration calculation appears to be incorrect. According to the table above, Alpha is 5 months, Current is 6 months, and LTS is 29 months, which totals 40 months, not 35 months. However, if we're calculating from the first Current release (not from Alpha start), it would be 6 + 29 = 35 months. This should be clarified to specify "35 months from Current release to End of Life" or the calculation should be corrected to reflect the actual total time including Alpha.

Suggested change
Total support: 35 months from release to [End of Life (EOL)](https://nodejs.org/en/about/eol).
Total support: 35 months from first Current release to [End of Life (EOL)](https://nodejs.org/en/about/eol).

Copilot uses AI. Check for mistakes.

### About the Alpha Channel

The Alpha channel fills the early-testing role that odd-numbered releases once served, but with a key difference: semver-major changes are allowed during Alpha. Alpha releases are signed,
tagged, and tested through [CITGM](https://github.com/nodejs/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.

This is different from [Nightly builds](https://nodejs.org/download/nightly/), which remain
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
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "to not be backported" uses a split infinitive. While this is grammatically acceptable in modern English, "not to be backported" would be more traditional and slightly more natural. This is a minor stylistic suggestion.

Suggested change
- during Pull Request review, reviewers add a label requesting the change to not be backported
- during Pull Request review, reviewers add a label requesting the change not to be backported

Copilot uses AI. Check for mistakes.
(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 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
upcoming breaking changes. Not intended for production use.

**What to expect:**

- Semver-major changes may land during this phase.
Copy link

Copilot AI Feb 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "semver-major changes are allowed during Alpha" is mentioned twice in close proximity (lines 71 and 92). While line 71 mentions it as one characteristic and line 92 lists it in the "What to expect" section, this repetition could be condensed for better readability. Consider whether both mentions are necessary or if the information could be presented more concisely.

Suggested change
- Semver-major changes may land during this phase.

Copilot uses AI. Check for mistakes.
- 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).
- **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 months old.

## Timeline

![New Node.js Release Schedule](/static/images/blog/announcements/2026-new-release-schedule.svg)

### Node.js 26 Schedule (existing model)

| Milestone | Date |
| ----------- | ------------ |
| 26.0.0 | April 2026 |
| Enters LTS | October 2026 |
| Maintenance | October 2027 |
| End of Life | April 2029 |

Node.js 26 follows the existing schedule. This is the last release line under the current model.

### Node.js 27 Schedule (new model)

| Milestone | Date |
| ------------ | ------------ |
| Alpha begins | October 2026 |
| 27.0.0 | April 2027 |
| Enters LTS | October 2027 |
| End of Life | March 2030 |

Node.js 27 is the first release line under the new schedule.

### The Next 10 Years

| Version | Alpha | Current | LTS | End of Life |
| ------- | -------- | -------- | -------- | ----------- |
| 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 |

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 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).
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading