
Highlights
This is a summary of the significant changes, both breaking and non-breaking, you need to know about when upgrading from ESLint v8.x to ESLint v9.0.0.
Installing
Because this is a major release, you may not automatically be upgraded by npm. To ensure you are using this version, run:
npm i eslint@9.0.0 --save-dev
Migration Guide
As there are a lot of changes, we’ve created a migration guide describing the breaking changes in great detail along with the steps you should take to address them. We expect that most users should be able to upgrade without any build changes, but the migration guide should be a useful resource if you encounter problems.
Node.js < v18.18.0, v19 no longer supported
As of this post, Node.js v20.x is the LTS release, and as such we are dropping support for all versions of Node.js prior to v18.18.0 as well as v19.x.
Flat config is now the default and has some changes
Flat config is now the default configuration format for ESLint and eslintrc is officially deprecated. To continue using a eslintrc configuration file, you’ll need to set the ESLINT_USE_FLAT_CONFIG environment variable to false.
This change affects users, plugin developers, and integrators as many aspects of ESLint had to change to make this happen. Please see our previous blog post for more details.
This release also introduces the config inspector, which can be launched on the command line using --inspect-config.
Removed all formatters except stylish, html, json, and json-with-meta
The following formatters have been removed:
checkstylecompactjslint-xmljunittapunixvisualstudio
If you are using these formatters currently, you’ll need to install the standalone packages for use with ESLint v9.0.0.
Removed valid-jsdoc and require-jsdoc rules
We have removed valid-jsdoc and require-jsdoc. We recommend using the eslint-plugin-jsdoc plugin instead.
Removed deprecated methods on context and SourceCode
As we announced in September, we have removed a lot of deprecated methods from context and replaced them with methods on SourceCode.
Updated eslint:recommended
The eslint:recommended configuration is updated to include new rules that we feel are important, and to remove deprecated and less important rules.
New rule: no-useless-assignment
ESLint v9.0.0 introduces a new rule, no-useless-assignment, that is designed to catch situations where you’ve assigned a value to a variable and that value is never used. For example:
let id = 1234; // 1234 is never used
id = calculateId();
Updates to existing rules
- The
complexityrule now also takes into account optional chaining and default values in destructuring patterns and parameters. - The
no-fallthroughrule has a new optionreportUnusedFallthroughComment. - The
no-inner-declarationsrule has a new default behavior. In v8.x, the rule would flag any functions defined inside of blocks as errors because this behavior was undefined in early versions of JavaScript. As of ES 2015, block-scoped function declarations are well-defined and so we changed the default behavior to not warn on block-scoped functions. - The
no-misleading-character-classrule now highlights the offending characters in a regular expression rather than the entire regular expression. - The
no-restricted-importsrule changed the behavior ofpaths. In v8.x, if multiple entries in thepathsarray of your configuration for Theno-restricted-importsrule had the samenameproperty, only the last one would apply. In v9.0.0, all entries apply, allowing for specifying different error messages for different imported names. - The
no-restricted-importsrule has new optionsallowImportNamesandallowImportNamePattern. - The
no-unused-varsrulevarsIgnorePatternoption no longer applies to caught error variables. - The
no-unused-varsrule has a new default value for thecaughtErrorsoption (changed from"none"to"all"). - The
no-unused-varsrule has a new optionignoreClassWithStaticInitBlock. - The
no-unused-varsrule has a new optionreportUsedIgnorePattern. - The
no-useless-computed-keyrule has a new default value for theenforceForClassMembersoption (changed fromfalsetotrue). This is intended to help avoiding misleading comments that can occur as a result of refactoring. When this option is set totrue, the rule will prohibit a fallthrough comment if a case can never fallthrough.
New API loadESLint()
ESLint now exports a new function loadESLint() from its main entry point. Integrations can use this function to get either the ESLint class (former FlatESLint class) or the LegacyESLint class (former ESLint class) and thus easily swap between flat config and eslintrc APIs.
Changes to how you write rules
We’ve made multiple changes to help prevent errors in rules:
- Function-style rules will stop working in v9.0.0. Function-style rules are rules created by exporting a function from a file rather than exporting an object with a
create()method. - When a rule doesn’t have
meta.schemaspecified, a default schema of[]will be applied. This means that rules without a schema will be assumed to have no options, which in turn means that validation will fail if options are provided.
Stricter RuleTester validations
This release adds more checks in RuleTester:
- Messages cannot have unsubstituted placeholders.
- Suggestions must change the code.
- Suggestion messages must be unique for the same lint problem.
- Suggestions must generate valid syntax.
- Test case
outputmust be different fromcode. - Test error objects must specify
messageormessageId. - Test error object must specify
suggestionsif the actual error provides suggestions. - Test suggestion objects must specify
descormessageId. - Test suggestion objects must specify
output. filenameandonlyproperties of test objects must be of the expected type (stringandboolean, respectively).- Duplicate tests cause an error.
The --output-file flag now guarantees a file is output
The --output-file CLI flag is designed to output the results of the ESLint run to specified file. Prior to this release, no file would be output if linting passed with no errors or warnings. In v9.0.0, an empty file will be output when linting passes without any errors or warnings.
Better scope analysis
In v9.0.0, we updated the behavior of eslint-scope to fix a couple of longstanding bugs:
- Previously, ESLint would treat
("use strict")as a strict mode directive even though it is not. We fixed the behavior so only valid strict mode directives are honored. - The containing scope of a class
extendsclause was incorrectly set to be the scope containing the class when it should have been the class scope itself. This has been fixed.
CodePath#currentSegments removed
As announced in our previous post, CodePath#currentSegments has been removed from the rules API. Please refer to the post for more details.
Precalculated Code Paths
ESLint v9.0.0 now precalculates code path information before the traversal used by rules. As a result, the code path information is now complete regardless of where it is accessed inside of a rule.
Multiple /* eslint */ comments for the same rule are now disallowed
In ESLint v8.x, if the file being linted contained multiple /* eslint */ configuration comments for the same rule, the last one would be applied, while the others would be silently ignored.
In ESLint v9.0.0, the first one is applied, while the others are reported as lint errors.
--quiet option is more performant
The --quiet option hides all warnings in the ESLint console. In v9.0.0, we are making a performance improvement by also not executing any rules set to "warn".
Running eslint with no file arguments
If you are using flat config and you don’t pass any file arguments to the CLI, the CLI will default to linting the current directory, which means you can type npx eslint and it will just work. (Doing the same with an eslintrc config file will result in an error.)
Unused disable directives cause warnings by default
ESLint has long been able to flag unused disable directives. In this release, we’ve enabled warnings for unused disable directives by default. You can modify this value in your config file with linterOptions.reportUnusedDisableDirectives or on the command line using --report-unused-disable-directives-severity.
Performance statistics available in formatters via --stats
The information from the rule profiler is now available inside of formatters when the --stats flag is used in the CLI. This allows anyone to create custom visualizations of the performance information that ESLint tracks.
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 eslint-scope@8.0.0 (#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 Ota)287c4b7feat:no-misleading-character-classgranular errors (#17515) (Josh Goldberg ✨)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
610c148fix: Supportusingdeclarations in no-lone-blocks (#18269) (Kirk Waiblinger)e508800fix: rule tester ignore irrelevant test case properties (#18235) (fnx)a129acbfix: flat config name on ignores object (#18258) (Nicholas C. Zakas)dadc5bffix:constructor-superfalse positives with loops (#18226) (Milos Djermanovic)ae8103dfix: load plugins in the CLI in flat config mode (#18185) (Francesco Trotta)e37153ffix: improve error message for invalid rule config (#18147) (Nitin Kumar)af6e170fix: stop linting files after an error (#18155) (Francesco Trotta)0cb4914fix: validate options when comment with just severity enables rule (#18133) (Milos Djermanovic)c4d26fdfix:use-isnandoesn’t report onSequenceExpressions (#18059) (StyleShit)39076fbfix: handle absolute file paths inRuleTester(#17989) (Nitin Kumar)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)f182114fix: deep merge behavior in flat config (#17906) (Francesco Trotta)b577e8afix: allow circular references in config (#17752) (Francesco Trotta)
Documentation
e151050docs: update get-started to the new@eslint/create-config(#18217) (唯然)94178addocs: mention aboutnamefield in flat config (#18252) (Anthony Fu)1765c24docs: add Troubleshooting page (#18181) (Josh Goldberg ✨)96607d0docs: version selectors synchronization (#18260) (Milos Djermanovic)651ec91docs: remove/* eslint-env */comments from rule examples (#18249) (Milos Djermanovic)950c4f1docs: Update README (GitHub Actions Bot)12f5746docs: add info about dot files and dir in flat config (#18239) (Tanuj Kanti)b93f408docs: update shared settings example (#18251) (Tanuj Kanti)26384d3docs: fixecmaVersionin one example, add checks (#18241) (Milos Djermanovic)7747097docs: Update PR review process (#18233) (Nicholas C. Zakas)b07d427docs: fix typo (#18246) (Kirill Gavrilov)778082ddocs: add Glossary page (#18187) (Josh Goldberg ✨)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)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)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)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)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)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)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)
Build Related
26010c2Build: changelog update for 9.0.0-rc.0 (Jenkins)b91f9dcbuild: fix TypeError in prism-eslint-hooks.js (#18209) (Francesco Trotta)d7ec0d1Build: changelog update for 9.0.0-beta.2 (Jenkins)fd9c0a9Build: changelog update for 9.0.0-beta.1 (Jenkins)c9f2f33build: changelog update for 8.57.0 (#18144) (Milos Djermanovic)1bbc495Build: changelog update for 9.0.0-beta.0 (Jenkins)96f8877Build: changelog update for 9.0.0-alpha.2 (Jenkins)52d5e7aBuild: changelog update for 9.0.0-alpha.1 (Jenkins)c2bf27dbuild: update docs files when publishing prereleases (#17940) (Milos Djermanovic)e91d85dBuild: changelog update for 9.0.0-alpha.0 (Jenkins)
Chores
19f9a89chore: Update dependencies for v9.0.0 (#18275) (Nicholas C. Zakas)7c957f2chore: package.json update for @eslint/js release (Jenkins)d73a33cchore: ignore/docs/v8.xin link checker (#18274) (Milos Djermanovic)44a81c6chore: upgrade knip (#18272) (Lars Kappert)e80b60cchore: remove code for testing version selectors (#18266) (Milos Djermanovic)a98babcchore: add npm script to run WebdriverIO test (#18238) (Francesco Trotta)9b7bd3bchore: update dependency markdownlint to ^0.34.0 (#18237) (renovate[bot])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)7509276chore: upgrade @eslint/js@9.0.0-beta.2 (#18180) (Milos Djermanovic)96087b3chore: package.json update for @eslint/js release (Jenkins)925afa2chore: Remove some uses oflodash.merge(#18179) (Milos Djermanovic)972ef15chore: remove invalid type in @eslint/js (#18164) (Nitin Kumar)32ffdd1chore: upgrade @eslint/js@9.0.0-beta.1 (#18146) (Milos Djermanovic)e41425bchore: package.json update for @eslint/js release (Jenkins)bb3b9c6chore: upgrade @eslint/eslintrc@3.0.2 (#18145) (Milos Djermanovic)e462524chore: upgrade eslint-release@3.2.2 (#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)e40d1d7chore: upgrade @eslint/js@9.0.0-beta.0 (#18108) (Milos Djermanovic)9870f93chore: package.json update for @eslint/js release (Jenkins)2c62e79chore: upgrade @eslint/eslintrc@3.0.1 (#18107) (Milos Djermanovic)81f0294chore: upgrade espree@10.0.1 (#18106) (Milos Djermanovic)5e2b292chore: upgrade eslint-visitor-keys@4.0.0 (#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])6ffdcbbchore: upgrade @eslint/js@9.0.0-alpha.2 (#18038) (Milos Djermanovic)2c12715chore: package.json update for @eslint/js release (Jenkins)cc74c4dchore: upgrade espree@10.0.0 (#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)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)17fedc1chore: upgrade @eslint/js@9.0.0-alpha.0 (#17928) (Milos Djermanovic)cb89ef3chore: package.json update for @eslint/js release (Jenkins)f6f4a45chore: drop structuredClone polyfill for v9 (#17915) (Kevin Gibbons)412dcbbchore: upgrade eslint-plugin-n@16.6.0 (#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])
