cypress-io / cypress-example-kitchensink

This is an example app used to showcase Cypress.io testing.
https://example.cypress.io/
MIT License
1.2k stars 2.2k forks source link

test: update eslint config to flat on eslint v8 #836

Closed MikeMcC399 closed 4 months ago

MikeMcC399 commented 4 months ago

Issue

The ESLint configuration file .eslintrc, used with ESLint v8, is deprecated in ESLint v9 (see ESLint 8.x configuration files).

ESLint v9 was released on Apr 5, 2024 and the announcement stated that "Flat config" is now the default.

This repo currently uses the following plugins. The table also shows if they offer flat config options:

Plugin version flat config option
@stylistic/eslint-plugin-js 1.7.2 available
eslint 8.57.0 pluginJs.configs.recommended
eslint-plugin-cypress 3.1.1 not available
eslint-plugin-jsonc 2.15.1 ...eslintPluginJsonc.configs['flat/recommended-with-json']
eslint-plugin-mocha 10.4.3 mochaPlugin.configs.flat.recommended

eslint-plugin-cypress in the current 3.1.1 release offers no out-of-the-box flat config option.

Changes

  1. Install latest plugin versions
  2. Install @eslint/eslintrc for Backwards compatibility utility
  3. Replace the config file .eslintrc using eslint.config.mjs according to the documentation ESLint 8.x configuration files (new) and the documentation of each plugin.

eslint-plugin-cypress

Integrate the eslint-plugin-cypress plugin using the ESLint Backwards compatibility utility: using the FlatCompat class from the npm module @eslint/eslintrc as an interim solution.

Migration to ESLint v9

The next planned step will be the migration to ESLint v9 after eslint-plugin-cypress has released a version compatible with ESLint v9.

References

Verification

npm ci
npm run lint
cypress-app-bot commented 4 months ago
cypress-app-bot commented 4 months ago

:tada: This PR is included in version 2.0.7 :tada:

The release is available on:

Your semantic-release bot :package::rocket: