chore(lint): drop the unused react eslint plugins - #27
Merged
Merged
Conversation
eslint.config.js imported eslint-plugin-react and eslint-plugin-jsx-a11y and then never referenced either one. No react/ or jsx-a11y/ rule is configured anywhere in the flat config, and the repository contains no .tsx or .jsx files at all, so the two plugins have only ever been inert weight: 37 packages of it. They are also what blocks eslint 10. Both cap their eslint peer at 9, which is the ERESOLVE that makes every installing job on the open deps-dev pull request fail. Every plugin left behind already accepts eslint 10, and eslint-plugin-mocha 12 in fact requires it. Lint output is byte-identical before and after, 14 warnings and no errors, which is the expected result for removing plugins that were never registered.
frantuma
added a commit
that referenced
this pull request
Sep 12, 2026
Replaces the Dependabot deps-dev pull request, which cannot install at all: eslint 10 conflicts with eslint-plugin-jsx-a11y, whose peer range stops at eslint 9. Those plugins were unused and went in #27, so the tree resolves again. Takes everything that request proposed except two packages. typescript stays at 5.9.3. Dependabot offers 7.0.2, which is genuinely latest, but typescript-eslint declares `>=4.8.4 <6.1.0` on every release including its canary, so linting cannot accept it yet. eslint-plugin-mocha stays on 11, moving 11.2.0 to 11.3.0 rather than to 12. Version 12 drops no-sibling-hooks with no successor among its 33 rules and renames two more that are configured here, and buys nothing: the 11 line accepts eslint >=9, so eslint 10 does not require it. The rest move as proposed: eslint and @eslint/js to 10, lerna to 10, webpack-cli to 7, lint-staged to 17, commitlint to 21, globals to 17, and patch bumps for babel-cli, core-js, dedent, rimraf, webpack and the emscripten types. Three of those majors are not covered by the test suite and were exercised directly. commitlint 21 still loads the inline-plugin config and enforces every rule in it. lint-staged 17 still runs eslint from the pre-commit hook. lerna 10 pulls nx 23, which pins the same vulnerable smol-toml as nx 22, so the override still applies and the audit stays clean.
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.
Removes two ESLint plugins that were imported but never used. Small on its own, and it is what unblocks the eslint 10 upgrade that the open deps-dev PR (#4) cannot currently install.
They were dead
eslint.config.jsimported both plugins at the top and never referenced either again:Neither identifier appears anywhere else in the file, no
react/orjsx-a11y/rule is configured in any config block, and the repository contains zero.tsx/.jsxfiles. They cost 37 packages in the tree and 569 lines of lockfile.They block eslint 10
Both cap their eslint peer range at 9, which is the ERESOLVE that makes every installing job on #4 fail:
Everything we keep already accepts eslint 10 —
typescript-eslintandeslint-plugin-import-xare both^8.57.0 || ^9.0.0 || ^10.0.0,@eslint/js@10is^10.0.0,eslint-config-prettieris>=7,eslint-plugin-prettieris>=8.eslint-plugin-mocha@12goes further and requireseslint >=10.2.0, so mocha 12 and eslint 10 have to move together.Verification
A/B dry run on this branch, which resolves the full tree without writing anything:
npm i --dry-run --no-save eslint@^10.10.0 @eslint/js@^10.0.1 eslint-plugin-mocha@^12.0.2eslint-plugin-jsx-a11y@^6.10.2ERESOLVEThat isolates the two removed plugins as the sole blocker rather than inferring it from the CI log.
Lint output is unchanged — 14 problems, 0 errors, 14 warnings, the same findings as
main, all@typescript-eslint/no-explicit-any. That is the expected result for removing plugins that were never registered in any config block: had they been contributing rules, the count would move.No behaviour change, no rule configuration touched. The actual eslint 10 bump follows in a separate PR.