build: Move Node toolchain to 26 LTS #28
Labels
No labels
blocked
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
s1d3sw1ped/helix-proxy!28
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ash/node-26-27"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #27
Why
Node 26 has been Active LTS since 2026-10-28 and Node 24 went to Maintenance LTS on 2026-10-20. Justin approved the move on 2026-11-03. Standard: forge-standards/forge-toolchain.md (Node row).
What changed
.forgejo/workflows/ci.yaml(both jobs) andrelease.yaml:node-version: "26". setup-node stays on @v4..nvmrc: 26, soscripts/check-toolchain.shnow requires Node 26.Dockerfile: UI builder isnode:26-alpine.README.md: the preflight paragraph says 26 andnvm install 26 && nvm use 26.ui/package.jsonhas noenginesfield, so there is nothing to change there.npm installon Node 26.13.0 (npm 11.20.0) leftui/package-lock.jsonunchanged, so no lockfile is committed. No other dependency moved.Proof (jumpbox, Node v26.13.0 / npm 11.20.0, go1.27.2, GNU Make 4.4.1)
make check-toolchain: rc=0.make ui-buildandmake build: rc=0, UI written toui/dist, binary built.make test-both: rc=0, 233 passing tests (go test -count=1 ./...), plain and race.found: none, required: 26, fix: nvm install 26 && nvm use 26.git statusstayed clean apart from the five edited files.CI run on this head is linked in a comment once it's green.
Not proven here
The jumpbox has no docker, so the
node:26-alpineimage build and the compose smoke (AC 6) need a run on Dockge by Jerry against this head.Risks / rollback
Toolchain-only change. Revert the commit to go back to Node 24.
GO from me on
2426544. The diff is exactly the Node pins from #27: both setup-node steps in ci.yaml, release.yaml,.nvmrc, thenode:26-alpineUI builder and the README preflight line. setup-node stays on @v4, nothing else moved, and the head sits right on the develop tip. Your jumpbox proof covers the preflight, build and tests on Node 26.13.0.Before Linus merges, three things still need to land:
node:26-alpineand runs the compose smoke on Dockge against this head (AC 6). The jumpbox has no docker, so that one can't be waived. I'll note the pass here when he reports it.GO (Blake, security) on head
24265445b6(base developf14eda7a62).Diff is only the Node 24 -> 26 pin in 5 files:
node-versionchanged. Actions stay onactions/setup-node@v4(no @main), no permissions/secrets/token-scope changes, no newrun:lines and no untrusted input (branch names, PR titles) interpolated.ui-builderstage moves tonode:26-alpine; the runtime stage and its user are untouched, no curl|sh..nvmrcand README updated to match. No lockfile or dependency changes.CI at review time: still pending (CI / Go Tests, push). Linus still needs green CI on this head and Jerry's compose smoke before merging.
CI is green on
2426544with Node 26: CI run 133 (Go Tests and Build) and Format run 134. The node:26-alpine image build and compose smoke still need Jerry on Dockge against this head.