Releases: eslint/eslint
Releases · eslint/eslint
v9.8.0
Features
Bug Fixes
ab0ff27fix: Throw error when invalid flags passed (#18705) (Nicholas C. Zakas)70dc803fix:basePathdirectory can never be ignored (#18711) (Milos Djermanovic)
Documentation
282df1adocs: Add system theme option (#18617) (Amaresh S M)53b1ff0docs: Debug config docs (#18698) (Nicholas C. Zakas)a7016a5docs: fix search input stylings (#18682) (Amaresh S M)
Build Related
Chores
v9.7.0
Features
7bd9839feat: add support for es2025 duplicate named capturing groups (#18630) (Yosuke Ota)1381394feat: addregexoption inno-restricted-imports(#18622) (Nitin Kumar)
Bug Fixes
Documentation
9f416dbdocs: Add Powered by Algolia label to the search. (#18633) (Amaresh S M)c8d26cbdocs: Open JS Foundation -> OpenJS Foundation (#18649) (Milos Djermanovic)6e79ac7docs:loadESLintdoes not support optioncwd(#18641) (Francesco Trotta)
Chores
793b718chore: upgrade @eslint/[email protected] (#18680) (Francesco Trotta)7ed6f9achore: package.json update for @eslint/js release (Jenkins)7bcda76refactor: Add type references (#18652) (Nicholas C. Zakas)51bf57cchore: add tech sponsors through actions (#18624) (Strek)6320732refactor: don't useparentproperty inNodeEventGenerator(#18653) (Milos Djermanovic)9e6d640refactor: move "Parsing error" prefix adding to Linter (#18650) (Milos Djermanovic)
v9.6.0
Features
e2b16e2feat: Implement feature flags (#18516) (Nicholas C. Zakas)8824aa1feat: addecmaVersion: 2025, parsing duplicate named capturing groups (#18596) (Milos Djermanovic)
Bug Fixes
1613e2efix: Allow escaping characters in config patterns on Windows (#18628) (Milos Djermanovic)21d3766fix:no-unused-varsinclude caught errors pattern in report message (#18609) (Kirk Waiblinger)d7a7736fix: improveno-unused-varsmessage on unused caught errors (#18608) (Kirk Waiblinger)f9e95d2fix: correct locations of invalid/* eslint */comments (#18593) (Milos Djermanovic)
Documentation
13dbecddocs: Limit search to just docs (#18627) (Nicholas C. Zakas)375227fdocs: Update getting-started.md - add pnpm to init eslint config (#18599) (Kostiantyn Ochenash)44915bbdocs: Update README (GitHub Actions Bot)d50db7bdocs: Update vscode-eslint info (#18595) (Nicholas C. Zakas)
Chores
b15ee30chore: upgrade @eslint/[email protected] (#18632) (Milos Djermanovic)d655503chore: package.json update for @eslint/js release (Jenkins)7c78ad9refactor: Use language.visitorKeys and check for non-JS SourceCode (#18625) (Nicholas C. Zakas)69ff64erefactor: Return value of applyInlineConfig() (#18623) (Nicholas C. Zakas)d2d06f7refactor: use/separator when adjustingignorePatternson Windows (#18613) (Milos Djermanovic)6421973refactor: fix disable directives for languages with 0-based lines (#18605) (Milos Djermanovic)0a13539refactor: Allow optional methods for languages (#18604) (Nicholas C. Zakas)c7ddee0chore: make internal-rules not being a package (#18601) (Milos Djermanovic)3379164chore: remove.eslintrc.js(#18011) (唯然)d0c3a32chore: update knip (with webdriver-io plugin) (#18594) (Lars Kappert)
v9.5.0
Features
b2d256cfeat:no-sparse-arraysreport on "comma" instead of the whole array (#18579) (fisker Cheung)
Bug Fixes
6880286fix: treat*as a universal pattern (#18586) (Milos Djermanovic)7fbe211fix: message template for all files ignored (#18564) (Milos Djermanovic)469cb36fix: Don't lint the same file multiple times (#18552) (Milos Djermanovic)5cff638fix: improve message for ignored files without a matching config (#18404) (Francesco Trotta)
Documentation
455f7fddocs: add section about including.gitignorefiles (#18590) (Milos Djermanovic)721eafedocs: update info about universalfilespatterns (#18587) (Francesco Trotta)8127127docs: Update README (GitHub Actions Bot)55c2a66docs: Update README (GitHub Actions Bot)eb76282docs: Update README (GitHub Actions Bot)ff6e96edocs:baseConfigandoverrideConfigcan be arrays (#18571) (Milos Djermanovic)d2d83e0docs: Add mention of eslint-transforms to v9 migration guide (#18566) (Nicholas C. Zakas)9ce6832docs: add callout box for unintuitive behavior (#18567) (Ben McCann)b8db99cdocs: Add VS Code info to config migration guide (#18555) (Nicholas C. Zakas)518a35cdocs: Mention config migrator (#18561) (Nicholas C. Zakas)eb440fcdocs: specifying files with arbitrary or no extension (#18539) (Francesco Trotta)38c159edocs: Provide example of reading package.json for plugins meta (#18530) (Nicholas C. Zakas)d16a659docs: add link to migration guide for--extCLI option (#18537) (Milos Djermanovic)73408dedocs: add link to configuration file docs before examples (#18535) (Milos Djermanovic)
Chores
f588160chore: upgrade @eslint/[email protected] (#18591) (Milos Djermanovic)5890841chore: package.json update for @eslint/js release (Jenkins)e9f4ccdchore: remove unused eslint-disable directive (#18589) (Milos Djermanovic)4b23ffdrefactor: Move JS parsing logic into JS language (#18448) (Nicholas C. Zakas)1495b93chore: update WebdriverIO packages (#18558) (Christian Bromann)cea7edechore: add website donate link instead of opencollective (#18582) (Strek)ec94880chore: package.json update for eslint-config-eslint release (Jenkins)6912586chore: extract formatting rules into separate config (#18560) (Milos Djermanovic)9738f7eci: fix CLI flags for c8, raise thresholds (#18554) (Francesco Trotta)c6de7bbchore: update dependency markdownlint-cli to ^0.41.0 (#18538) (renovate[bot])2c8fd34ci: pin @wdio/browser-runner v8.36.0 (#18540) (唯然)
v9.4.0
Features
Bug Fixes
f6534d1fix: skip processor code blocks that match only universal patterns (#18507) (Milos Djermanovic)7226ebdfix: allow implicit undefined return inno-constructor-return(#18515) (Ali Rezvani)389744bfix: use@eslint/config-inspector@latest(#18483) (唯然)70118a5fix:func-stylefalse positive with arrow functions andsuper(#18473) (Milos Djermanovic)
Documentation
d7ab6f5docs: update theme when whenprefers-color-schemechanges (#18510) (Nitin Kumar)525fdffdocs: fix components files (#18519) (Tanuj Kanti)80747d2docs: refactorprefer-destructuringrule (#18472) (Tanuj Kanti)f06e0b5docs: clarify func-style (#18477) (Cameron Steffen)
Chores
v9.3.0
Features
b32153cfeat: addoverrides.namedExportstofunc-stylerule (#18444) (Percy Ma)b67eba4feat: addrestrictedNamedExportsPatterntono-restricted-exports(#18431) (Akul Srivastava)069aa68feat: add optionallowEscapetono-misleading-character-classrule (#18208) (Francesco Trotta)05ef92dfeat: deprecatemultiline-comment-style&line-comment-position(#18435) (唯然)db0b174feat: addenforceForInnerExpressionsoption tono-extra-boolean-cast(#18222) (Kirk Waiblinger)
Bug Fixes
8db0efffix: Improve config error messages (#18457) (Nicholas C. Zakas)5c28d9afix: don't remove comments between key and value in object-shorthand (#18442) (Kuba Jastrzębski)39fb0eefix: object-shorthand loses type parameters when auto-fixing (#18438) (dalaoshu)37eba48fix: don't crash whenfs.readFilereturns promise from another realm (#18416) (Milos Djermanovic)
Documentation
ceada8cdocs: explain how to use "tsc waiting" label (#18466) (Francesco Trotta)62e686cdocs: Add troubleshooting info for plugin compatibility (#18451) (Nicholas C. Zakas)e17e1c0docs: Update README (GitHub Actions Bot)2465a1edocs: Update README (GitHub Actions Bot)d23574cdocs: Clarify usage ofno-unreachablewith TypeScript (#18445) (benj-dobs)1db9baedocs: Fix typos (#18443) (Frieder Bluemle)7065196docs: Update README (GitHub Actions Bot)04e7c6edocs: update deprecation notice ofno-return-await(#18433) (Tanuj Kanti)e763512docs: Link global ignores section in config object property list (#18430) (MaoShizhong)ac7f718docs: reflect release of v9 in config migration guide (#18412) (Peter Briggs)0de0909docs: fix grammar in configuration file resolution (#18419) (Mike McCready)
Chores
58e2719chore: update dependencies for v9.3.0 release (#18469) (Francesco Trotta)b681ecbchore: package.json update for @eslint/js release (Jenkins)06f1d1cchore: update dependency @humanwhocodes/retry to ^0.3.0 (#18463) (renovate[bot])a63ed72refactor: Usenode:protocol for built-in Node.js modules (#18434) (Milos Djermanovic)040700achore: update dependency markdownlint-cli to ^0.40.0 (#18425) (renovate[bot])f47847cchore: update actions/stale action to v9 (#18426) (renovate[bot])c18ad25chore: update actions/upload-artifact action to v4 (#18427) (renovate[bot])27e3060chore: Disable documentation label (#18423) (Nicholas C. Zakas)
v9.2.0
Features
8485d76feat:no-case-declarationsadd suggestions (#18388) (Josh Goldberg ✨)a498f35feat: update Unicode letter detection in capitalized-comments rule (#18375) (Francesco Trotta)
Bug Fixes
Documentation
0f5df50docs: Update README (GitHub Actions Bot)1579ce0docs: update wording regarding indirect eval (#18394) (Kirk Waiblinger)f12a02cdocs: update to eslint v9 in custom-rule-tutorial (#18383) (唯然)
Chores
b346605chore: upgrade @eslint/[email protected] (#18413) (Milos Djermanovic)c4c18e0chore: package.json update for @eslint/js release (Jenkins)284722cchore: package.json update for eslint-config-eslint release (Jenkins)347d44fchore: remove eslintrc export from eslint-config-eslint (#18400) (Milos Djermanovic)f316e20ci: run tests in Node.js 22 (#18393) (Francesco Trotta)
v9.1.1
v9.1.0
Features
03068f1feat: Provide helpful error message for nullish configs (#18357) (Nicholas C. Zakas)751b518feat: replace dependency graphemer withIntl.Segmenter(#18110) (Francesco Trotta)4d11e56feat: addnameto eslint configs (#18289) (唯然)1cbe1f6feat: allowwhile(true)inno-constant-condition(#18286) (Tanuj Kanti)0db676ffeat: addIntlin es6 globals (#18318) (唯然)
Bug Fixes
8d18958fix: Remove name from eslint/js packages (#18368) (Nicholas C. Zakas)594eb0efix: do not crash on error infs.walkfilter (#18295) (Francesco Trotta)0d8cf63fix: EMFILE errors (#18313) (Nicholas C. Zakas)e1ac0b5fix: --inspect-config only for flat config and respect -c (#18306) (Nicholas C. Zakas)09675e1fix:--no-ignoreshould not apply to non-global ignores (#18334) (Milos Djermanovic)
Documentation
fb50077docs: include notes about globals in migration-guide (#18356) (Gabriel Rohden)71c771fdocs: Fix missing accessible name for scroll-to-top link (#18329) (Germán Freixinós)200fd4edocs: indicate eslintrc mode for.eslintignore(#18285) (Francesco Trotta)16b6a8bdocs: Update README (GitHub Actions Bot)df5f8a9docs:pathsandpatternsdifference inno-restricted-imports(#18273) (Tanuj Kanti)c537d76docs: updatenpm init @eslint/configgenerated file names (#18298) (唯然)e1e305ddocs: fixlinebreak-styleexamples (#18262) (Francesco Trotta)113f51edocs: Mention package.json config support dropped (#18305) (Nicholas C. Zakas)5c35321docs: add eslintrc-only note to--rulesdir(#18281) (Adam Lui 刘展鹏)
Build Related
Chores
d9a2983chore: upgrade @eslint/js to v9.1.1 (#18367) (Francesco Trotta)50d406dchore: package.json update for @eslint/js release (Jenkins)155c71cchore: package.json update for @eslint/js release (Jenkins)0588fc5refactor: Move directive gathering to SourceCode (#18328) (Nicholas C. Zakas)9048e21chore: lintdocs/src/_datajs files (#18335) (Milos Djermanovic)4820790chore: upgrade [email protected] dev dependency (#18332) (Milos Djermanovic)698d9ffchore: upgrade jsdoc & unicorn plugins in eslint-config-eslint (#18333) (Milos Djermanovic)32c08cfchore: drop Node < 18 and use @eslint/js v9 in eslint-config-eslint (#18323) (Milos Djermanovic)a76fb55chore: @eslint-community/eslint-plugin-eslint-comments v4.3.0 (#18319) (Milos Djermanovic)78e45b1chore: eslint-plugin-eslint-plugin v6.0.0 (#18316) (唯然)36103a5chore: eslint-plugin-n v17.0.0 (#18315) (唯然)
v9.0.0
Breaking Changes
b7cf3bdfix!: correctcamelcaserule schema forallowoption (#18232) (eMerzh)09bd7fefeat!: move AST traversal into SourceCode (#18167) (Nicholas C. Zakas)79a95ebfeat!: disallow multiple configuration comments for same rule (#18157) (Milos Djermanovic)9163646feat!: Rule Tester checks for missing placeholder data in the message (#18073) (fnx)3c4d51dfeat!: default forenforceForClassMembersinno-useless-computed-key(#18054) (Francesco Trotta)47e60f8feat!: Stricter rule test validations (#17654) (fnx)1a94589feat!:no-unused-varsdefault caughtErrors to 'all' (#18043) (Josh Goldberg ✨)57089cbfeat!: no-restricted-imports allow multiple config entries for same path (#18021) (Milos Djermanovic)2e1d549feat!: detect duplicate test cases (#17955) (Bryan Mishkin)701f1affeat!: no-inner-declaration new default behaviour and option (#17885) (Tanuj Kanti)bde5105fix!: handle--output-filefor empty output when saving to disk (#17957) (Nitin Kumar)07107a5fix!: upgrade [email protected] (#17942) (Milos Djermanovic)3ee0f6cfix!: no-unused-varsvarsIgnorePatternbehavior with catch arguments (#17932) (Tanuj Kanti)51f8bc8fix!: configuration comments with just severity should retain options (#17945) (Milos Djermanovic)d191bddfeat!: Remove CodePath#currentSegments (#17936) (Milos Djermanovic)946ae00feat!: FlatRuleTester -> RuleTester (#17922) (Nicholas C. Zakas)baff28cfeat!: removeno-inner-declarationsfromeslint:recommended(#17920) (Milos Djermanovic)cadfbcdfeat!: Rename FlatESLint to ESLint (#17914) (Nicholas C. Zakas)d1018fcfeat!: skip running warnings in --quiet mode (#17274) (Maddy Miller)fb81b1cfeat!: Set defaultschema: [], drop support for function-style rules (#17792) (Milos Djermanovic)0b21e1ffeat!: add two more cases tono-implicit-coercion(#17832) (Gürgün Dayıoğlu)2916c63feat!: Switch Linter to flat config by default (#17851) (Nicholas C. Zakas)200518efix!: Parsing 'exported' comment using parseListConfig (#17675) (amondev)bdd6ba1feat!: Remove valid-jsdoc and require-jsdoc (#17694) (Nicholas C. Zakas)12be307fix!: Behavior of CLI when no arguments are passed (#17644) (Nicholas C. Zakas)8fe8c56feat!: Update shouldUseFlatConfig and CLI so flat config is default (#17748) (Nicholas C. Zakas)60dea3efeat!: deprecate no-new-symbol, recommend no-new-native-nonconstructor (#17710) (Francesco Trotta)5aa9c49feat!: check for parsing errors in suggestion fixes (#16639) (Bryan Mishkin)b3e0bb0feat!: assert suggestion messages are unique in rule testers (#17532) (Josh Goldberg ✨)e563c52feat!:no-invalid-regexpmake allowConstructorFlags case-sensitive (#17533) (Josh Goldberg ✨)e5f02c7fix!: no-sequences rule schema correction (#17878) (MHO)6ee3e9efeat!: Updateeslint:recommendedconfiguration (#17716) (Milos Djermanovic)c2cf85afeat!: drop support for string configurations in flat config array (#17717) (Milos Djermanovic)c314fd6feat!: RemoveSourceCode#getComments()(#17715) (Milos Djermanovic)ae78ff1feat!: Remove deprecated context methods (#17698) (Nicholas C. Zakas)f71c328feat!: Swap FlatESLint-ESLint, FlatRuleTester-RuleTester in API (#17823) (Nicholas C. Zakas)5304da0feat!: remove formatters except html, json(-with-metadata), and stylish (#17531) (Josh Goldberg ✨)e1e827ffeat!: Require Node.js^18.18.0 || ^20.9.0 || >=21.1.0(#17725) (Milos Djermanovic)
Features
d54a412feat: Add --inspect-config CLI flag (#18270) (Nicholas C. Zakas)97ce45bfeat: AddreportUsedIgnorePatternoption tono-unused-varsrule (#17662) (Pearce Ropion)3e9fceafeat: Show config names in error messages (#18256) (Nicholas C. Zakas)de40874feat: Rule Performance Statistics for flat ESLint (#17850) (Mara Kiefer)d85c436feat: use-isnan report NaN inindexOfandlastIndexOfwith fromIndex (#18225) (Tanuj Kanti)b8fb572feat: addreportUnusedFallthroughCommentoption to no-fallthrough rule (#18188) (Kirk Waiblinger)1c173dcfeat: addignoreClassWithStaticInitBlockoption tono-unused-vars(#18170) (Tanuj Kanti)a451b32feat: makeno-misleading-character-classreport more granular errors (#18082) (Francesco Trotta)c49ed63feat: update complexity rule for optional chaining & default values (#18152) (Mathias Schreck)11144a2feat:no-restricted-importsoption addedallowImportNames(#16196) (M Pater)74124c2feat: add suggestions touse-isnaninindexOf&lastIndexOfcalls (#18063) (StyleShit)53f0f47feat: Add loadESLint() API method for v9 (#18097) (Nicholas C. Zakas)2d11d46feat: add suggestions touse-isnanin binary expressions (#17996) (StyleShit)26093c7feat: fix false negatives inno-this-before-super(#17762) (Yosuke Ota)5471e43feat: convert unsafe autofixes to suggestions inno-implicit-coercion(#17985) (Gürgün Dayıoğlu)e3051befeat: emit warning when.eslintignorefile is detected (#17952) (Nitin Kumar)a630eddfeat: maintain latest ecma version in ESLint (#17958) (Milos Djermanovic)b4e0503feat: addno-useless-assignmentrule (#17625) (Yosuke Ot...