#215 took the frontend to eslint 9 (flat config, react-hooks 7, react-refresh 0.5.3, vitest 4, jsdom 29, plugin-react 6). It stopped short of eslint 10 for one reason, and it is not ours to fix.
Why 10 is blocked
eslint-plugin-react has no release that supports eslint 10:
- latest is 7.37.5, peering
eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7
- its
next dist-tag is an ancient 7.8.0-rc.0 — there is no prerelease with support
This is not stale peer metadata. Forcing the install produces a linter that crashes on the first file:
TypeError: Error while loading rule 'react/display-name':
contextOrFilename.getFilename is not a function
at resolveBasedir (eslint-plugin-react/lib/util/version.js:31)
context.getFilename() is an API eslint 10 removed. The plugin genuinely does not run.
The only way to eslint 10 today is to drop eslint-plugin-react entirely, losing react/jsx-key, react/display-name, the jsx-runtime handling and the rest — trading real rule coverage for a version number. Rejected.
The trigger
Bump when eslint-plugin-react ships a release whose peer range includes ^10. Then it is a two-line change: eslint and @eslint/js to 10.x. The flat config #215 introduced is already the format eslint 10 requires, so no config work is left.
Blocks: the eslint half of any future npm-major Dependabot group.
#215 took the frontend to eslint 9 (flat config, react-hooks 7, react-refresh 0.5.3, vitest 4, jsdom 29, plugin-react 6). It stopped short of eslint 10 for one reason, and it is not ours to fix.
Why 10 is blocked
eslint-plugin-reacthas no release that supports eslint 10:eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7nextdist-tag is an ancient7.8.0-rc.0— there is no prerelease with supportThis is not stale peer metadata. Forcing the install produces a linter that crashes on the first file:
context.getFilename()is an API eslint 10 removed. The plugin genuinely does not run.The only way to eslint 10 today is to drop
eslint-plugin-reactentirely, losingreact/jsx-key,react/display-name, thejsx-runtimehandling and the rest — trading real rule coverage for a version number. Rejected.The trigger
Bump when
eslint-plugin-reactships a release whose peer range includes^10. Then it is a two-line change:eslintand@eslint/jsto 10.x. The flat config #215 introduced is already the format eslint 10 requires, so no config work is left.Blocks: the eslint half of any future npm-major Dependabot group.