Skip to content

Support for ESLint v8 #3738

Closed
Closed
@bradzacher

Description

@bradzacher

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    breaking changeThis change will require a new major version to be releaseddependenciesIssue about dependencies of the package

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions