chore(deps): upgrade build tooling to Node 24#6073
Merged
Conversation
Converge all Node references on Node 24 (current Active LTS), eliminating the prior drift where local dev + CI lint/test ran Node 20 while release/integration builds ran Node 22. Node is build-time only here; the server ships a Go binary with the UI bundled as static assets. - .mise.toml: node 20 -> 24 - ui/Dockerfile: node:22-alpine -> node:24-alpine - build/internal/ui.go, build/testing/ui.go: node:22 -> node:24 bullseye-slim - ui/package.json: @types/node ^20 -> ^24 (lockfile regenerated) - AGENTS.md, ui/AGENTS.md: doc prose updated Signed-off-by: Mark Phelps <[email protected]>
Contributor
There was a problem hiding this comment.
Verdict: approve
Build-tooling alignment PR with nothing new since the prior review — all Node version bumps are consistent and correct. No changes requested.
🤖 Automated review by the Flipt PR review agent.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## v2 #6073 +/- ##
=======================================
Coverage 61.45% 61.45%
=======================================
Files 142 142
Lines 14323 14323
=======================================
Hits 8802 8802
Misses 4783 4783
Partials 738 738
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
markphelps
added a commit
that referenced
this pull request
Jun 24, 2026
* chore: add docs to gitignore Signed-off-by: Mark Phelps <[email protected]> * chore(deps): upgrade build tooling to Node 24 Flipt v1 had Node version drift across build tooling: local dev + CI lint/test ran Node 20 (via the .mise.toml pin) and the Dagger release build, while the UI dev Dockerfile was still on Node 18 and @types/node was ^18. Node 18 and 20 are now past/nearing EOL. This converges everything on Node 24 (current Active LTS, supported to April 2028), mirroring the v2 branch upgrade in #6073. Node here is build-time only — production ships a single Go binary with the UI bundled as static assets, so there is no Node runtime to upgrade. This is purely build-tooling alignment. Changes: - .mise.toml: node "20" -> "24" (local dev + CI lint/test via mise) - build/internal/ui.go: node:20-bullseye-slim -> node:24-bullseye-slim - ui/Dockerfile: node:18-alpine3.16 -> node:24-alpine - ui/package.json: @types/node ^18.19.118 -> ^24.13.2 (lockfile regenerated — diff limited to @types/node + transitive undici-types) Signed-off-by: Mark Phelps <[email protected]> --------- Signed-off-by: Mark Phelps <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Flipt v2 had Node version drift across its build tooling: local dev + CI lint/test jobs ran Node 20 (via the
.mise.tomlpin), while release and integration builds ran Node 22 (Dagger container images), and@types/nodewas still^20. Node 20 is now past EOL. This PR converges everything on Node 24 (current Active LTS, supported to April 2028).Node here is build-time only — production ships a single Go binary with the UI bundled as static assets, so there is no Node runtime to upgrade. This is purely build-tooling alignment.
Changes
.mise.toml:node = "20"→node = "24"(drives local dev + CI lint/test via mise)ui/Dockerfile:node:22-alpine→node:24-alpinebuild/internal/ui.go:node:22-bullseye-slim→node:24-bullseye-slim(release build, both refs)build/testing/ui.go:node:22-bullseye-slim→node:24-bullseye-slim(integration build)ui/package.json:@types/node^20.19.0→^24.13.2(lockfile regenerated — diff limited to@types/node+ transitiveundici-types)AGENTS.md/ui/AGENTS.md: doc prose updated to Node 24Verification
Local (Node 24.17.0):
npm ci·npm run lint·npm run test(26/26) ·npm run build(tsc clean — no type errors from the@types/nodemajor bump)mise run build: producedbin/fliptwith bundled UI assets;go mod tidyleft a clean treeDagger on
node:24-bullseye-slim:dagger call test --source=. ui(integration UI build) ✔dagger call build --source=.(release build) ✔