Skip to content

feat: support the Alpha release phase - #86

Open
ovflowd wants to merge 1 commit into
cutenode:mainfrom
ovflowd:feat/alpha-release-phase
Open

ovflowd wants to merge 1 commit into
cutenode:mainfrom
ovflowd:feat/alpha-release-phase

Conversation

@ovflowd

@ovflowd ovflowd commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

This PR adds support for the Alpha phase of the new Node.js release schedule. Starting with 27.x, every release line gets Alpha releases (vN.0.0-alpha.X.Y.Z) before its first Current release, and schedule.json has an alpha date for it.

  • Releases keep their pre-release identifiers. Coercing them turned every Alpha release into v27.0.0, so they would overwrite each other, and v27.0.0 itself once it ships.
  • Every release has an alpha.isAlpha flag, like lts.isLts; the website uses the newest release's flags to tell a release line's status.
  • support.phases.dates has the alpha date, and support.phases.current is alpha during the Alpha phase instead of {}.
  • The README documents these, and now lists the phase dates under phases.dates, where the code puts them.

Release lines on the previous schedule get the same data as before, besides alpha.isAlpha being false. I compared the output with main for all 872 releases in today's index.json, at dates from 2016 to 2030.

The new tests pass made-up data through the fetch option, since the static test data is a snapshot of the real index.json, which has no Alpha releases yet.

With this, the website can drop its nodevu workaround; its tests pass against this branch without it.

Refs: nodejs/nodejs.org#9223

Starting with 27.x, every Node.js release line gets Alpha releases,
versioned as `vN.0.0-alpha.X.Y.Z`, before its first Current release,
and schedule.json has an `alpha` date for it.

Releases now keep their pre-release identifiers. Coercing them turned
every Alpha release into `vN.0.0`, so they would overwrite each other,
and `vN.0.0` itself once it ships. Every release has an `alpha.isAlpha`
flag, like `lts.isLts`, and `support.phases` has the `alpha` date, with
`alpha` as the current phase until the release line becomes Current.

Release lines on the previous schedule get the same data as before,
besides `alpha.isAlpha` being `false` on their releases. This holds for
all 872 releases in today's index.json.

Refs: https://nodejs.org/en/blog/announcements/evolving-the-nodejs-release-schedule
Refs: nodejs/nodejs.org#9223

Assisted-by: Claude Opus 5.5 <noreply@anthropic.com>
@ovflowd
ovflowd marked this pull request as ready for review October 19, 2026 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant