Skip to content

feat(ranges): add an alpha range and keep alpha releases out of the others - #90

Merged
botandbang merged 5 commits into
mainfrom
bnb/ranges-alpha
Oct 20, 2026
Merged

botandbang merged 5 commits into
mainfrom
bnb/ranges-alpha

Conversation

@botandbang

Copy link
Copy Markdown
Contributor

Starting with Node.js 27, each line gets vN.0.0-alpha.X.Y.Z releases before its first Current release (core support landed in #86). Without this, all.newest turns into an alpha during the Alpha phase, and old alphas later show up in current and eol.

Added: an alpha range and alias that lists the alphas of lines in the Alpha phase, documented in both READMEs. ranges(filter, options) now passes fetch and now through to core. ranges/test/alpha.test.js covers every phase, using the 27.x schedule from nodejs/Release#1188.

Changed: one check at the top of the release loop keeps alphas out of every range except alpha. ranges now depends on @nodevu/core ^1.0.0 and @nodevu/aliases ^1.0.0, which link to the workspace packages; before this it tested against the published core 0.3.0. ranges can't be published until core 1.x is on npm.

Five existing ranges tests fail right now because they use live data and no line is in the lts phase until 26.x's first LTS release. The next PR in this stack fixes that.

ovflowd and others added 3 commits October 19, 2026 14:32
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>
…thers

Node.js 27 starts shipping vN.0.0-alpha.X.Y.Z releases before a line's
first Current release. ranges now skips them everywhere except a new
`alpha` range, which lists the alphas of a line in its Alpha phase, so
`all.newest` stays the newest stable release. ranges also takes an
optional second `options` argument that it passes to @nodevu/core, and
depends on the 1.0.0 workspace versions of core and aliases.
botandbang and others added 2 commits October 20, 2026 18:09
…91)

Co-authored-by: botandbang <337765928+botandbang@users.noreply.github.com>
@botandbang
botandbang merged commit a7537fc into main Oct 20, 2026
18 checks passed
@botandbang
botandbang deleted the bnb/ranges-alpha branch October 20, 2026 22:15
@github-actions github-actions Bot mentioned this pull request Oct 20, 2026
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.

2 participants