Skip to content

Upgrade to ESLint v10 once plugin ecosystem catches up #56

@wizzomafizzo

Description

@wizzomafizzo

Dependabot tried to bump @eslint/js to v10 in #50, but the upgrade is blocked by plugins that haven't released ESLint v10 support yet.

ESLint v10.0.0 shipped 2026-02-06 (latest 10.2.0). Once the plugins below cut releases declaring eslint@^10 in their peer deps, this upgrade becomes viable.

Blockers (need upstream releases)

  • eslint-plugin-react — latest 7.37.5, peer caps at ^9.7
  • eslint-plugin-react-hooks — latest stable 7.0.1 caps at ^9; canary 7.1.0-canary-* already supports v10, so a stable should be close
  • eslint-plugin-jsx-a11y — latest 6.10.2, peer caps at ^9
  • @tanstack/eslint-plugin-query — latest 5.96.2, peer caps at ^9

Already compatible

  • @typescript-eslint/* 8.58+
  • eslint-plugin-import-x 4.16+
  • eslint-plugin-testing-library 7.16+
  • eslint-config-prettier 10.1+
  • eslint-plugin-react-refresh 0.5+ (project currently on 0.4.24 — needs bump alongside)
  • eslint-import-resolver-typescript 4.4+

Side note

eslint-plugin-vitest (currently 0.5.4) appears abandoned and caps at ^9. The official replacement is @vitest/eslint-plugin (1.6.14, supports v10). Migrating is a separate task with renamed rules.

When revisiting

  1. Re-check peer ranges for the four blockers above
  2. Bump eslint, @eslint/js, all four blockers, and eslint-plugin-react-refresh together in a single PR
  3. Consider migrating eslint-plugin-vitest@vitest/eslint-plugin at the same time

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions