chore(deps): upgrade build tooling to Node 24#6081
Merged
Conversation
Signed-off-by: Mark Phelps <[email protected]>
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]>
markphelps
enabled auto-merge (squash)
June 24, 2026 14:12
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6081 +/- ##
==========================================
+ Coverage 65.26% 65.34% +0.07%
==========================================
Files 169 169
Lines 14186 14186
==========================================
+ Hits 9259 9270 +11
+ Misses 4247 4240 -7
+ Partials 680 676 -4
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:
|
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 v1 had Node version drift across its build tooling: local dev + CI lint/test ran Node 20 (via the
.mise.tomlpin) and the Dagger release build, while the UI devDockerfilewas still on Node 18 and@types/nodewas^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"→node = "24"(drives local dev + CI lint/test via mise)build/internal/ui.go:node:20-bullseye-slim→node:24-bullseye-slim(Dagger release build)ui/Dockerfile:node:18-alpine3.16→node:24-alpine(UI dev image)ui/package.json:@types/node^18.19.118→^24.13.2(lockfile regenerated — diff limited to@types/node+ transitiveundici-types)Notes vs. the v2 PR (#6073)
v1 carried more drift than v2 and a slightly different layout:
Dockerfilewas on Node 18 (v2 was on 22).build/internal/ui.go);build/testing/ui.gohas none, so it is untouched.AGENTS.mdfiles and no.githubsetup-node /.nvmrc/enginesto update.examples/nextjs/*/Dockerfileleft untouched (user example apps, out of scope).Verification
Local (Node 24.17.0 via mise):
npm install(lockfile diff limited to@types/node+undici-types)npm run build— tsc clean, no type errors from the@types/node18→24 major bumpnpm test— 21/21npm run lint— 0 errors (1 pre-existing prettier warning unrelated to this change)