Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

eslintrc.js is about to be deprecated #3649

Open
1 task
Tracked by #3574
domoscargin opened this issue Mar 11, 2024 · 7 comments · May be fixed by alphagov/govuk-frontend#5498
Open
1 task
Tracked by #3574

eslintrc.js is about to be deprecated #3649

domoscargin opened this issue Mar 11, 2024 · 7 comments · May be fixed by alphagov/govuk-frontend#5498
Assignees
Labels
dependencies Pull requests that update a dependency file tooling

Comments

@domoscargin
Copy link
Contributor

domoscargin commented Mar 11, 2024

What

We're using an .eslintrc.js file to configure our eslint. This is due to be deprecated in eslint 9.0.0, and has caused some issues with eslint plugins.

We should look into updating to the new eslint.config.js style.

Who needs to work on this

Developer

Who needs to review this

Developer

Done when

  • Our eslint config is in the new style.
@domoscargin domoscargin added awaiting triage Needs triaging by team dependencies Pull requests that update a dependency file tooling and removed awaiting triage Needs triaging by team labels Mar 11, 2024
@36degrees 36degrees moved this to Backlog 🏃🏼‍♀️ in GOV.UK Design System cycle board Apr 17, 2024
@patrickpatrickpatrick patrickpatrickpatrick moved this from Backlog 🏃🏼‍♀️ to In progress 📝 in GOV.UK Design System cycle board May 2, 2024
@patrickpatrickpatrick patrickpatrickpatrick self-assigned this May 2, 2024
@patrickpatrickpatrick
Copy link
Contributor

patrickpatrickpatrick commented May 7, 2024

The plugins used by our config for eslint also have to support the new 'flat config' format before we can make this upgrade. I will watch these issues and update this list when they are merged.

Library Ready
eslint
eslint-config-standard ❌ (need to change to new plugin)
eslint-config-prettier
eslint-plugin-import import-js/eslint-plugin-import#2948
eslint-plugin-n
eslint-plugin-promise ✅ (if updated to latest version)
eslint-plugin-jest

@patrickpatrickpatrick
Copy link
Contributor

patrickpatrickpatrick commented Jun 3, 2024

The latest update to this is that standard is now no longer going to be maintained and has splintered into a different plugin neo-standard. I guess this means that the eslint-config-standard is no longer maintained also and so we need to change to a different plugin.

@romaricpascal
Copy link
Member

Discovered that ESLint recently introduced a configuration migrator, taking advantage of the FlatConfig class for compatibility. This might come handy for making the jump.

@voxpelli
Copy link

voxpelli commented Jul 4, 2024

neostandard is indeed like eslint-config-standard, but using ESLint 9 and Flat Config from the ground up, and more importantly: Has an open governance model

Feedback and questions are welcome 🙏

Since you use prettier as well the new option to deactivate style rules in neostandard should be welcome for you, may make eslint-config-prettier redundant

@patrickpatrickpatrick
Copy link
Contributor

patrickpatrickpatrick commented Aug 28, 2024

https://github.com/un-ts/eslint-plugin-import-x this is a fork of eslint-plugin-import that seemingly does support v9 (but not flat config). Could spike into updating to v9 and using this instead of plugin-import (which doesn't seem to have had any movement at all as of late)

@patrickpatrickpatrick
Copy link
Contributor

import-js/eslint-plugin-import#2996 looks like this will soon be updated to v9 which will mean the last blocker has been removed

@patrickpatrickpatrick
Copy link
Contributor

https://eslint.org/version-support/#current-release-lines v8 will soon be deprecated

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file tooling
Projects
Status: Blocked ⛔
4 participants