ESLint v8.x end-of-life is 2024-10-05 and will not be maintained after that. Upgrade or consider long-term support options

ESLint 0.19.0 released

We just pushed ESLint 0.19.0, which is a minor release upgrade. This release includes new features and bug fixes.

Highlights

This is a summary of the major changes you need to know about for this version of ESLint.

More ECMAScript 6 fixes

This release addresses the root cause of several issues related to ECMAScript 6 features. We previously were having a lot of trouble with scoping issues related to modules, destructuring, and destructured parameters. In this release, we fixed a whole host of such errors so our ES6 support should be really solid at this point.

ESTree Support for Default and Rest Parameters

The big parser upgrade to support the ESTree format for default and rest parameters is now complete. You can feel free to create custom rules using these features and feel confident knowing that the AST format will not be changing.

1.0.0 Update

With the ESTree changes in, we just have a few outstanding issues before releasing 1.0.0. Those issues are:

  • #2284 - should we switch to using 1-based column numbers instead of 0-based column numbers?
  • #2226 - split space-in-brackets rule; implement array-literal-spacing and computed-property-spacing rules.
  • #2225 - split space-in-brackets rule; implement curly-braces-spacing rule.

Reminder: we are preparing a list of breaking changes that will be coming in v1.0.0 and are tracking them on [#1898](https://github.com/eslint/eslint/issues/1898). Stay tuned to that issue so you know what to expect.

Bug Fixes

  • Fix: no-empty rule should allow any comments (fixes #2188) (Gyandeep Singh)
  • Fix: Allow inline comments in newline-after-var rule (fixes #2229) (Casey Visco)
  • Fix: block-scoped-var to work with classes (fixes #2280) (Nicholas C. Zakas)
  • Fix: camelcase rule with {properties: never} shouldn’t check assignment (fixes #2189) (Gyandeep Singh)
  • Fix: Consider tabs for space-in-parens rule (fixes #2191) (Josh Quintana)
  • Fix: Don’t check concise methods in quote-props (fixes #2251) (Nicholas C. Zakas)
  • Fix: duplicate semi and no-extra-semi errors (fixes #2207) (Brandon Mills)
  • Fix: Function id missing in parent scope when using ecmaFeature modules for rule block-scoped-var (fixes #2242) (Michael Ferris)
  • Fix: Handle comment lines in newline-after-var (fixed #2237) (Casey Visco)
  • Fix: Ignore single lines for vertical alignment (fixes #2018) (Ian VanSchooten)
  • Fix: no-undef and no-underscore-dangle to use double quotes (fixes #2258) (Gyandeep Singh)
  • Fix: padded-blocks with ASI (fixes #2273) (Brandon Mills)
  • Fix: Report better location for padded-blocks error (fixes #2224) (Nicholas C. Zakas)
  • Fix: Require semicolon after import/export statements (fixes #2174) (Gyandeep Singh)
  • Fix: semi error on export declaration (fixes #2194) (Brandon Mills)

Features

  • New: Allow modifying base config (fixes #2143) (Meo)
  • New: no-continue rule (fixes #1945) (borislavjivkov)
  • New: operator-linebreak rule (fixes #1405) (Benoît Zugmeyer)

Enhancements

  • Update: Add test for no-undef (fixes #2214) (Nicholas C. Zakas)
  • Build: Add linting of Markdown files to “npm test” script (fixes #2182) (David Anson)
  • Build: Fix gensite task to work even if files are missing (Nicholas C. Zakas)
  • Build: Fixing site generation (Ilya Volodin)
  • Build: Remove jshint files (fixes #2222) (Jeff Tan)

Dependency Upgrades

  • Upgrade: Espree to 1.12.3 (fixes #2195) (Gyandeep Singh)
  • Upgrade: Espree 2.0.0 and escope 3.0.0 (fixes #2234, fixes #2201, fixes (Nicholas C. Zakas)
  • Upgrade: Espree to 2.0.1 (Nicholas C. Zakas)

Documentation

  • Docs: Fix spell in camelcase doc (fixes #2190) (Gyandeep Singh)
  • Docs: Fix typo in command-line-interface.md (Nate Eagleson)
  • Docs: Fix typo in working-with-rules.md (Nate Eagleson)
  • Docs: Fixing broken links in documentation (Ilya Volodin)
  • Docs: Improve grammar and style in comma-dangle.md (Nate Eagleson)
  • Docs: Improve grammar and style in padded-blocks.md (Nate Eagleson)
  • Docs: no-empty fix comment change (refs #2188) (Gyandeep Singh)
  • Docs: Remove hard tabs from *.md, enable corresponding markdownlint rule. (David Anson)
  • Docs: Remove trailing spaces, enable corresponding markdownlint rule. (David Anson)
  • Docs: Standardize on ‘*’ for unordered lists, enable corresponding markdownlint rule. (David Anson)
  • Docs: Update --no-ignore warning (Brandon Mills)
  • Docs: Update one-var documentation (fixes #2210) (Nicholas C. Zakas)
  • Docs: Update processors description (Nicholas C. Zakas)
  • Docs: Update URL in no-wrap-func.md to resolve 404 (Nate Eagleson)

The latest ESLint news, case studies, tutorials, and resources.

Trunk becomes ESLint gold sponsor
1 min read

Trunk becomes ESLint gold sponsor

We are happy to announce that Trunk is a gold sponsor of ESLint. We are grateful to founders Eli Schleifer and David Apirian, as well as the whole Trunk team.

ESLint v9.9.1 released
1 min read

ESLint v9.9.1 released

We just pushed ESLint v9.9.1, which is a patch release upgrade of ESLint. This release fixes several bugs found in the previous release.

ESLint v9.9.0 released
1 min read

ESLint v9.9.0 released

We just pushed ESLint v9.9.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.