Page MenuHomePhabricator

[Chore] 🛠️ Update ESLint to ESLint 9+
Open, Needs TriagePublic

Description

EntitySchema currently uses the legacy .eslintrc.json config format and is pinned to ESLint 8 via eslint-config-wikimedia's peeer dependency (eslint ^8.57.0).

This blocks updating eslint-plugin-cypress past 3.6.0: starting with 4.0.0 it requires eslint >=9, which conflicts with the extension's current config. See T435633: [Chore] 🛠️ Update dependencies in EntitySchema for where this was identified during a routine dependency update.

ESLint 10 drops support for .eslintrc.json entirely, so this migration will eventually be required regardless of eslint-plugin-cypress.

Acceptance Criteria

  • eslint-config-wikimedia is updated to a release that supports flat config / ESLint 9+.
  • .eslintrc.json is replaced with eslint.config.js (flat config).
  • .eslintignore patterns are migrated into eslint.config.js.
  • eslint is bumped to ^9.0.0 or later in package.json.
  • eslint-plugin-cypress is updated to the latest compatible version.
  • npm run test:lint passes with no new warnings/errors.
  • CI is green and successful.

Useful resources:
https://eslint.org/docs/latest/use/configure/migration-guide