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

📈 Tracking: ESLint v9 support #18391

Open
7 tasks done
JoshuaKGoldberg opened this issue Apr 24, 2024 · 45 comments
Open
7 tasks done

📈 Tracking: ESLint v9 support #18391

JoshuaKGoldberg opened this issue Apr 24, 2024 · 45 comments
Assignees

Comments

@JoshuaKGoldberg
Copy link
Contributor

JoshuaKGoldberg commented Apr 24, 2024

👋 Hi all! With ESLint v9 released, many community plugins are adding support for the new major version. This is a tracking issue of ESLint v9 compatibility for the ~35 or so most popular plugins for ESLint that already support flat config. We'll keep this list updated over time.

If the plugin you're looking for isn't in this list, check 📈 Tracking: Flat Config support. This list treats flat config support as a prerequisite for full ESLint 9 support.

📌 Status emoji key:

  • ✅ Support released!
  • 📦 Merged; pending release
  • 🏗️ PR was at least started
  • 📝 Issue filed; waiting for PR
Name Status Issue Commit / PR Version
Plugins
@nuxt/eslint *
@typescript-eslint typescript-eslint#8211 typescript-eslint#9002 8.0.0
a11y a11y#978 a11y#1009 6.10.0
angular angular-eslint#1755 18.0.0
astro
check-file eslint-plugin-check-file/#41 4d6725 2.8.0
compat eslint-plugin-compat/#614 eslint-plugin-compat/#627 6.0.0
cypress cypress-io/eslint-plugin-cypress#146 25e092 3.2.0
ember eslint-plugin-ember/ember#2136
es-x eslint-plugin-es-x#124 eslint-plugin-es-x#129 7.6.0
eslint-comments eslint-plugin-eslint-comments#182 eslint-plugin-eslint-comments#206 4.3.0
eslint-plugin eslint-plugin-eslint-plugin#342 eslint-plugin-eslint-plugin#347 5.1.0
formatjs formatjs/formatjs#4388 formatjs/formatjs#4505 4.14.0
functional eslint-functional/eslint-plugin-functional#809 7.0.0-alpha.0
import 📦 eslint-plugin-import#2556 eslint-plugin-import#2996
import-x eslint-plugin-import-x#60 eslint-plugin-import-x#61 , eslint-plugin-import-x#62 0.4.2
jsdoc eslint-plugin-jsdoc#1177 46.10.0
jsonc eslint-plugin-jsonc#240 eslint-plugin-jsonc#240 2.14.1
jest eslint-plugin-jest#1547 28.0.0
jsx-a11y eslint-plugin-jsx-a11y#978 eslint-plugin-jsx-a11y#1009 6.10.0
markdown eslint-plugin-markdown#231 eslint-plugin-markdown#232 4.0.1
mocha eslint-plugin-mocha#341 eslint-plugin-mocha#349 10.4.0
n eslint-plugin-n#216 17.0.0
nx nrwl/nx#22769 nrwl/nx#24632 19.0.6
perfectionist 969ae4 0.6.0
playwright eslint-plugin-playwright#168 eslint-plugin-playwright#169 0.17.0
prettier eslint-plugin-prettier#591 eslint-plugin-prettier#616 5.1.0
qunit eslint-plugin-qunit#499 eslint-plugin-qunit#532 8.1.2
regexp eslint-plugin-regexp#695 eslint-plugin-regexp#702 2.3.0
react eslint-plugin-react#3699 eslint-plugin-react#3759 7.35.0
react-refresh 0.4.5
security eslint-plugin-security#144 eslint-plugin-security#145 3.0.0
simple-import-sort eslint-plugin-simple-import-sort#145 eslint-plugin-simple-import-sort#155 11.0.0
solid eslint-plugin-solid#137 eslint-plugin-solid#140 0.14.0
sonarjs eslint-plugin-sonarjs#403 eslint-plugin-sonarjs#472 1.0.3
stylistic 0.0.0
svelte eslint-plugin-svelte#726 eslint-plugin-svelte#730 2.36.0
tailwindcss eslint-plugin-tailwindcss#335 eslint-plugin-tailwindcss#330 3.16.0
TanStack Query query#7286 query#7543 5.43.1
testing-library eslint-plugin-testing-library#853 eslint-plugin-testing-library#923 6.3.0
unicorn eslint-plugin-unicorn#1885 eslint-plugin-unicorn#1886 50.0.0
vitest eslint-plugin-vitest#400 0.2.8
vue eslint-plugin-vue#1291 eslint-plugin-vue#2319 9.24.0
vue-i18n eslint-plugin-vue-i18n#484 eslint-plugin-vue-i18n#487 3.0.0-next.9
vuejs-accessibility eslint-plugin-vuejs-accessibility#1073 2.3.0
yml eslint-plugin-yml#308 eslint-plugin-vue#311 1.13.1
Other Tools
VS Code Extension vscode-eslint#1644 3.0.10
create-config create-config#51 create-config#81 1.0.0
@rushstack/eslint-patch rushstack#4635 rushstack#4719 7.24.9

If the plugin you're looking for isn't in this list, check 📈 Tracking: Flat Config support. This list treats flat config support as a prerequisite for full ESLint 9 support.

Task list of issues/PRs on projects that didn't have released support yet at time of filing:

Keep in mind that this list isn't automatic: I'm hand-editing it. Please report any inaccuracies or out-of-date information! ❤️

@vincentbriglia
Copy link

add gund/eslint-plugin-deprecation#79 to the ones that need support and thanks for this list!

@JoshuaKGoldberg
Copy link
Contributor Author

@vincentbriglia eslint-plugin-deprecation doesn't yet support flat config, so it's relegated to the other list: gund/eslint-plugin-deprecation#85

@pauliesnug
Copy link

v9 support was added to eslint-plugin-solid in solidjs-community/eslint-plugin-solid#140, with solidjs-community/eslint-plugin-solid#141 awaiting a peer dependency update

@MikeMcC399
Copy link
Contributor

@julienw
Copy link

julienw commented May 13, 2024

https://github.com/testing-library/eslint-plugin-testing-library might be a good one to track as well. Here is their bug about the migration: testing-library/eslint-plugin-testing-library#899

@JoshuaKGoldberg
Copy link
Contributor Author

@julienw that'd be a good one to include, but it doesn't yet support flat config: testing-library/eslint-plugin-testing-library#853. See #18093.

@nzakas
Copy link
Member

nzakas commented May 14, 2024

As a note, we've now introduced a compatibility package for issues related to the ESLint v9 rule API changes.

@yannbertrand
Copy link

A few more:

@jeremymeng
Copy link

vscode-eslint extension support: microsoft/vscode-eslint#1644

Hacksore added a commit to overlayeddev/overlayed that referenced this issue May 19, 2024
@Snafuh
Copy link

Snafuh commented May 23, 2024

NX support was merged in nrwl/nx#24632. I think there is already an released version with v9 support as well.

@robertIsaac
Copy link

NX support was merged in nrwl/nx#24632. I think there is already an released version with v9 support as well.

I'm not sure if they support eslint 9 or not because of nrwl/nx#25938

@michaelfaith
Copy link

michaelfaith commented Aug 30, 2024

PR submitted (still pending review) for jsx-a11y jsx-eslint/eslint-plugin-jsx-a11y#1009

@ljharb
Copy link
Sponsor Contributor

ljharb commented Aug 30, 2024

lol, "still" after 2 minutes :-p i'll take a look

@michaelfaith
Copy link

I totally didn't intend to emphasize the "still" haha

@michaelfaith
Copy link

michaelfaith commented Sep 2, 2024

Draft PR for the formatjs plugin: formatjs/formatjs#4505

@michaelfaith
Copy link

PR submitted (still pending review) for jsx-a11y jsx-eslint/eslint-plugin-jsx-a11y#1009

This has been merged, pending release

@ljharb
Copy link
Sponsor Contributor

ljharb commented Sep 4, 2024

v6.10.0 of eslint-plugin-a11y is now released with eslint v9 support.

@lyleunderwood
Copy link

According to this comment and listed peer dependencies, eslint-plugin-import still does not support eslint@9, though this tracking table indicates that it does. I believe this update was made in error because the issue linked here is the issue to support flat config, import-js/eslint-plugin-import#2556, which was closed, but there is a separate (and currently locked) issue to support eslint@9: import-js/eslint-plugin-import#2948

@JoshuaKGoldberg
Copy link
Contributor Author

👍 corrected.

@michaelfaith
Copy link

According to this comment and listed peer dependencies, eslint-plugin-import still does not support eslint@9, though this tracking table indicates that it does. I believe this update was made in error because the issue linked here is the issue to support flat config, import-js/eslint-plugin-import#2556, which was closed, but there is a separate (and currently locked) issue to support eslint@9: import-js/eslint-plugin-import#2948

There's a pr in progress too

@pauliesnug
Copy link

According to import-js/eslint-plugin-import#2556 (comment) and listed peer dependencies, eslint-plugin-import still does not support eslint@9, though this tracking table indicates that it does. I believe this update was made in error because the issue linked here is the issue to support flat config, import-js/eslint-plugin-import#2556, which was closed, but there is a separate (and currently locked) issue to support eslint@9: import-js/eslint-plugin-import#2948

In the meantime, eslint-plugin-import-x has been updated to support both ESLint v9 and Flat Config.

@NullVoxPopuli
Copy link

I confirm the ember's default plugins are all eslint 9 (and flat config) compatible: embroider-build/app-blueprint#84

  • eslint-plugin-ember
  • eslint-plugin-qunit <- not yet on the list
  • eslint-plugin-n
  • eslint-plugin-prettier (don't @ me about this one)

@JoshuaKGoldberg
Copy link
Contributor Author

🤔 @NullVoxPopuli all those are ✅ on this list, are looking at the same thing?

@NullVoxPopuli
Copy link

oh! I didn't see qunit on there before. apologies!

@rakleed
Copy link
Contributor

rakleed commented Sep 26, 2024

formatjs supports ESLint 9 since 4.14.0, although only 5.0.0 can be installed via npm.

@pd-be
Copy link

pd-be commented Sep 30, 2024

FYI, import-js/eslint-plugin-import#2996 has been merged 🎉

@kachkaev
Copy link

kachkaev commented Sep 30, 2024

@pd-be, that’s true but a new release is still pending: import-js/eslint-plugin-import#2948 (comment)

@JoshuaKGoldberg
Copy link
Contributor Author

Emoji status updated to 📦 in the meantime. Thanks!

@fetwar
Copy link

fetwar commented Sep 30, 2024

Would eslint-plugin-etc be considered for this list?

Latest version v2.0.3 is giving a warning for unmet peer dependency eslint@^v8.0.0. Flat config is already supported

@doberkofler
Copy link
Contributor

Should eslint-plugin-react-hooks not also be added to this list?

@michaelfaith
Copy link

Should eslint-plugin-react-hooks not also be added to this list?

From the original post:

If the plugin you're looking for isn't in this list, check #18093. This list treats flat config support as a prerequisite for full ESLint 9 support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Implementing
Development

No branches or pull requests