Releases: eslint/eslint
Releases · eslint/eslint
v9.0.0-rc.0
Breaking Changes
Features
b8fb572feat: addreportUnusedFallthroughCommentoption to no-fallthrough rule (#18188) (Kirk Waiblinger)
Bug Fixes
Documentation
239a7e2docs: Clarify the description ofsort-importsoptions (#18198) (gyeongwoo park)4769c86docs: fix incorrect example inno-lone-blocks(#18215) (Tanuj Kanti)5251327docs: Update README (GitHub Actions Bot)1dc8618docs: Update README (GitHub Actions Bot)
Build Related
Chores
297416dchore: package.json update for eslint-9.0.0-rc.0 (#18223) (Francesco Trotta)d363c51chore: package.json update for @eslint/js release (Jenkins)1b841bbchore: fix some comments (#18213) (avoidaway)29c3595chore: remove repetitive words (#18193) (cuithon)acc2e06chore: Introduce Knip (#18005) (Lars Kappert)
v9.0.0-beta.2
Breaking Changes
Features
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)
Bug Fixes
e37153ffix: improve error message for invalid rule config (#18147) (Nitin Kumar)af6e170fix: stop linting files after an error (#18155) (Francesco Trotta)
Documentation
ba1c1bbdocs: Update README (GitHub Actions Bot)337cdf9docs: Explain limitations of RuleTester fix testing (#18175) (Nicholas C. Zakas)c7abd89docs: Explain Node.js version support (#18176) (Nicholas C. Zakas)d961eebdocs: show red underlines in examples in rules docs (#18041) (Yosuke Ota)558274adocs: Update README (GitHub Actions Bot)2908b9bdocs: Update release documentation (#18174) (Nicholas C. Zakas)1f1260edocs: replace HackerOne link with GitHub advisory (#18165) (Francesco Trotta)e5ef3cddocs: add inline cases condition inno-fallthrough(#18158) (Tanuj Kanti)450d0f0docs: fixignoreoption docs (#18154) (Francesco Trotta)
Chores
v9.0.0-beta.1
Features
Bug Fixes
0cb4914fix: validate options when comment with just severity enables rule (#18133) (Milos Djermanovic)
Documentation
5fe095cdocs: show v8.57.0 as latest version in dropdown (#18142) (Milos Djermanovic)7db5bb2docs: Show prerelease version in dropdown (#18135) (Nicholas C. Zakas)73a5f06docs: Update README (GitHub Actions Bot)f95cd27docs: Disallow multiple rule configuration comments in the same example (#18116) (Milos Djermanovic)d8068ecdocs: Update link for schema examples (#18112) (Svetlana)
Build Related
Chores
32ffdd1chore: upgrade @eslint/[email protected] (#18146) (Milos Djermanovic)e41425bchore: package.json update for @eslint/js release (Jenkins)bb3b9c6chore: upgrade @eslint/[email protected] (#18145) (Milos Djermanovic)e462524chore: upgrade [email protected] (#18138) (Milos Djermanovic)8e13a6bchore: fix spelling mistake in README.md (#18128) (Will Eastcott)66f52e2chore: remove unused tools rule-types.json, update-rule-types.js (#18125) (Josh Goldberg ✨)bf0c7efci: fix sync-labels value of pr-labeler (#18124) (Tanuj Kanti)cace6d0ci: add PR labeler action (#18109) (Nitin Kumar)1a65d3echore: exportbaseconfig fromeslint-config-eslint(#18119) (Milos Djermanovic)9aa4df3refactor: removeglobalsdependency (#18115) (Milos Djermanovic)
v8.57.0
Features
1120b9bfeat: Add loadESLint() API method for v8 (#18098) (Nicholas C. Zakas)dca7d0ffeat: Enableeslint.config.mjsandeslint.config.cjs(#18066) (Nitin Kumar)
Bug Fixes
2196d97fix: handle absolute file paths inFlatRuleTester(#18064) (Nitin Kumar)69dd1d1fix: Ensure config keys are printed for config errors (#18067) (Nitin Kumar)9852a31fix: deep merge behavior in flat config (#18065) (Nitin Kumar)4c7e9b0fix: allow circular references in config (#18056) (Milos Djermanovic)
Documentation
84922d0docs: Show prerelease version in dropdown (#18139) (Nicholas C. Zakas)5b8c363docs: Switch to Ethical Ads (#18117) (Milos Djermanovic)77dbfd9docs: show NEXT in version selectors (#18052) (Milos Djermanovic)
Chores
v9.0.0-beta.0
Breaking Changes
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 ✨)
Features
53f0f47feat: Add loadESLint() API method for v9 (#18097) (Nicholas C. Zakas)2d11d46feat: add suggestions touse-isnanin binary expressions (#17996) (StyleShit)
Bug Fixes
Documentation
f1c7e6fdocs: Switch to Ethical Ads (#18090) (Strek)15c143fdocs: JS Foundation -> OpenJS Foundation in PR template (#18092) (Nicholas C. Zakas)6ea339edocs: add stricter rule test validations to v9 migration guide (#18085) (Milos Djermanovic)3c816f1docs: use relative link from CLI to core concepts (#18083) (Milos Djermanovic)9458735docs: fix malformedeslintconfig comments in rule examples (#18078) (Francesco Trotta)07a1adadocs: link from--fixCLI doc to the relevant core concept (#18080) (Bryan Mishkin)b844324docs: Update team responsibilities (#18048) (Nicholas C. Zakas)aadfb60docs: document languageOptions and other v9 changes for context (#18074) (fnx)857e242docs: tweak explanation for meta.docs rule properties (#18057) (Bryan Mishkin)10485e8docs: recommend messageId over message for reporting rule violations (#18050) (Bryan Mishkin)98b5ab4docs: Update README (GitHub Actions Bot)505fbf4docs: updateno-restricted-importsrule (#18015) (Tanuj Kanti)c25b4afdocs: Update README (GitHub Actions Bot)
Chores
e40d1d7chore: upgrade @eslint/[email protected] (#18108) (Milos Djermanovic)9870f93chore: package.json update for @eslint/js release (Jenkins)2c62e79chore: upgrade @eslint/[email protected] (#18107) (Milos Djermanovic)81f0294chore: upgrade [email protected] (#18106) (Milos Djermanovic)5e2b292chore: upgrade [email protected] (#18105) (Milos Djermanovic)ce838adchore: replace dependency npm-run-all with npm-run-all2 ^5.0.0 (#18045) (renovate[bot])54df731chore: update dependency markdownlint-cli to ^0.39.0 (#18084) (renovate[bot])8f06a60chore: update dependency shelljs to ^0.8.5 (#18079) (Francesco Trotta)93ffe30chore: update dependency file-entry-cache to v8 (#17903) (renovate[bot])
v9.0.0-alpha.2
Breaking Changes
57089cbfeat!: no-restricted-imports allow multiple config entries for same path (#18021) (Milos Djermanovic)2e1d549feat!: detect duplicate test cases (#17955) (Bryan Mishkin)
Features
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)
Bug Fixes
Documentation
33d1ab0docs: add more examples to flat config ignores docs (#18020) (Milos Djermanovic)e6eebcadocs: Update sort-keys options properties count (#18025) (LB (Ben Johnston))1fedfd2docs: Improve flat config ignores docs (#17997) (Nicholas C. Zakas)38b9b06docs: update valid-typeof rule (#18001) (Tanuj Kanti)b4abfeadocs: Update note about ECMAScript support (#17991) (Francesco Trotta)6788873docs: Update release blog post template (#17994) (Nicholas C. Zakas)1f37442docs: Add sections on non-npm plugin configuration (#17984) (Nicholas C. Zakas)
Chores
6ffdcbbchore: upgrade @eslint/[email protected] (#18038) (Milos Djermanovic)2c12715chore: package.json update for @eslint/js release (Jenkins)cc74c4dchore: upgrade [email protected] (#18037) (Milos Djermanovic)dfb68b6chore: use Node.js 20 for docs sites (#18026) (Milos Djermanovic)8c1b8ddtest: add more tests for ignoring files and directories (#18018) (Milos Djermanovic)60b966bchore: update dependency @eslint/js to v9.0.0-alpha.1 (#18014) (renovate[bot])c893bc0chore: updatemarkdownlinttov0.33.0(#17995) (Nitin Kumar)
v9.0.0-alpha.1
Breaking Changes
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)
Features
a630eddfeat: maintain latest ecma version in ESLint (#17958) (Milos Djermanovic)b4e0503feat: addno-useless-assignmentrule (#17625) (Yosuke Ota)287c4b7feat:no-misleading-character-classgranular errors (#17515) (Josh Goldberg ✨)
Bug Fixes
6d11f3dfix: Ensure config keys are printed for config errors (#17980) (Nicholas C. Zakas)806f708fix:no-misleading-character-classedge cases with granular errors (#17970) (Milos Djermanovic)
Documentation
96307dadocs: migration guide entry forno-inner-declarations(#17977) (Tanuj Kanti)40be60edocs: Update README (GitHub Actions Bot)d31c180docs: fix number of code-path events on custom rules page (#17969) (Richard Hunter)1529ab2docs: reorder entries in v9 migration guide (#17967) (Milos Djermanovic)9507525docs: Explain how to combine configs (#17947) (Nicholas C. Zakas)7c78576docs: Add more removedcontextmethods to migrate to v9 guide (#17951) (Milos Djermanovic)3a877d6docs: Update removed CLI flags migration (#17939) (Nicholas C. Zakas)4a9cd1edocs: Update Linter API for v9 (#17937) (Milos Djermanovic)2a8eea8docs: update docs for v9.0.0-alpha.0 (#17929) (Milos Djermanovic)
Build Related
Chores
c5e50eechore: package.json update for @eslint/js release (Jenkins)1bf2520chore: Split Docs CI from core CI (#17897) (Nicholas C. Zakas)320787echore: delete relative-module-resolver.js (#17981) (Francesco Trotta)4926f33refactor: useObject.hasOwn()(#17948) (Milos Djermanovic)df200e1refactor: useArray.prototype.at()to get last elements (#17949) (Milos Djermanovic)750b8dfchore: update dependency glob to v10 (#17917) (renovate[bot])74794f5chore: removed unused eslintrc modules (#17938) (Milos Djermanovic)10ed29cchore: remove unused dependency rimraf (#17934) (Francesco Trotta)903ee60ci: use--forceflag when installing eslint (#17921) (Milos Djermanovic)
v9.0.0-alpha.0
Breaking Changes
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
8792464feat: Enable eslint.config.mjs and eslint.config.cjs (#17909) (Nicholas C. Zakas)24ce927feat: warn by default for unused disable directives (#17879) (Bryan Mishkin)
Bug Fixes
f182114fix: deep merge behavior in flat config (#17906) (Francesco Trotta)b577e8afix: allow circular references in config (#17752) (Francesco Trotta)
Documentation
7f0ba51docs: showNEXTin version selectors (#17911) (Milos Djermanovic)0a7911edocs: add flat config default to v9 migration guide (#17927) (Milos Djermanovic)94f8065docs: Add CLI updates to migrate to v9 guide (#17924) (Nicholas C. Zakas)16187f2docs: Add exported and string config notes to migrate to v9 guide (#17926) (Nicholas C. Zakas)3ae50ccdocs: Add RuleTester changes to migrate to v9 guide (#17923) (Nicholas C. Zakas)0831b58docs: add rule changes to v9 migration guide (#17925) (Milos Djermanovic)037abfcdocs: update API docs (#17919) (Milos Djermanovic)afc3c03docs: add function-style andmeta.schemachanges to v9 migration guide (#17912) (Milos Djermanovic)1da0723docs: updateeslint:recommendedsection in Migrate to v9.x (#17908) (Milos Djermanovic)f55881fdocs: remove configuration-files-new.md (#17907) (Milos Djermanovic)63ae191docs: Migrate to v9.0.0 (#17905) (Nicholas C. Zakas)e708496docs: Switch to flat config by default (#17840) (Nicholas C. Zakas)fdf0424docs: Update Create a Plugin for flat config (#17826) (Nicholas C. Zakas)e6a91bddocs: Switch shareable config docs to use flat config (#17827) (Nicholas C. Zakas)3831fb7docs: updated examples ofmax-linesrule (#17898) (Tanuj Kanti)cd1ac20docs: Update README (GitHub Actions Bot)
Chores
17fedc1chore: upgrade @eslint/[email protected] (#17928) (Milos Djermanovic)cb89ef3chore: package.json update for @eslint/js release (Jenkins)f6f4a45chore: drop structuredClone polyfill for v9 (#17915) (Kevin Gibbons)412dcbbchore: upgrade [email protected] (#17916) (Milos Djermanovic)02a8bafchore: Rename files with underscores (#17910) (Nicholas C. Zakas)c0f5d91chore: remove creating an unused instance of Linter in tests (#17902) (Milos Djermanovic)3826cdfchore: use jsdoc/no-multi-asterisks with allowWhitespace: true (#17900) (Percy Ma)a9a17b3chore: fix getting scope in tests (#17899) (Milos Djermanovic)595a1f6test: ensure that CLI tests run with FlatESLint (#17884) (Francesco Trotta)c7eca43chore: update dependency markdownlint-cli to ^0.38.0 (#17865) (renovate[bot])cc0c9f7ci: bump github/codeql-action from 2 to 3 (#17873) (dependabot[bot])
v8.56.0
Features
0dd9704feat: Support custom severity when reporting unused disable directives (#17212) (Bryan Mishkin)31a7e3ffeat: fix no-restricted-properties false negatives with unknown objects (#17818) (Arka Pratim Chaudhuri)
Bug Fixes
7d5e5f6fix:TypeError: fs.exists is not a functionon read-only file system (#17846) (Francesco Trotta)74739c8fix: suggestion with invalid syntax in no-promise-executor-return rule (#17812) (Bryan Mishkin)
Documentation
9007719docs: update link in ways-to-extend.md (#17839) (Amel SELMANE)3a22236docs: Update README (GitHub Actions Bot)54c3ca6docs: fix migration-guide example (#17829) (Tanuj Kanti)4391b71docs: check config comments in rule examples (#17815) (Francesco Trotta)fd28363docs: remove mention about ESLint stylistic rules in readme (#17810) (Zwyx)48ed5a6docs: Update README (GitHub Actions Bot)
Chores
ba6af85chore: upgrade @eslint/[email protected] (#17864) (Milos Djermanovic)60a531achore: package.json update for @eslint/js release (Jenkins)ba87a06chore: update dependency markdownlint to ^0.32.0 (#17783) (renovate[bot])9271d10chore: add GitHub issue template for docs issues (#17845) (Josh Goldberg ✨)70a686bchore: Convert rule tests to FlatRuleTester (#17819) (Nicholas C. Zakas)f3a599dchore: upgrade eslint-plugin-unicorn to v49.0.0 (#17837) (唯然)905d4b7chore: upgrade eslint-plugin-eslint-plugin v5.2.1 (#17838) (唯然)4d7c3cechore: update eslint-plugin-n v16.4.0 (#17836) (唯然)fd0c60cci: unpin Node.js 21.2.0 (#17821) (Francesco Trotta)
v8.55.0
Features
Documentation
83ece2adocs: fix typo--rules->--rule(#17806) (OKURA Masafumi)fffca5cdocs: remove "Open in Playground" buttons for removed rules (#17791) (Francesco Trotta)a6d9442docs: fix correct/incorrect examples of rules (#17789) (Tanuj Kanti)383e999docs: update and fix examples forno-unused-vars(#17788) (Tanuj Kanti)5a8efd5docs: add specific stylistic rule for each deprecated rule (#17778) (Etienne)
Chores
eb8950cchore: upgrade @eslint/[email protected] (#17811) (Milos Djermanovic)93df384chore: package.json update for @eslint/js release (Jenkins)fe4b954chore: upgrade @eslint/[email protected] (#17799) (Milos Djermanovic)bd8911dci: pin Node.js 21.2.0 (#17809) (Milos Djermanovic)b29a16bchore: fix severalclitests to run in the intended flat config mode (#17797) (Milos Djermanovic)de165c1chore: remove unused config-extends fixtures (#17781) (Milos Djermanovic)d4304b8chore: remove formatting/stylistic rules from new rule templates (#17780) (Francesco Trotta)21024fechore: check rule examples for syntax errors (#17718) (Francesco Trotta)