Skip to content

Releases: eslint/eslint

v9.33.0

08 Aug 20:34
Compare
Choose a tag to compare

Features

  • e07820e feat: add global object access detection to no-restricted-globals (#19939) (sethamus)
  • 90b050e feat: support explicit resource management in one-var (#19941) (Sweta Tanwar)

Bug Fixes

  • 732433c fix: allow any type for meta.docs.recommended in custom rules (#19995) (Francesco Trotta)
  • e8a6914 fix: Fixed potential bug in check-emfile-handling.js (#19975) (諏θ¨ͺεŽŸζ…Άζ–—)

Documentation

  • 34f0723 docs: playground button for TypeScript code example (#19671) (Tanuj Kanti)
  • dc942a4 docs: Update README (GitHub Actions Bot)
  • 5a4b6f7 docs: Update no-multi-assign.md (#19979) (Yuki Takada (Yukinosuke Takada))
  • 247e156 docs: add missing let declarations in no-plusplus (#19980) (Yuki Takada (Yukinosuke Takada))
  • 0d17242 docs: Update README (GitHub Actions Bot)
  • fa20b9d docs: Clarify when to open an issue for a PR (#19974) (Nicholas C. Zakas)

Build Related

  • 27fa865 build: use ESLint class to generate formatter examples (#19972) (Milos Djermanovic)

Chores

  • 4258046 chore: update dependency @eslint/js to v9.33.0 (#19998) (renovate[bot])
  • ad28371 chore: package.json update for @eslint/js release (Jenkins)
  • 06a22f1 test: resolve flakiness in --mcp flag test (#19993) (Pixel998)
  • 54920ed test: switch to Linter.Config in ESLintRules type tests (#19977) (Francesco Trotta)

v9.32.0

25 Jul 14:46
Compare
Choose a tag to compare

Features

  • 1245000 feat: support explicit resource management in core rules (#19828) (fnx)
  • 0e957a7 feat: support typescript types in accessor rules (#19882) (fnx)

Bug Fixes

  • 960fd40 fix: Upgrade @eslint/js (#19971) (Nicholas C. Zakas)
  • bbf23fa fix: Refactor reporting into FileReport (#19877) (Nicholas C. Zakas)
  • d498887 fix: bump @eslint/plugin-kit to 0.3.4 to resolve vulnerability (#19965) (Milos Djermanovic)
  • f46fc6c fix: report only global references in no-implied-eval (#19932) (Nitin Kumar)
  • 7863d26 fix: remove outdated types in ParserOptions.ecmaFeatures (#19944) (ntnyq)
  • 3173305 fix: update execScript message in no-implied-eval rule (#19937) (TKDev7)

Documentation

  • 86e7426 docs: Update README (GitHub Actions Bot)

Chores

  • 50de1ce chore: package.json update for @eslint/js release (Jenkins)
  • 74f01a3 ci: unpin jiti to version ^2.5.1 (#19970) (루밀LuMir)
  • 2ab1381 ci: pin jiti to version 2.4.2 (#19964) (Francesco Trotta)
  • b7f7545 test: switch to flat config mode in SourceCode tests (#19953) (Milos Djermanovic)
  • f5a35e3 test: switch to flat config mode in eslint-fuzzer (#19960) (Milos Djermanovic)
  • e22af8c refactor: use CustomRuleDefinitionType in JSRuleDefinition (#19949) (Francesco Trotta)
  • e855717 chore: switch performance tests to hyperfine (#19919) (Francesco Trotta)
  • 2f73a23 test: switch to flat config mode in ast-utils tests (#19948) (Milos Djermanovic)
  • c565a53 chore: exclude further_reading_links.json from Prettier formatting (#19943) (Milos Djermanovic)

v9.31.0

11 Jul 20:34
Compare
Choose a tag to compare

Features

  • 35cf44c feat: output full actual location in rule tester if different (#19904) (ST-DDT)
  • a6a6325 feat: support explicit resource management in no-loop-func (#19895) (Milos Djermanovic)
  • 4682cdc feat: support explicit resource management in no-undef-init (#19894) (Milos Djermanovic)
  • 5848216 feat: support explicit resource management in init-declarations (#19893) (Milos Djermanovic)
  • bb370b8 feat: support explicit resource management in no-const-assign (#19892) (Milos Djermanovic)

Bug Fixes

  • 07fac6c fix: retry on EMFILE when writing autofix results (#19926) (TKDev7)
  • 28cc7ab fix: Remove incorrect RuleContext types (#19910) (Nicholas C. Zakas)

Documentation

  • 664cb44 docs: Update README (GitHub Actions Bot)
  • 40dbe2a docs: fix mismatch between globalIgnores() code and text (#19914) (MaoShizhong)
  • 5a0069d docs: Update README (GitHub Actions Bot)
  • fef04b5 docs: Update working on issues info (#19902) (Nicholas C. Zakas)

Chores

  • 3ddd454 chore: upgrade to @eslint/js@9.31.0 (#19935) (Francesco Trotta)
  • d5054e5 chore: package.json update for @eslint/js release (Jenkins)
  • 0f4a378 chore: update eslint (#19933) (renovate[bot])
  • 76c2340 chore: bump mocha to v11 (#19917) (루밀LuMir)

v9.30.1

01 Jul 20:14
Compare
Choose a tag to compare

Bug Fixes

  • e91bb87 fix: allow separate default and named type imports (#19899) (xbinaryx)

Documentation

  • ab7c625 docs: Update README (GitHub Actions Bot)
  • dae1e5b docs: update jsdoc's link (#19896) (JamesVanWaza)

Chores

  • b035f74 chore: upgrade to @eslint/js@9.30.1 (#19906) (Francesco Trotta)
  • b3dbc16 chore: package.json update for @eslint/js release (Jenkins)

v9.30.0

27 Jun 20:40
Compare
Choose a tag to compare

Features

  • 52a5fca feat: Support basePath property in config objects (#19879) (Milos Djermanovic)
  • 4ab4482 feat: add allowSeparateTypeImports option to no-duplicate-imports (#19872) (sethamus)
  • b8a7e7a feat: throw error when column is negative in getIndexFromLoc (#19831) (루밀LuMir)

Bug Fixes

  • 6a0f164 fix: handle null type loc in getIndexFromLoc method (#19862) (루밀LuMir)
  • 3fbcd70 fix: update error message for no-restricted-properties (#19855) (Tanuj Kanti)
  • 7ef4cf7 fix: remove unnecessary semicolon from fixes (#19857) (Francesco Trotta)
  • 7dabc38 fix: use process.version in --env-info (#19865) (TKDev7)

Documentation

  • 8662ed1 docs: adopt eslint-stylistic sub packages related changes (#19887) (ntnyq)
  • 20158b0 docs: typo in comment for unused variables handling (#19870) (leopardracer)
  • ebfb5b4 docs: Fixed Typo in configuration-files.md (#19873) (0-20)
  • 4112fd0 docs: clarify that boolean is still allowed for rule meta.deprecated (#19866) (Bryan Mishkin)

Chores

  • 2b6491c chore: upgrade to @eslint/js@9.30.0 (#19889) (Francesco Trotta)
  • 5a5d526 chore: package.json update for @eslint/js release (Jenkins)
  • eaf8a41 chore: Correct typos in linter tests (#19878) (kilavvy)

v9.29.0

13 Jun 17:33
Compare
Choose a tag to compare

Features

  • f686fcb feat: add ecmaVersion: 2026, parsing using and await using (#19832) (Milos Djermanovic)
  • 19cdd22 feat: prune suppressions for non-existent files (#19825) (TKDev7)
  • b3d720f feat: add ES2025 globals (#19835) (fisker Cheung)
  • 677a283 feat: add auto-accessor fields support to class-methods-use-this (#19789) (sethamus)
  • dbba058 feat: allow global type declaration in no-var (#19714) (Remco Haszing)
  • 342bd29 feat: ignore type annotations in no-restricted-globals (#19781) (sethamus)
  • 786bcd1 feat: add allowProperties option to no-restricted-properties (#19772) (sethamus)
  • 05b66d0 feat: add sourceCode.isGlobalReference(node) method (#19695) (Nitin Kumar)

Bug Fixes

  • 85c082c fix: explicit matching behavior with negated patterns and arrays (#19845) (Milos Djermanovic)
  • 9bda4a9 fix: fix LintOptions.filterCodeBlock types (#19837) (ntnyq)
  • 7ab77a2 fix: correct breaking deprecation of FlatConfig type (#19826) (Logicer)
  • 1ba3318 fix: add language and dialects to no-use-before-define (#19808) (Francesco Trotta)

Documentation

  • 00e3e6a docs: add support for custom name parameter to includeIgnoreFile (#19795) (루밀LuMir)
  • 3aed075 docs: Update README (GitHub Actions Bot)
  • a2f888d docs: enhance documentation with links and fix typos (#19761) (루밀LuMir)
  • 53c3235 docs: update to clarify prompt usage (#19748) (Jennifer Davis)

Chores

  • 5c114c9 chore: upgrade @eslint/js@9.29.0 (#19851) (Milos Djermanovic)
  • acf2201 chore: package.json update for @eslint/js release (Jenkins)
  • a806994 refactor: Remove eslintrc from flat config functionality (#19833) (Nicholas C. Zakas)
  • 152ed51 test: switch to flat config mode in code path analysis tests (#19824) (Milos Djermanovic)
  • b647239 chore: Update first-party dependencies faster with Renovate (#19822) (Nicholas C. Zakas)
  • 7abe42e refactor: SafeEmitter -> SourceCodeVisitor (#19708) (Nicholas C. Zakas)
  • e392895 perf: improve time complexity of getLocFromIndex (#19782) (루밀LuMir)
  • 0ed289c chore: remove accidentally committed file (#19807) (Francesco Trotta)

v9.28.0

30 May 20:39
Compare
Choose a tag to compare

Features

  • b0674be feat: Customization of serialization for languageOptions (#19760) (Nicholas C. Zakas)
  • a95721f feat: Add --pass-on-unpruned-suppressions CLI option (#19773) (Milos Djermanovic)
  • bfd0e7a feat: support TypeScript syntax in no-use-before-define (#19566) (Tanuj Kanti)
  • 68c61c0 feat: support TS syntax in no-shadow (#19565) (Nitin Kumar)
  • 0f773ef feat: support TS syntax in no-magic-numbers (#19561) (Nitin Kumar)
  • c4a6b60 feat: add allowTypeAnnotation to func-style (#19754) (sethamus)
  • b03ad17 feat: add TypeScript support to prefer-arrow-callback (#19678) (Tanuj Kanti)
  • bc3c331 feat: ignore overloaded function declarations in func-style rule (#19755) (sethamus)

Bug Fixes

  • eea3e7e fix: Remove configured global variables from GlobalScope#implicit (#19779) (Milos Djermanovic)
  • a467de3 fix: update context.report types (#19751) (Nitin Kumar)
  • fd467bb fix: remove interopDefault to use jiti's default (#19697) (sethamus)
  • 72d16e3 fix: avoid false positive in no-unassigned-vars for declare module (#19746) (Azat S.)
  • 81c3c93 fix: curly types (#19750) (Eli)

Documentation

  • 3ec2082 docs: Nested arrays in files config entry (#19799) (Nicholas C. Zakas)
  • 89a65b0 docs: clarify how config arrays can apply to subsets of files (#19788) (Shais Ch)
  • 2ba8a0d docs: Add description of meta.namespace to plugin docs (#19798) (Nicholas C. Zakas)
  • 59dd7e6 docs: update func-style with examples (#19793) (Tanuj Kanti)
  • e9129e0 docs: add global scope's implicit field to Scope Manager docs (#19770) (Milos Djermanovic)
  • 52f5b7a docs: fix minor typos and add links (#19743) (루밀LuMir)
  • 00716a3 docs: upfront recommend against using the no-return-await rule (#19727) (Mike DiDomizio)

Chores

  • 175b7b8 chore: upgrade to @eslint/js@9.28.0 (#19802) (Francesco Trotta)
  • 844f5a6 chore: package.json update for @eslint/js release (Jenkins)
  • 62b1c1b chore: update globals to v16 (#19791) (Nitin Kumar)
  • e8a1cb8 chore: ignore jiti-v2.0 & jiti-v2.1 for renovate (#19786) (Nitin Kumar)
  • 43d3975 chore: Add Copilot Instructions file (#19753) (Nicholas C. Zakas)
  • 2dfb5eb test: update SourceCodeTraverser tests (#19763) (Milos Djermanovic)
  • 5bc21f9 chore: add *.code-workspace to .gitignore (#19771) (루밀LuMir)
  • f4fa40e refactor: NodeEventGenerator -> SourceCodeTraverser (#19679) (Nicholas C. Zakas)
  • 0f49329 refactor: use a service to emit warnings (#19725) (Francesco Trotta)
  • 20a9e59 chore: update dependency shelljs to ^0.10.0 (#19740) (renovate[bot])

v9.27.0

16 May 18:54
Compare
Choose a tag to compare

Features

  • d71e37f feat: Allow flags to be set in ESLINT_FLAGS env variable (#19717) (Nicholas C. Zakas)
  • ba456e0 feat: Externalize MCP server (#19699) (Nicholas C. Zakas)
  • 07c1a7e feat: add allowRegexCharacters to no-useless-escape (#19705) (sethamus)
  • 7bc6c71 feat: add no-unassigned-vars rule (#19618) (Jacob Bandes-Storch)
  • ee40364 feat: convert no-array-constructor suggestions to autofixes (#19621) (sethamus)
  • 32957cd feat: support TS syntax in max-params (#19557) (Nitin Kumar)

Bug Fixes

  • 5687ce7 fix: correct mismatched removed rules (#19734) (루밀LuMir)
  • dc5ed33 fix: correct types and tighten type definitions in SourceCode class (#19731) (루밀LuMir)
  • de1b5de fix: correct service property name in Linter.ESLintParseResult type (#19713) (Francesco Trotta)
  • 60c3e2c fix: sort keys in eslint-suppressions.json to avoid git churn (#19711) (Ron Waldon-Howe)
  • 9da90ca fix: add allowReserved to Linter.ParserOptions type (#19710) (Francesco Trotta)
  • fbb8be9 fix: add info to ESLint.DeprecatedRuleUse type (#19701) (Francesco Trotta)

Documentation

  • 25de550 docs: Update description of frozen rules to mention TypeScript (#19736) (Nicholas C. Zakas)
  • bd5def6 docs: Clean up configuration files docs (#19735) (Nicholas C. Zakas)
  • 4d0c60d docs: Add Neovim to editor integrations (#19729) (Maria JosΓ© Solano)
  • 71317eb docs: Update README (GitHub Actions Bot)
  • 4c289e6 docs: Update README (GitHub Actions Bot)
  • f0f0d46 docs: clarify that unused suppressions cause non-zero exit code (#19698) (Milos Djermanovic)
  • 8ed3273 docs: fix internal usages of ConfigData type (#19688) (Francesco Trotta)
  • eb316a8 docs: add fmt and check sections to Package.json Conventions (#19686) (루밀LuMir)
  • a3a2559 docs: fix wording in Combine Configs (#19685) (Milos Djermanovic)
  • c8d17e1 docs: Update README (GitHub Actions Bot)

Chores

  • f8f1560 chore: upgrade @eslint/js@9.27.0 (#19739) (Milos Djermanovic)
  • ecaef73 chore: package.json update for @eslint/js release (Jenkins)
  • 596fdc6 chore: update dependency @arethetypeswrong/cli to ^0.18.0 (#19732) (renovate[bot])
  • f791da0 chore: remove unbalanced curly brace from .editorconfig (#19730) (Maria JosΓ© Solano)
  • e86edee refactor: Consolidate Config helpers (#19675) (Nicholas C. Zakas)
  • cf36352 chore: remove shared types (#19718) (Francesco Trotta)
  • f60f276 refactor: Easier RuleContext creation (#19709) (Nicholas C. Zakas)
  • 58a171e chore: update dependency @eslint/plugin-kit to ^0.3.1 (#19712) (renovate[bot])
  • 3a075a2 chore: update dependency @eslint/core to ^0.14.0 (#19715) (renovate[bot])
  • 44bac9d ci: run tests in Node.js 24 (#19702) (Francesco Trotta)
  • 35304dd chore: add missing funding field to packages (#19684) (루밀LuMir)
  • f305beb test: mock process.emitWarning to prevent output disruption (#19687) (Francesco Trotta)

v9.26.0

02 May 21:35
Compare
Choose a tag to compare

Features

  • e9754e7 feat: add reportGlobalThis to no-shadow-restricted-names (#19670) (sethamus)
  • 0fa2b7a feat: add suggestions for eqeqeq rule (#19640) (Nitin Kumar)
  • dcbdcc9 feat: Add MCP server (#19592) (Nicholas C. Zakas)
  • 2dfd83e feat: add ignoreDirectives option in no-unused-expressions (#19645) (sethamus)

Bug Fixes

  • 96e84de fix: check cache file existence before deletion (#19648) (sethamus)
  • d683aeb fix: don't crash on tests with circular references in RuleTester (#19664) (Milos Djermanovic)
  • 9736d5d fix: add namespace to Plugin.meta type (#19661) (Milos Djermanovic)
  • 17bae69 fix: update RuleTester.run() type (#19634) (Nitin Kumar)

Documentation

  • dd98d63 docs: Update README (GitHub Actions Bot)
  • c25e858 docs: Update README (GitHub Actions Bot)
  • b2397e9 docs: Update README (GitHub Actions Bot)
  • addd0a6 docs: fix formatting of unordered lists in Markdown (#19660) (Milos Djermanovic)
  • a21b38d docs: Update README (GitHub Actions Bot)
  • c0721a7 docs: fix double space in command (#19657) (CamWass)

Chores

  • 5b247c8 chore: upgrade to @eslint/js@9.26.0 (#19681) (Francesco Trotta)
  • d6fa4ac chore: package.json update for @eslint/js release (Jenkins)
  • 0958690 chore: disambiguate internal types LanguageOptions and Rule (#19669) (Francesco Trotta)
  • f1c858e chore: fix internal type references to Plugin and Rule (#19665) (Francesco Trotta)
  • 40dd299 refactor: One-shot ESQuery selector analysis (#19652) (Nicholas C. Zakas)
  • 1cfd702 chore: update dependency @eslint/json to ^0.12.0 (#19656) (renovate[bot])

v9.25.1

21 Apr 17:13
Compare
Choose a tag to compare

Bug Fixes

  • cdc8e8c fix: revert directive detection in no-unused-expressions (#19639) (sethamus)

Chores

  • 1f2b057 chore: upgrade @eslint/js@9.25.1 (#19642) (Milos Djermanovic)
  • 771317f chore: package.json update for @eslint/js release (Jenkins)