Skip to content

feat: Node.js 27.0.0-alpha.0.0.0 - #2678

Open
nschonni wants to merge 4 commits into
nodejs:mainfrom
nschonni:stackbrew-mod
Open

nschonni wants to merge 4 commits into
nodejs:mainfrom
nschonni:stackbrew-mod

Conversation

@nschonni

@nschonni nschonni commented Oct 30, 2026 •

Copy link
Copy Markdown
Member

Description

Adds the new Node.js 27 Alpha release.

Motivation and Context

Converts the stackbrew as a first step to make the external file calls a bit easier.
Drops local version.json metadata for the source of truths upstream in the nodejs/Release and individual release's index.json metadata.

Testing Details

Example Output(if appropriate)

Types of changes

  • Documentation
  • Version change (Update, remove or add more Node.js versions)
  • Variant change (Update, remove or add more variants, or versions of variants)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Other (none of the above)

Checklist

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING.md document.
  • All new and existing tests passed.

Comment thread .github/workflows/official-pr.yml Resolved
@nschonni
nschonni force-pushed the stackbrew-mod branch 2 times, most recently from 3638075 to 5b2f058 Compare October 30, 2026 21:31
@nschonni nschonni changed the title chore: convert stackbrew to MJS feat: Node.js 27.0.0-alpha.0.0.0 Oct 30, 2026
@nschonni

Copy link
Copy Markdown
Member Author

@MikeMcC399 here is what the stackbrew will add for the new alpha release (with the rest of the file unchanged.

Tags: 27.0.0-alpha.0.0.0-alpine3.23
Architectures: amd64, arm64v8
GitCommit: 3bd48058ca58ebb613646bd1aa225f44032e47e4
Directory: 27/alpine3.23

Tags: 27.0.0-alpha.0.0.0-alpine3.24
Architectures: amd64, arm64v8
GitCommit: 3bd48058ca58ebb613646bd1aa225f44032e47e4
Directory: 27/alpine3.24

Tags: 27.0.0-alpha.0.0.0-bookworm
Architectures: amd64, arm64v8, ppc64le
GitCommit: 3bd48058ca58ebb613646bd1aa225f44032e47e4
Directory: 27/bookworm

Tags: 27.0.0-alpha.0.0.0-bookworm-slim
Architectures: amd64, arm64v8, ppc64le
GitCommit: 3bd48058ca58ebb613646bd1aa225f44032e47e4
Directory: 27/bookworm-slim

Tags: 27.0.0-alpha.0.0.0-trixie
Architectures: amd64, arm64v8, ppc64le, s390x
GitCommit: 3bd48058ca58ebb613646bd1aa225f44032e47e4
Directory: 27/trixie

Tags: 27.0.0-alpha.0.0.0-trixie-slim
Architectures: amd64, arm64v8, ppc64le, s390x
GitCommit: 3bd48058ca58ebb613646bd1aa225f44032e47e4
Directory: 27/trixie-slim

Still need to resolve the buildmatrix version comparison issue

Comment thread genMatrix.js

const getFullNodeVersionFromDockerfile = (file) =>
fs.readFileSync(file, 'utf8').match(/^ENV NODE_VERSION=(\d*\.*\d*\.\d*)/m)[1];
fs.readFileSync(file, 'utf8').match(/^ENV NODE_VERSION=(\S*)/m)[1];

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

tried to use a real semver regex, but figured out that those are multi-match, and this was "good enough"

Comment thread package.json Resolved
Comment thread stackbrew.mjs Resolved
Comment thread stackbrew.mjs Resolved
Comment thread stackbrew.mjs
let tags;

if (isAlpha) {
// Only push explicit variants during the Alpha phase

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Made a call not to include any plain 27, 27.0.0, etc tags during the Alpha, and only have specific versions that people are explictly opting into.

Comment thread versions.json
}
},
"26": {
"start": "2026-05-05",

@nschonni nschonni Oct 30, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This wasn't used, and was copy/pasted from the nodejs/Release values anyway.
There are sometimes gaps there, but that isn't fixed by have a value here

@nschonni
nschonni marked this pull request as ready for review October 30, 2026 23:11
@nschonni
nschonni requested a review from a team October 30, 2026 23:11
@MikeMcC399

Copy link
Copy Markdown
Contributor

@nschonni

I wasn't expecting this to happen so fast, so thanks for putting this together!

I like that there are no floating tags for this Alpha release! As you know this is still very much in general discussion with lots of different opinions! (nodejs/node#67135 & nodejs/Release#1171)

I'm not sure if Alpine Linux 3.23 should be included in 27 Alpha as this will be short-lived. Alpine Linux plans for new releases every May and November, so I'd expect an Alpine Linux 3.25 in the next weeks, which we'd want to transition to and then drop Alpine Linux 3.23.

There should also be some documentation added to the README about Alpha.

I'm also not sure if we should release this one, or just treat it as a dry-run exercise and wait for the next Alpha release. There hasn't been any user specifically asking for an Alpha Docker build so far.

There is no release plan in https://github.com/nodejs/Release/issues for Node.js 27 Alpha, but I'd expect a 2-week cadence like previous current versions have had, which would mean Nov 11, 2026 for the next one. Maybe @sxa from the releasers team can help us understand the plans?

@MikeMcC399 MikeMcC399 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I already left some comments about the Alpha release.

I'm wondering if the stackbrew enhancement commit should be extracted into its own PR, since this is a general improvement which helps also for other release lines, not just the 27 Alpha.

@MikeMcC399

Copy link
Copy Markdown
Contributor

Also I just discovered that there is no published link to the documentation. nodejs/nodejs.org#9254

@nschonni

Copy link
Copy Markdown
Member Author

Yeah, I started this PR as a small stackbrew one, but ended up morphing it into the 27 one, since I needed that part to test out how it would handle the Alpha concept.
Might push a last cleanup for my own comments, but I can also open a separate PR without the bump in parallel

@nschonni
nschonni force-pushed the stackbrew-mod branch 2 times, most recently from 1b385f3 to da3c47d Compare October 31, 2026 15:56
@nschonni

Copy link
Copy Markdown
Member Author

I think this could likely land as-is with the minimal v27.
Maybe the outstanding question, is whether a new minimal alpha tag should be introduced. Don't think a wide array of new alpha-* tags are needed, but if people want to start seeing if the latest in CI, we might need a few.

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