Skip to content

Make Oxlint the primary linter - #8208

Draft
gonzaloriestra wants to merge 1 commit into
gonzalo/oxlint-02-nativefrom
gonzalo/oxlint-03-primary
Draft

Make Oxlint the primary linter#8208
gonzaloriestra wants to merge 1 commit into
gonzalo/oxlint-02-nativefrom
gonzalo/oxlint-03-primary

Conversation

@gonzaloriestra

@gonzaloriestra gonzaloriestra commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Why

This is the third step of the ESLint-to-Oxlint migration. After establishing native Oxlint parity in CI, this layer makes Oxlint authoritative for migrated rules and leaves ESLint responsible only for compatibility gaps.

What changed

  • derive an ESLint disable layer from enabled rules in oxlint.json, avoiding duplicated checks and rule drift
  • map Oxlint TypeScript, import, and Node plugin names back to their ESLint equivalents
  • retain ESLint checks that Oxlint cannot yet replace, including Nx boundaries, local CLI rules, import ordering, naming conventions, and unsupported JSDoc/TSDoc rules
  • label ESLint explicitly as a compatibility check in scripts, CI, and contributor documentation
  • run Oxlint fixes before ESLint compatibility fixes
  • preserve the full ESLint autofix configuration used to make generated GraphQL output deterministic
  • suppress ESLint unused-disable reporting because directives can now target rules owned by Oxlint

Validation

  • pnpm lint:eslint --output-style=static
  • pnpm lint
  • pnpm graphql-codegen with no generated-file changes
  • verified representative ESLint effective config disables Oxlint-owned rules while retaining compatibility rules
  • git diff --check

The compatibility-only ESLint pass decreased locally from approximately 19.8 seconds to 16.2 seconds; plugin and parser startup now dominate its remaining runtime.

@github-actions github-actions Bot added the no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. label Jul 30, 2026

gonzaloriestra commented Jul 30, 2026

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant