Skip to content

Remove ESLint from the preset stack #7

Description

@Radiergummi

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

  • Delete js/src/eslint/base.js, js/src/eslint/vue.js and their .d.ts files.
  • Drop the ./eslint and ./eslint/vue entries from exports in js/package.json. This is a breaking change for every consumer, so it lands in a major.
  • Remove the ESLint plugins from dependencies and eslint from peerDependencies.
  • Move any surviving rules into js/src/oxlint/base.js and vue.js.
  • Delete 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.
  • Drop eslint-config-prettier. It exists solely to switch off ESLint formatting rules that would fight oxfmt.
  • Update the README's ecosystem table and the verify command, which currently checks for eslint.config.js importing the preset.
  • Update renovate/javascript.json, which has a rule group for ESLint plugins.
  • Bump the major and write the CHANGELOG entry, tagged 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    eslint-removalPart of removing ESLint from the preset stack

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions