The removal itself. Blocked by everything else in this milestone; kept as a separate issue so the milestone has a clear terminal step and the work is written down before it is needed.
Depends on #1, #2, #3, #4, #5.
What removal involves
Payoff
The whole ESLint dependency tree disappears: eight plugins, the parser, eslint-config-prettier, and ESLint itself. Lint becomes a single oxlint invocation, which is substantially faster, and #6 becomes moot.
The removal itself. Blocked by everything else in this milestone; kept as a separate issue so the milestone has a clear terminal step and the work is written down before it is needed.
Depends on #1, #2, #3, #4, #5.
What removal involves
js/src/eslint/base.js,js/src/eslint/vue.jsand their.d.tsfiles../eslintand./eslint/vueentries fromexportsinjs/package.json. This is a breaking change for every consumer, so it lands in a major.dependenciesandeslintfrompeerDependencies.js/src/oxlint/base.jsandvue.js.eslint.buildFromOxlintConfig(...)from wherever it survives. Its only purpose is stopping ESLint from duplicating work oxlint already does; with ESLint gone the oxlint config no longer needs to be shaped for that consumer, which may allow simplifications in the base.eslint-config-prettier. It exists solely to switch off ESLint formatting rules that would fight oxfmt.verifycommand, which currently checks foreslint.config.jsimporting the preset.renovate/javascript.json, which has a rule group for ESLint plugins.JS.Payoff
The whole ESLint dependency tree disappears: eight plugins, the parser,
eslint-config-prettier, and ESLint itself. Lint becomes a single oxlint invocation, which is substantially faster, and #6 becomes moot.