chore(config-ui): modernize frontend toolchain and framework stack#9006
Open
DoDiODev wants to merge 1 commit into
Open
chore(config-ui): modernize frontend toolchain and framework stack#9006DoDiODev wants to merge 1 commit into
DoDiODev wants to merge 1 commit into
Conversation
Upgrade the config-ui frontend to current supported versions as one coupled change so the build stays green: - Node 18 -> 24, Yarn 3.4.1 -> 4.17.0 (Corepack, vendored release, .yarnrc.yml), nginx base image bump in config-ui/Dockerfile - Vite 8, TypeScript config update, ESLint flat config (eslint.config.mjs) replacing .eslintrc.js/.eslintignore, Vitest setup replacing .file-headerrc - React 18 -> 19 and antd 5 -> 6 with the resulting ref/hook/type fixes and a miller-columns-select compatibility patch - Add main-entry and miller-columns-select tests The q-dev connection-field files are touched only for the mandatory React 19 useRef(undefined) fix and Prettier formatting; no q-dev logic changes. Verified on Node 24.18.0 / Yarn 4.17.0: install --immutable clean, tsc --noEmit, eslint . (0 errors), yarn build (Vite 8), yarn test (4/4) all pass. Signed-off-by: DoDiODev <DoDiDev@proton.me>
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.
Motivation
Modernizes the
config-uifrontend toolchain and framework stack to currentsupported versions. This unblocks security updates, removes end-of-life runtimes
and keeps the UI buildable on current Node LTS.
Scope
Coupled framework/runtime upgrade (must land together to keep the build green):
release swap,
.yarnrc.yml), nginx base image bump inconfig-ui/Dockerfile..eslintrc.js/.eslintignoreto ESLint flat config (eslint.config.mjs),Vitest setup (
vitest.config.ts,vitest.setup.ts) replacing the old.file-headerrc.component/ref/hook fixes and a small
miller-columns-selectcompatibilitypatch (
.yarn/patches/...).src/__tests__/main-entry.test.tsandsrc/plugins/components/__tests__/miller-columns-select.test.tsx.All changes are limited to
config-ui/.Note on diff size (please read before reviewing)
The raw diff is 42 files, +6,535 / −6,546 lines, but ~96% of that is
generated or vendored and requires no line-by-line review:
yarn.lock.yarn/releases/yarn-3.4.1.cjs→yarn-4.17.0.cjsThe actual hand-written review surface is ~700–900 lines across ~40 small
files:
package.json(dependency bumps),eslint.config.mjs(+87, new flatconfig),
vite.config.ts,vitest.config.ts/setup,Dockerfile(+4), theantd patch (+34), plus ~25
.tsx/.tsfiles with 2–37 lines each ofReact-19/antd-6 ref/hook/type fixes, and two new test files.
git diff --checkflags trailing whitespace only in the two generated/vendoredartifacts above (Yarn binary + patch file); this is expected.
Note on the q-dev connection-field changes
Three files under
config-ui/src/plugins/register/q-dev/connection-fields/aremodified (
aws-credentials.tsx,identity-center-config.tsx,s3-config.tsx).These are required by the React 19 upgrade: React 19 removed the zero-argument
useRefoverload, souseRef<string>()must becomeuseRef<string>(undefined),otherwise
tsc --noEmitfails. One file (aws-credentials.tsx) additionallycarries two Prettier-only reformatting hunks (parentheses around
??, JSXline-wrapping) required for a green
eslint .. No behavioral changes.Automated tests
All run on Node 24.18.0 / Yarn 4.17.0:
yarn install --immutable→ clean (lockfile unchanged)yarn exec tsc --noEmit→ passyarn exec eslint .→ pass (0 errors, 17 pre-existing unused-var warnings)yarn build(Vite 8) → pass (1879 modules)yarn test(Vitest) → 4/4 passedManual test
Rollback
Revert this single commit; no data migrations or backend coupling involved.
Known follow-ups
and resolved via the vendored patch / overrides.