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

Support for ESLint v8 #3738

Closed
Tracked by #56 ...
bradzacher opened this issue Aug 16, 2021 · 20 comments
Closed
Tracked by #56 ...

Support for ESLint v8 #3738

bradzacher opened this issue Aug 16, 2021 · 20 comments
Labels
breaking change This change will require a new major version to be released dependencies Issue about dependencies of the package
Milestone

Comments

@bradzacher
Copy link
Member

bradzacher commented Aug 16, 2021

ESLint has just released the first beta version of v8.

https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.0-released
https://eslint.org/blog/2021/08/eslint-v8.0.0-beta.1-released
https://eslint.org/blog/2021/09/eslint-v8.0.0-beta.2-released
https://eslint.org/blog/2021/09/eslint-v8.0.0-rc.0-released

This version contains a number of breaking changes which will prevent our tooling from working at all with it. This is expected and we had discussed the changes with the ESLint team as they worked on v8.
Support for this will require breaking changes from this project.

We are preparing a major release to support the changes - it has been released to npm under the rc-v5 tag.


✅ = done
🕐 = in progress
🔲 = not yet started

Breaking Changes in ESLint v8

✅ Breaking: Strict package exports

PRs: #3736, #3737

ESLint has restricted what can be imported from their package. In doing so they have continued to export some of the things we need to operate, though they are available on a different path.

This will require a large change in how the package is architected.

Problem: How can we support both =v8 at the same time?

✅ Breaking: Require meta.hasSuggestions for rules with suggestions

PRs: #3737

This will require updates to some of our rule defs as we did not annotate this after the release of the flag some time in ESLint v7.

✅ Breaking: fix comma-dangle schema

PRs: #3768.

We will have to update our extension rule's schema.

✅ Breaking: upgrade espree and support new class features

PRs: #3806, #3077, #2933
Related Issues: #3430

We supported the old babel-style AST for class properties (ClassProperty). ESLint has added support for properties using ESTree's official spec. We need to update our representation as appropriate.

✅ Breaking: add some rules to eslint:recommended

PRs: None yet.
Related Issues: #3746

We will want to review the changes and update our lists as appropriate.
For example - ESLint now recommends no-unsafe-optional-chaining. Every single check of this rule is covered by typescript

✅ Breaking: drop node v10/v13/v15

PRs: #3767.

We will want to update our node ranges as appropraite.

✅ Breaking: remove meta.docs.category in core rules

PRs: #3800

We will want to remove this from the types

✅ Changes with no impact:

  • Breaking: disallow SourceCode#getComments() in RuleTester
    • This is not a problem. We could probably remove the API from our types now.
  • Breaking: Fixable disable directives
  • Breaking: require meta for fixable rules
  • Breaking: allow all directives in line comments
  • Breaking: support new regex d flag
  • Breaking: Drop codeframe and table formatters
  • Breaking: Disallow reserved words in ES3
@bradzacher

This comment has been minimized.

@bradzacher

This comment has been minimized.

@SimenB

This comment has been minimized.

@MichaelDeBoey

This comment has been minimized.

@SimenB

This comment has been minimized.

@bradzacher

This comment has been minimized.

@Brian-Bartels

This comment has been minimized.

@vtrphan

This comment has been minimized.

@anthony-telljohann

This comment has been minimized.

@nicolas377

This comment has been minimized.

@anthony-telljohann

This comment has been minimized.

@KristjanTammekivi

This comment has been minimized.

@aladdin-add

This comment has been minimized.

@nicolas377

This comment has been minimized.

divdavem added a commit to AmadeusITGroup/Assistive-Webdriver that referenced this issue Oct 11, 2021
@bradzacher
Copy link
Member Author

bradzacher commented Oct 11, 2021

I'm going to lock this to prevent further discussion because people just need to read the OP.

As mentioned in the OP (and by @nicolas377, @KristjanTammekivi, @aladdin-add , thanks all!):

v4 of our tooling DOES NOT support v8 of ESLint.

It will literally crash. This is expected. There are breaking changes in v8. As mentioned several times in this thread, we are working on our own major version bump to handle this breaking changes.

Our major release candidate with support for ESLint v8 has been released to npm under the rc-v5 tag.

@typescript-eslint typescript-eslint locked and limited conversation to collaborators Oct 11, 2021
@bradzacher
Copy link
Member Author

This was released a few weeks ago to the latest tag - v5.0.0

@bradzacher bradzacher unpinned this issue Oct 28, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
breaking change This change will require a new major version to be released dependencies Issue about dependencies of the package
Projects
None yet
Development

No branches or pull requests

9 participants