Skip to content

Prepare independent rules for ESLint removal - #8725

Open
gonzaloriestra wants to merge 10 commits into
gonzalo/oxlint-05-parityfrom
gonzalo/oxlint-06-rule-coverage
Open

gonzaloriestra wants to merge 10 commits into
gonzalo/oxlint-05-parityfrom
gonzalo/oxlint-06-rule-coverage

Conversation

@gonzaloriestra

@gonzaloriestra gonzaloriestra commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

WHY are these changes introduced?

Oxlint's native rules leave gaps in the existing CLI lint conventions. Prepare replacements before removing ESLint in #8211.

WHAT is this pull request doing?

Add independent JavaScript rules for naming, member and import ordering, workspace boundaries, unused imports, public API documentation, and core/Node conventions. Parse TSDoc directly. Focused tests cover these rules, including an Oxlint integration test that rejects loading ESLint or its upstream plugins.

This intermediate PR keeps the existing compatibility adapter and ESLint pass active. The final PR activates the independent rules and removes that dependency tree. The independent replacements cover repository conventions, with limitations documented in #8211; they do not reproduce every upstream option or behavior.

Enable the JSON-output command rule, preserve generated-file exemptions, and retain the public plugin exports. Keep the security emitter's exemption while compatibility remains active. Preserve generated import spacing and enable array formatting so regeneration matches the committed files. Normalize the integration test’s Node preload path for Windows, including paths with spaces. Run plugin tests in separate processes and serialize their files on Windows to limit native-buffer memory use. Run Nx plugins in-process in the integration test so detached workers cannot keep its temporary directory locked on Windows. Retry temporary-directory cleanup after child processes exit.

Validation

Full lint, frozen installation, and all 92 plugin tests passed. Uncached GraphQL generation leaves no generated-file changes. All 77 plugin tests also pass in the final ESLint-free setup. All non-e2e GitHub Actions checks pass, including the Windows test matrix.

Checklist

  • I've considered possible cross-platform impacts (Mac, Linux, Windows)
  • I've considered possible documentation changes
  • I've considered analytics changes to measure impact
  • The change is user-facing — I've identified the correct bump type and added a changeset

@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 Oct 1, 2026
@gonzaloriestra
gonzaloriestra added this pull request to stack #8726 October 1, 2026 12:23
@gonzaloriestra gonzaloriestra changed the title Preserve missing lint checks in Oxlint Prepare independent rules for ESLint removal Oct 1, 2026
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-06-rule-coverage branch from e8e0270 to 7d15735 Compare October 1, 2026 16:09
@gonzaloriestra
gonzaloriestra marked this pull request as ready for review October 2, 2026 08:03
@gonzaloriestra
gonzaloriestra requested review from a team as code owners October 2, 2026 08:03
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-06-rule-coverage branch from bd59b32 to d7f720e Compare October 2, 2026 08:07
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-06-rule-coverage branch from d7f720e to 7245616 Compare October 6, 2026 08:05
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-06-rule-coverage branch from 7245616 to c1da7db Compare October 6, 2026 08:13

This branch has not been deployed

No deployments
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