Skip to content

Promote Alpine/x64 to tier 2 - #63737

Closed
sxa wants to merge 1 commit into
nodejs:mainfrom
sxa:alpine_tier2
Closed

sxa wants to merge 1 commit into
nodejs:mainfrom
sxa:alpine_tier2

Conversation

@sxa

@sxa sxa commented Jun 3, 2026

Copy link
Copy Markdown
Member

As per #62764

FYI @nodejs/tsc - I've listed the version associated with the versions of Alpine we currently build against.

@nodejs-github-bot

nodejs-github-bot commented Jun 3, 2026 •

Copy link
Copy Markdown
Collaborator

Review requested:

  • @nodejs/build
  • @nodejs/tsc

@nodejs-github-bot nodejs-github-bot added build Issues and PRs related to Node.js builds or CI infrastructure. doc Issues and PRs related to Node.js documentation. labels Jun 3, 2026
@MikeMcC399

MikeMcC399 commented Jun 5, 2026 •

Copy link
Copy Markdown
Contributor

This change would be highly desirable from the point of view of the @nodejs/docker team as node:alpine images are being published on Docker official images in the node Docker repo.

The mismatch between "official" status on Docker hub and "Experimental" status in Node.js was raised in 2023 in nodejs/docker-node#2011 by @BethGriggs and remains to this day unresolved.

Confidence would be increased if there were also an Alpine team established, as proposed in nodejs/admin#1065 so that Alpine / musl issues have a group of skilled users available to respond.
Edit: resolved

node:alpine x64 images have been in widespread usage for a number of years.

@aduh95

aduh95 commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

What would be the semverness of such change?

@MikeMcC399

MikeMcC399 commented Jun 10, 2026 •

Copy link
Copy Markdown
Contributor

I assume that it would be semver-minor PRs that contain new features and should be released in the next minor version. as a backwards-compatible promotion.

@sxa

sxa commented Jun 10, 2026

Copy link
Copy Markdown
Member Author

It's not a functional change but an interesting question. I'd say +1 to what Mike said - probably considered semver-minor - even though there are no code changes it's similar to new functionality being added which doesn't affect anything else.

I certainly don't see any reason for it to be considered semver-major, and I am anticipating here that it would apply to all current release lines in order to resolve the complications on the docker-node side.

@mcollina mcollina left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

lgtm

@Renegade334 Renegade334 added the alpine Issues and PRs related to the Alpine Linux platform. label Jun 20, 2026
@Renegade334

Copy link
Copy Markdown
Member

Adding a label for consistency with other build platforms.

@sxa sxa self-assigned this Jun 23, 2026
@sxa

sxa commented Jun 23, 2026 •

Copy link
Copy Markdown
Member Author

For anyone approving this it would be good to have your view on the lifecycle/Alpine version topic from #62764 (comment) - the TL;DR is: should we update the Alpine build level of the release machines (presumably increasing the musl version requirement) during the lifecycle of a node release?

@legendecas legendecas left a comment •

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

the TL;DR is: should we update the Alpine build level of the release machines (presumably increasing the musl version requirement) during the lifecycle of a node release?

Given that the actual "versions" column of the Alpine support does not specify the Alpine version, other the kernel and musl version, I'd say "yes".

In addition, there is a note about the platform version support:

node/BUILDING.md

Lines 103 to 105 in bfb2fa7

Node.js does not support a platform version if a vendor has expired support
for it. In other words, Node.js does not support running on End-of-Life (EoL)
platforms. This is true regardless of entries in the table below.

@sxa

sxa commented Jun 24, 2026

Copy link
Copy Markdown
Member Author

the TL;DR is: should we update the Alpine build level of the release machines (presumably increasing the musl version requirement) during the lifecycle of a node release?

Given that the actual "versions" column of the Alpine support does not specify the Alpine version, other the kernel and musl version, I'd say "yes".

Having thought about it for the last few days I was starting to lean the other way :-) We could take an approach of "bouncing along the floor" of the Alpine versions, updating by one each time a version goes out.

I don't think we have any other platforms where a release has the potential to actively stop working in a customer's environment during a Node lifecycle (as it presumably would if they stayed on the out of support version when we bumped it up in the release CI assuming it would require at least the same version of musl at runtime vs build time which is generally the case for glibc) I'm also in the Build WG so we'd have to keep on top of this in order to make it work so that may be influencing my thoughts on this a little ... I'd say I'm about 60:40 towards keeping it constant at the moment but more input is welcome!

@nschonni

nschonni commented Jul 4, 2026

Copy link
Copy Markdown
Member

Maybe it should be a different PR, but should the other architectures be added, but remain as "Experimental in the table https://github.com/nodejs/docker-node/blob/3b323804ad9882860ef2b14a36ccda1c65886a8b/versions.json
EX:

  • 26: x64 and arm64v8
  • 24: x64, arm64v8, and s390x
  • 22: x64, arm32v6, arm32v7, arm64v8, and s390x

@MikeMcC399

Copy link
Copy Markdown
Contributor

Maybe it should be a different PR, but should the other architectures be added, but remain as "Experimental in the table https://github.com/nodejs/docker-node/blob/3b323804ad9882860ef2b14a36ccda1c65886a8b/versions.json EX:

  • 26: x64 and arm64v8
  • 24: x64, arm64v8, and s390x
  • 22: x64, arm32v6, arm32v7, arm64v8, and s390x

According to my comment in #62764 (comment) the other architectures aren't tested, so any extension to architectures in addition to x64 would need separate consideration as you suggest.

This is in line with https://github.com/nodejs/docker-node#musl-builds-for-alpine which currently states:


musl builds for Alpine

musl builds for amd64 are listed under support tier "Experimental" and are tested by the Node.js build process before being used in Docker images. "Experimental" status for Node.js is defined as:

Experimental: May not compile or test suite may not pass. The core team does not create releases for these platforms. Test failures on experimental platforms do not block releases. Contributions to improve support for these platforms are welcome.

musl builds for other architectures, including arm64, are not tested before release.


That section would need to be updated for amd64 (x64) as part of the promotion process.

As it stands at the moment, the statement "musl builds for other architectures, including arm64, are not tested before release." would continue to be true.

@koko5677

This comment was marked as spam.

@MikeMcC399

This comment was marked as resolved.

@MikeMcC399

This comment was marked as outdated.

@sxa

sxa commented Sep 24, 2026

Copy link
Copy Markdown
Member Author

Rebased after the length of the table was changed in https://github.com/nodejs/node/pull/65427/changes

@sxa
sxa requested a review from MikeMcC399 September 24, 2026 11:07
Comment thread BUILDING.md Outdated

@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.

LGTM and thanks for all the effort to make this happen!
It clears the ground to resolve the long-standing issue of x64 Node.js Alpine Linux Docker images being experimental, although they're published to https://hub.docker.com/_/node as "official images".

@MikeMcC399

This comment was marked as resolved.

@sxa

sxa commented Sep 24, 2026

Copy link
Copy Markdown
Member Author

Updated to 3.22 and removed the extra experimental line

@sxa sxa added the commit-queue PRs queued for automated landing through the Commit Queue. label Sep 24, 2026
@MikeMcC399

MikeMcC399 commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

@sxa

Should the PR have the semver-minor PRs that contain new features and should be released in the next minor version. label attached to it for clarity? (see #63737 (comment)).

Also, what about notable-change PRs with changes that should be highlighted in changelogs. ?

@nodejs-github-bot nodejs-github-bot added commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. and removed commit-queue PRs queued for automated landing through the Commit Queue. labels Sep 24, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Commit Queue failed

   ⚠  Could not retrieve the email or name of the PR author's from user's GitHub profile!
   ✖  GitHub CI is still running

The pull request was removed from the Commit Queue and labeled commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. . After resolving the failure, remove that label and add commit-queue PRs queued for automated landing through the Commit Queue. to retry.

Full Commit Queue output
�[36m⠋�[39m Loading data for nodejs/node/pull/63737
�[36m⠋�[39m Loading data for nodejs/node/pull/63737
�[36m⠋�[39m Getting collaborator contacts from README of nodejs/node
�[36m⠋�[39m Getting PR from nodejs/node/pull/63737
�[36m⠋�[39m Getting reviews from nodejs/node/pull/63737
�[36m⠋�[39m Getting comments from nodejs/node/pull/63737
�[36m⠋�[39m Getting commits from nodejs/node/pull/63737
✔  Done loading data for nodejs/node/pull/63737
----------------------------------- PR info ------------------------------------
Title      Promote Alpine/x64 to tier 2 (#63737)
   ⚠  Could not retrieve the email or name of the PR author's from user's GitHub profile!
Branch     sxa:alpine_tier2 -> nodejs:main
Labels     doc, build, commit-queue, alpine
Commits    4
 - doc: promote alpine to tier 2. List alpine 3.21 as minimum
 - Merge branch 'main' into alpine_tier2
 - Merge branch 'main' into alpine_tier2
 - fixup
Committers 2
 - Stewart X Addison <sxa@ibm.com>
 - GitHub <noreply@github.com>
PR-URL: https://github.com/nodejs/node/pull/63737
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Ruy Adorno <ruy@vlt.sh>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/63737
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Ruy Adorno <ruy@vlt.sh>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Wed, 03 Jun 2026 16:56:29 GMT
   ✔  Approvals: 10
   ✔  - Matteo Collina (@mcollina) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4516123424
   ✔  - Rafael Gonzaga (@RafaelGSS) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4562775085
   ✔  - Robert Nagy (@ronag) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4562819658
   ✔  - Chengzhong Wu (@legendecas) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4562904837
   ✔  - Ruy Adorno (@ruyadorno) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4563045517
   ✔  - Joyee Cheung (@joyeecheung) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4563839635
   ✔  - Richard Lau (@richardlau) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-5304510907
   ✔  - Ulises Gascón (@UlisesGascon): https://github.com/nodejs/node/pull/63737#pullrequestreview-5131019761
   ✔  - James M Snell (@jasnell) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-5133290707
   ✔  - Mike McCready (@MikeMcC399): https://github.com/nodejs/node/pull/63737#pullrequestreview-5304376388
   ✖  GitHub CI is still running
   ℹ  Green GitHub CI is sufficient
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu

View workflow run

@sxa sxa added the semver-minor PRs that contain new features and should be released in the next minor version. label Sep 24, 2026
@MikeMcC399

Copy link
Copy Markdown
Contributor

@sxa You've got merge commits in the branch. You'll need to manually squash and rebase to get rid of them.

@sxa

sxa commented Sep 24, 2026

Copy link
Copy Markdown
Member Author

Added semver-minor. I'm not sure if this would really count as a notable change. My gut feel is that we might not want to shout about it too loudly in the changelog until it's visible on the web site but I'll leave it for any others who feel differently (the tag can be added later if desired) but 🤷🏻 - we haven't got anyone lined up to do that change at the moment. I'll check with the release team to see if anyone where has a strong opinion.

Signed-off-by: Stewart X Addison <sxa@ibm.com>
@sxa sxa added commit-queue PRs queued for automated landing through the Commit Queue. and removed commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. labels Sep 24, 2026
@nodejs-github-bot nodejs-github-bot added commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. and removed commit-queue PRs queued for automated landing through the Commit Queue. labels Sep 24, 2026
@nodejs-github-bot

Copy link
Copy Markdown
Collaborator

Commit Queue failed

   ⚠  Could not retrieve the email or name of the PR author's from user's GitHub profile!
   ✖  GitHub CI is still running

The pull request was removed from the Commit Queue and labeled commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. . After resolving the failure, remove that label and add commit-queue PRs queued for automated landing through the Commit Queue. to retry.

Full Commit Queue output
�[36m⠋�[39m Loading data for nodejs/node/pull/63737
�[36m⠋�[39m Loading data for nodejs/node/pull/63737
�[36m⠋�[39m Getting collaborator contacts from README of nodejs/node
�[36m⠋�[39m Getting PR from nodejs/node/pull/63737
�[36m⠋�[39m Getting reviews from nodejs/node/pull/63737
�[36m⠋�[39m Getting comments from nodejs/node/pull/63737
�[36m⠋�[39m Getting commits from nodejs/node/pull/63737
✔  Done loading data for nodejs/node/pull/63737
----------------------------------- PR info ------------------------------------
Title      Promote Alpine/x64 to tier 2 (#63737)
   ⚠  Could not retrieve the email or name of the PR author's from user's GitHub profile!
Branch     sxa:alpine_tier2 -> nodejs:main
Labels     doc, semver-minor, build, commit-queue, alpine
Commits    1
 - doc: promote alpine to tier 2. List alpine 3.21 as minimum
Committers 1
 - Stewart X Addison <sxa@ibm.com>
PR-URL: https://github.com/nodejs/node/pull/63737
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Ruy Adorno <ruy@vlt.sh>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
------------------------------ Generated metadata ------------------------------
PR-URL: https://github.com/nodejs/node/pull/63737
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Ruy Adorno <ruy@vlt.sh>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
--------------------------------------------------------------------------------
   ℹ  This PR was created on Wed, 03 Jun 2026 16:56:29 GMT
   ✔  Approvals: 10
   ✔  - Matteo Collina (@mcollina) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4516123424
   ✔  - Rafael Gonzaga (@RafaelGSS) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4562775085
   ✔  - Robert Nagy (@ronag) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4562819658
   ✔  - Chengzhong Wu (@legendecas) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4562904837
   ✔  - Ruy Adorno (@ruyadorno) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4563045517
   ✔  - Joyee Cheung (@joyeecheung) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-4563839635
   ✔  - Richard Lau (@richardlau) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-5304510907
   ✔  - Ulises Gascón (@UlisesGascon): https://github.com/nodejs/node/pull/63737#pullrequestreview-5131019761
   ✔  - James M Snell (@jasnell) (TSC): https://github.com/nodejs/node/pull/63737#pullrequestreview-5133290707
   ✔  - Mike McCready (@MikeMcC399): https://github.com/nodejs/node/pull/63737#pullrequestreview-5304376388
   ✖  GitHub CI is still running
   ℹ  Green GitHub CI is sufficient
--------------------------------------------------------------------------------
   ✔  Aborted `git node land` session in /home/runner/work/node/node/.ncu

View workflow run

sxa added a commit that referenced this pull request Sep 24, 2026
Signed-off-by: Stewart X Addison <sxa@ibm.com>
PR-URL: #63737
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Rafael Gonzaga <rafael.nunu@hotmail.com>
Reviewed-By: Robert Nagy <ronagy@icloud.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Ruy Adorno <ruy@vlt.sh>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Richard Lau <richard.lau@ibm.com>
Reviewed-By: Ulises Gascón <ulisesgascongonzalez@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>
@sxa

sxa commented Sep 24, 2026

Copy link
Copy Markdown
Member Author

Landed in bcf5850

@sxa sxa closed this Sep 24, 2026
@MikeMcC399 MikeMcC399 removed the commit-queue-failed PRs whose Commit Queue landing failed and need manual intervention before retrying. label Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

alpine Issues and PRs related to the Alpine Linux platform. build Issues and PRs related to Node.js builds or CI infrastructure. doc Issues and PRs related to Node.js documentation. semver-minor PRs that contain new features and should be released in the next minor version.

Projects

None yet

Development

Successfully merging this pull request may close these issues.