Skip to content

Releases: eslint/eslint

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)

v9.25.0

18 Apr 18:33
Compare
Choose a tag to compare

Features

  • dcd95aa feat: support TypeScript syntax in no-empty-function rule (#19551) (sethamus)
  • 77d6d5b feat: support TS syntax in no-unused-expressions (#19564) (Sweta Tanwar)
  • 90228e5 feat: support JSRuleDefinition type (#19604) (루밀LuMir)
  • 59ba6b7 feat: add allowObjects option to no-restricted-properties (#19607) (sethamus)
  • db650a0 feat: support TypeScript syntax in no-invalid-this rule (#19532) (Tanuj Kanti)
  • 9535cff feat: support TS syntax in no-loop-func (#19559) (Nitin Kumar)

Bug Fixes

  • 910bd13 fix: nodeTypeKey not being used in NodeEventGenerator (#19631) (StyleShit)

Documentation

  • ca7a735 docs: update no-undef-init when not to use section (#19624) (Tanuj Kanti)
  • 1b870c9 docs: use eslint-config-xo in the getting started guide (#19629) (Nitin Kumar)
  • 5d4af16 docs: add types for multiple rule options (#19616) (Tanuj Kanti)
  • e8f8d57 docs: Update README (GitHub Actions Bot)
  • a40348f docs: no-use-before-define tweaks (#19622) (Kirk Waiblinger)
  • 0ba3ae3 docs: Update README (GitHub Actions Bot)
  • 865dbfe docs: ensure "learn more" deprecation links point to useful resource (#19590) (Kirk Waiblinger)
  • f80b746 docs: add known limitations for no-self-compare (#19612) (Nitin Kumar)
  • 865aed6 docs: Update README (GitHub Actions Bot)

Chores

  • 88dc196 chore: upgrade @eslint/js@9.25.0 (#19636) (Milos Djermanovic)
  • 345288d chore: package.json update for @eslint/js release (Jenkins)
  • affe6be chore: upgrade trunk (#19628) (sethamus)
  • dd20cf2 test: fix no-loop-func test with duplicate variable reports (#19610) (Milos Djermanovic)
  • bd05397 chore: upgrade @eslint/* dependencies (#19606) (Milos Djermanovic)
  • 22ea18b chore: replace invalid int type with number inside JSDocs. (#19597) (Arya Emami)

v9.24.0

04 Apr 19:20
Compare
Choose a tag to compare

Features

  • 556c25b feat: support loading TS config files using --experimental-strip-types (#19401) (Arya Emami)
  • 72650ac feat: support TS syntax in init-declarations (#19540) (Nitin Kumar)
  • 03fb0bc feat: normalize patterns to handle "./" prefix in files and ignores (#19568) (Pixel998)
  • 071dcd3 feat: support TS syntax in no-dupe-class-members (#19558) (Nitin Kumar)
  • cd72bcc feat: Introduce a way to suppress violations (#19159) (Iacovos Constantinou)
  • 2a81578 feat: support TS syntax in no-loss-of-precision (#19560) (Nitin Kumar)
  • 30ae4ed feat: add new options to class-methods-use-this (#19527) (sethamus)
  • b79ade6 feat: support TypeScript syntax in no-array-constructor (#19493) (Tanuj Kanti)

Bug Fixes

  • b23d1c5 fix: deduplicate variable names in no-loop-func error messages (#19595) (Nitin Kumar)
  • fb8cdb8 fix: use any[] type for context.options (#19584) (Francesco Trotta)

Documentation

  • f857820 docs: update documentation for --experimental-strip-types (#19594) (Nikolas SchrΓΆter)
  • 803e4af docs: simplify gitignore path handling in includeIgnoreFile section (#19596) (Thomas Broyer)
  • 6d979cc docs: Update README (GitHub Actions Bot)
  • 82177e4 docs: Update README (GitHub Actions Bot)
  • e849dc0 docs: replace existing var with const (#19578) (Sweta Tanwar)
  • 0c65c62 docs: don't pass filename when linting rule examples (#19571) (Milos Djermanovic)
  • 6be36c9 docs: Update custom-rules.md code example of fixer (#19555) (Yifan Pan)

Build Related

  • 366e369 build: re-enable Prettier formatting for package.json files (#19569) (Francesco Trotta)

Chores

  • ef67420 chore: upgrade @eslint/js@9.24.0 (#19602) (Milos Djermanovic)
  • 4946847 chore: package.json update for @eslint/js release (Jenkins)
  • a995acb chore: correct 'flter'/'filter' typo in package script (#19587) (Josh Goldberg ✨)
  • b9a5efa test: skip symlink test on Windows (#19503) (fisker Cheung)
  • 46eea6d chore: remove Rule & FormatterFunction from shared/types.js (#19556) (Nitin Kumar)
  • bdcc91d chore: modify .editorconfig to keep parity with prettier config (#19577) (Sweta Tanwar)
  • 7790d83 chore: fix some typos in comment (#19576) (todaymoon)
  • 76064a6 test: ignore package-lock.json for eslint-webpack-plugin (#19572) (Francesco Trotta)

v9.23.0

21 Mar 20:38
Compare
Choose a tag to compare

Features

  • 557a0d2 feat: support TypeScript syntax in no-useless-constructor (#19535) (Josh Goldberg ✨)
  • 8320241 feat: support TypeScript syntax in default-param-last (#19431) (Josh Goldberg ✨)
  • 833c4a3 feat: defineConfig() supports "flat/" config prefix (#19533) (Nicholas C. Zakas)
  • 4a0df16 feat: circular autofix/conflicting rules detection (#19514) (Milos Djermanovic)
  • be56a68 feat: support TypeScript syntax in class-methods-use-this (#19498) (Josh Goldberg ✨)

Bug Fixes

  • 0e20aa7 fix: move deprecated RuleContext methods to subtype (#19531) (Francesco Trotta)
  • cc3bd00 fix: reporting variable used in catch block in no-useless-assignment (#19423) (Tanuj Kanti)
  • d46ff83 fix: no-dupe-keys false positive with proto setter (#19508) (Milos Djermanovic)
  • e732773 fix: navigation of search results on pressing Enter (#19502) (Tanuj Kanti)
  • f4e9c5f fix: allow RuleTester to test files inside node_modules/ (#19499) (fisker Cheung)

Documentation

  • 5405939 docs: show red underlines in TypeScript examples in rules docs (#19547) (Milos Djermanovic)
  • 48b53d6 docs: replace var with const in examples (#19539) (Nitin Kumar)
  • c39d7db docs: Update README (GitHub Actions Bot)
  • a4f8760 docs: revert accidental changes (#19542) (Francesco Trotta)
  • 280128f docs: add copy button (#19512) (xbinaryx)
  • cd83eaa docs: replace var with const in examples (#19530) (Nitin Kumar)
  • 7ff0cde docs: Update README (GitHub Actions Bot)
  • 996cfb9 docs: migrate sass to module system (#19518) (xbinaryx)
  • 17cb958 docs: replace var with let and const in rule examples (#19515) (Tanuj Kanti)
  • 83e24f5 docs: Replace var with let or const (#19511) (Jenna Toff)
  • a59d0c0 docs: Update docs for defineConfig (#19505) (Nicholas C. Zakas)
  • fe92927 docs: require-unicode-regexp add note for i flag and \w (#19510) (Chaemin-Lim)

Build Related

  • 2357edd build: exclude autogenerated files from Prettier formatting (#19548) (Francesco Trotta)

Chores

  • 0ac8ea4 chore: update dependencies for v9.23.0 release (#19554) (Francesco Trotta)
  • 20591c4 chore: package.json update for @eslint/js release (Jenkins)
  • 901344f chore: update dependency @eslint/json to ^0.11.0 (#19552) (renovate[bot])
  • 5228383 chore: fix update-readme formatting (#19544) (Milos Djermanovic)
  • 5439525 chore: format JSON files in Trunk (#19541) (Francesco Trotta)
  • 75adc99 chore: enabled Prettier in Trunk (#19354) (Josh Goldberg ✨)
  • 2395168 chore: added .git-blame-ignore-revs for Prettier via trunk fmt (#19538) (Josh Goldberg ✨)
  • 129882d chore: formatted files with Prettier via trunk fmt (#19355) (Josh Goldberg ✨)
  • 1738dbc chore: temporarily disable prettier in trunk (#19537) (Josh Goldberg ✨)
  • dc854fd chore: update dependency shelljs to ^0.9.0 (#19524) (renovate[bot])
  • 5d57496 chore: fix some comments (#19525) (jimmycathy)
  • 9c5c6ee test: fix an assertion failure (#19500) (fisker Cheung)
  • 7a699a6 chore: remove formatting-related lint rules internally (#19473) (Josh Goldberg ✨)
  • c99db89 test: replace WebdriverIO with Cypress (#19465) (Pixel998)

v9.22.0

07 Mar 21:17
Compare
Choose a tag to compare

Features

  • 7ddb095 feat: Export defineConfig, globalIgnores (#19487) (Nicholas C. Zakas)

Bug Fixes

  • 19c0127 fix: improve message for no-console suggestions (#19483) (Francesco Trotta)
  • 49e624f fix: improve error message for falsy parsed JS AST (#19458) (Josh Goldberg ✨)

Documentation

  • 86c5f37 docs: Update README (GitHub Actions Bot)
  • fbdeff0 docs: Update README (GitHub Actions Bot)
  • c9e8510 docs: generate deprecation notice in TSDoc comments from rule metadata (#19461) (Francesco Trotta)
  • 2f386ad docs: replace var with const in rule examples (#19469) (Tanuj Kanti)
  • 0e688e3 docs: Update README (GitHub Actions Bot)
  • 06b596d docs: Restore the carrot to the position where the search input was lost (#19459) (Amaresh S M)

Chores

  • 97f788b chore: upgrade @eslint/js@9.22.0 (#19489) (Milos Djermanovic)
  • eed409a chore: package.json update for @eslint/js release (Jenkins)
  • f9a56d3 chore: upgrade eslint-scope@8.3.0 (#19488) (Milos Djermanovic)

v9.21.0

21 Feb 21:48
Compare
Choose a tag to compare

Features

  • 418717f feat: introduce new deprecated types for rules (#19238) (fnx)
  • 5c5b802 feat: Add --ext CLI option (#19405) (Milos Djermanovic)

Bug Fixes

  • db5340d fix: update missing plugin message template (#19445) (Milos Djermanovic)
  • d8ffdd4 fix: do not exit process on rule crash (#19436) (Francesco Trotta)

Documentation

  • c5561ea docs: Update README (GitHub Actions Bot)
  • 80b0485 docs: replace var with let and const in rule example (#19434) (Tanuj Kanti)
  • f67d5e8 docs: Update README (GitHub Actions Bot)
  • 75afc61 docs: Update README (GitHub Actions Bot)
  • 0636cab docs: Update Eleventy from v2 to v3 (#19415) (Amaresh S M)
  • dd7d930 docs: Update README (GitHub Actions Bot)

Chores

  • a8c9a9f chore: update @eslint/eslintrc and @eslint/js (#19453) (Francesco Trotta)
  • 265e0cf chore: package.json update for @eslint/js release (Jenkins)
  • 3401b85 test: add test for Rule.ReportDescriptor type (#19449) (Francesco Trotta)
  • e497aa7 chore: update rewrite dependencies (#19448) (Francesco Trotta)
  • dab5478 chore: better error message for missing plugin in config (#19402) (Tanuj Kanti)
  • ebfe2eb chore: set js language for bug report issue config block (#19439) (Josh Goldberg ✨)
  • 5fd211d test: processors can return subpaths (#19425) (Milos Djermanovic)

v9.20.1

11 Feb 17:15
Compare
Choose a tag to compare

Bug Fixes

Documentation

  • fe3ccb2 docs: allow typing in search box while dropdown is open (#19424) (Amaresh S M)
  • 93c78a5 docs: Add instructions for pnpm compat (#19422) (Nicholas C. Zakas)
  • b476a93 docs: Fix Keyboard Navigation for Search Results (#19416) (Amaresh S M)
  • ccb60c0 docs: Update README (GitHub Actions Bot)

v9.20.0

07 Feb 21:37
Compare
Choose a tag to compare

Features

  • e89a54a feat: change behavior of inactive flags (#19386) (Milos Djermanovic)

Bug Fixes

  • 91d4d9f fix: Bring types in sync with @eslint/core (#19157) (Nicholas C. Zakas)
  • fa25c7a fix: Emit warning when empty config file is used (#19399) (Nicholas C. Zakas)
  • 31a9fd0 fix: Clearer error message for wrong plugin format (#19380) (Nicholas C. Zakas)
  • 61d99e3 fix: Better error message for unserializable parser (#19384) (Nicholas C. Zakas)
  • db1b9a6 fix: Ensure module scope is checked for references in consistent-this (#19383) (Nicholas C. Zakas)
  • 8bcd820 fix: arrow-body-style crash with single-token body (#19379) (Milos Djermanovic)

Documentation

  • b7012c8 docs: rewrite examples with var using let and const (#19407) (Mueez Javaid Hashmi)
  • 6406376 docs: Update README (GitHub Actions Bot)
  • 350f2b9 docs: rewrite some examples with var using let and const (#19404) (Mueez Javaid Hashmi)
  • 93c325a docs: rewrite examples with var using let and const (#19398) (Mueez Javaid Hashmi)
  • 56ff404 docs: replace var with let or const in rules docs (#19396) (Daniel Harbrueger)
  • 4053226 docs: change sourceType in no-eval examples (#19393) (Milos Djermanovic)
  • 1324af0 docs: replace var with let and const in rules docs (#19392) (Daniel Harbrueger)
  • 8b87e00 docs: replace var with const and let in rules (#19389) (Tanuj Kanti)
  • 758c66b docs: Explain what frozen rules mean (#19382) (Nicholas C. Zakas)
  • 0ef8bb8 docs: additional checks for rule examples (#19358) (Milos Djermanovic)
  • 58ab2f6 docs: fix order of installation steps in getting started (#19326) (Tanuj Kanti)

Chores

  • 979097a chore: upgrade @eslint/js@9.20.0 (#19412) (Francesco Trotta)
  • 031734e chore: package.json update for @eslint/js release (Jenkins)
  • d4c47c3 test: avoid empty config warning in test output (#19408) (Milos Djermanovic)
  • 67dd82a chore: update dependency @eslint/json to ^0.10.0 (#19387) (renovate[bot])
  • 15ac0e1 chore: add permissions: read-all to stale.yml workflow (#19374) (Josh Goldberg ✨)