Linting and Formatting Release Notes

Release notes for code linting, formatting and type-checking tools

Get this feed:

Products (5)

Latest Linting and Formatting Updates

  • Oct 16, 2026
    • Date parsed from source:
      Oct 16, 2026
    • First seen by Releasebot:
      Oct 16, 2026
    Eslint logo

    Eslint

    ESLint v10.13.0 released

    Eslint releases a minor update that improves linting coverage, with core rules now catching references inside IIFEs, calls to globalThis, and unsafe optional chaining in yield* expressions. It also fixes a variable redeclaration issue.

    We just pushed ESLint v10.13.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.

    Highlights

    Several core rules have been updated to report more linting problems.

    no-use-before-define

    The no-use-before-define rule has been updated to account for the fact that IIFEs execute immediately by treating them as part of the execution context where they are defined and called.

    This change can produce more linting errors in cases such as the following:

    /* eslint no-use-before-define: ["error", { variables: false }] */
    
    (() => {
      console.log(foo);
      // 'foo' was used before it was defined.
    })();
    const foo = "bar";
    

    no-obj-calls

    The no-obj-calls rule has been updated to report calls to globalThis.

    /* eslint no-obj-calls: "error" */
    const foo = globalThis();
    // 'globalThis' is not a function.
    const bar = new globalThis();
    // 'globalThis' is not a function.
    

    no-unsafe-optional-chaining

    The no-unsafe-optional-chaining rule has been updated to report unsafe usage of optional chaining in arguments of yield*.

    /* eslint no-unsafe-optional-chaining: "error" */
    function* gen() {
      yield* obj?.foo;
      // Unsafe usage of optional chaining. If it short-circuits with 'undefined' the evaluation will throw TypeError.
    }
    

    Features

    • 48d5cc4 feat: report references inside IIFEs in no-use-before-define (#21238) (Irfan fandi)
    • a39d9fb feat: add globalThis to no-obj-calls (#21382) (synthex-byte)
    • 66ac583 feat: check yield* expressions in no-unsafe-optional-chaining (#21399) (xbinaryx)

    Bug Fixes

    • 87bd2ce fix: avoid redeclared let when no-var and one-var fix together (#21389) (Daniel Pinto)

    Documentation

    • 4783a68 docs: Update README (GitHub Actions Bot)
    • 43f0ac9 docs: clarify parameter description in getText (#21287) (lumir)

    Chores

    • b59d889 chore: update github/codeql-action action to v4.38.3 (#21412) (renovate[bot])
    • 95e51a0 ci: re-enable @typescript-eslint/typescript-eslint in ecosystem tests (#21410) (Francesco Trotta)
    • 317fcb3 chore: update ecosystem plugins (#21409) (ESLint Bot)
    • b92decf perf: skip no-redeclare scan for single-declaration variables (#21365) (James Ross)
    • 47b7063 chore: update dependency @eslint/json to ^2.1.1 (#21398) (renovate[bot])
    • e5aea41 chore: update ecosystem plugins (#21390) (ESLint Bot)
    Original source
  • Oct 13, 2026
    • Date parsed from source:
      Oct 13, 2026
    • First seen by Releasebot:
      Oct 14, 2026
    Oxc logo

    Oxc

    oxlint v1.88.0

    Oxc releases breaking changes to AST comment storage alongside LSP configuration error reporting, new lint rule options, and fixes for sorting, autofixes, and symlinked formatter configs. The update also improves performance across linting and minification.

    πŸ’₯ BREAKING CHANGES

    • 7730e14 ast: [BREAKING] Refactor comment attachment storage (#27512) (camc314)
    • c904b61 ast: [BREAKING] Add comment attachment storage (#27393) (camc314)

    πŸš€ Features

    • bde9f69 oxlint/lsp: Show config errors to LSP client (#25486) (Sysix)
    • 3c361a7 linter/unicorn/prefer-query-selector: Add allowWithVariables option (#27346) (Mikhail Baev)

    πŸ› Bug Fixes

    • 82ecc43 linter/sort-keys: Compare natural order like ESLint (#27579) (Dunqing)
    • 598ac03 linter/unicorn/prefer-bigint-literals: Unwrap redundant constructor call; don't auto-fix for lost precision (#25690) (Jacob Bandes-Storch)
    • 2512213 linter: Prevent conflicting type import fixes (#27409) (camc314)
    • 2349a31 oxfmt: Follow symlinked configs in discovery (#27389) (leaysgur)
    • 6e573f9 oxlint,oxfmt: Set stderr blocking (#27363) (leaysgur)

    ⚑ Performance

    • 91b588c linter/oxc/bad-array-method-on-arguments: Check arguments references once (#26930) (camc314)
    • c5f47ed linter/plugins: Inline firstCommentAtOrAfter into call sites (#27539) (overlookmotel)
    • c5f9235 linter/plugins: Use shift over multiply for powers of 2 (#27536) (overlookmotel)
    • 8c57c5e linter: Share one source per file across type-aware diagnostics (#27462) (Max Schwenk)
    • 19c227d minifier: Use ident when checking specific id names (#27208) (Armano)

    πŸ“š Documentation

    • 98cc2b4 linter/plugins: Improve documentation for firstCommentAtOrAfter (#27538) (overlookmotel)
    • 3bb54f6 linter: Update stale comment (#27519) (overlookmotel)
    • 848a4e7 linter: Update fix metadata for tsgolint rules that already provide fixes (#27408) (Mikhail Baev)
    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Eslint and hundreds of other software products.

    Create account
  • Oct 13, 2026
    • Date parsed from source:
      Oct 13, 2026
    • First seen by Releasebot:
      Oct 14, 2026
    Oxc logo

    Oxc

    oxfmt v0.73.0

    Oxc releases oxfmt updates with Astro formatting and language support, expanded configuration and Prettier migration options, plus fixes for CSS-in-JS, formatting consistency, and config discovery.

    πŸ’₯ BREAKING CHANGES

    • 1ef2888 oxfmt: [BREAKING] Improve --migrate prettier (#27444) (leaysgur)
    • c2e6d5f formatter_toml: [BREAKING] Add oxc_formatter_toml crate wrapping oxc-toml (#27365) (leaysgur)

    πŸš€ Features

    • ce4e8dc oxfmt: Support overrides[].parser -> associations[].language migration (#27475) (leaysgur)
    • a495e82 oxfmt: Support associations config to specify language over filepath (#27437) (leaysgur)
    • 77f8156 oxfmt/lsp: Show root config errors to LSP client (#26014) (Sysix)
    • c1adce3 oxfmt/lsp: Support astro language (#27388) (leaysgur)
    • 4f024a1 oxfmt: Support astro plugin in --migrate prettier (#27387) (leaysgur)
    • 5db28fa oxfmt: Support Astro via [email protected] (#27386) (leaysgur)

    πŸ› Bug Fixes

    • 76ec31b formatter_css: Support css-in-js placeholders in property names and conditions (#27640) (leaysgur)
    • 99bb268 formatter_css: Keep css-in-js placeholder as media type (#27639) (leaysgur)
    • 372849e formatter: Fix crash on css-in-js comment containing interpolation (#27638) (leaysgur)
    • da692b8 formatter: Wrap export default class|function consistently (#27628) (leaysgur)
    • 21dee96 formatter: Keep parens around TSInstantiationExpression before ! and export (#27626) (leaysgur)
    • b6eb914 oxfmt: Normalize symlink targets in CLI snapshots (#27498) (camc314)
    • 5dae56f oxfmt/lsp: Return error on config resolving error (#26003) (Sysix)
    • 676cc60 formatter/jsdoc: Preserve paragraphs by checking @description tag width (#27439) (leaysgur)
    • 2349a31 oxfmt: Follow symlinked configs in discovery (#27389) (leaysgur)
    • db360de oxfmt: Load svelte plugin for svelte-in-mdx-in-md (#27369) (leaysgur)
    • 6e573f9 oxlint,oxfmt: Set stderr blocking (#27363) (leaysgur)
    • d730fdd formatter_core: Leave blank frontmatter without dispatcher (#27359) (leaysgur)

    πŸ“š Documentation

    • 4a28c91 formatter_css: Clarify missed-semicolon-accepted divergence (#27433) (leaysgur)
    • 408d87f oxfmt: Simplify oxfmtrc docs (#27432) (leaysgur)
    • 902e188 oxfmt: Update how embeddedLanguageFormatting option works (#27362) (leaysgur)
    • 37b3c48 formatter_markdown: Fix DIVERGENCES.md examples and slug to match behavior (#27358) (leaysgur)
    Original source
  • Oct 13, 2026
    • Date parsed from source:
      Oct 13, 2026
    • First seen by Releasebot:
      Oct 14, 2026
    Oxc logo

    Oxc

    oxc crates_v0.154.0

    Oxc releases breaking AST and parser changes, adds delete-expression folding to its minifier, and improves code generation performance. The update also fixes issues across parsing, semantics, transformations, and output formatting.

    πŸ’₯ BREAKING CHANGES

    • 7730e14 ast: [BREAKING] Refactor comment attachment storage (#27512) (camc314)
    • c904b61 ast: [BREAKING] Add comment attachment storage (#27393) (camc314)
    • b5e8eff parser: [BREAKING] Assign node IDs during parsing (#27411) (camc314)

    πŸš€ Features

    • 3d00bbd minifier: Add folding of delete expression (#27522) (Armano)

    πŸ› Bug Fixes

    • 760b60b codegen, packages/codegen: Remove extraneous space before RestElement in ArrayPattern (#27613) (overlookmotel)
    • 0353d37 packages/codegen: Support printing V8IntrinsicExpressions (#27597) (overlookmotel)
    • 1e4c6ee minifier: Preserve parameter writes through mapped arguments (#27494) (Dunqing)
    • f8e9a50 semantic: Stop arguments resolution at ordinary functions (#26929) (camc314)
    • 4b75662 transformer_plugins: Preserve optional chains through non-null assertions (#27526) (Dunqing)
    • 72bf06f crates/oxc_semantic: Decline to evaluate unary ops on strings in enum initializers (#27447) (Brooooooklyn)
    • c57d9c7 parser: Apply no-side-effects annotations after export (#27504) (camc314)
    • 02577b1 minifier: Preserve delete semantic when folding non-finite numbers (#27466) (Armano)
    • f14ead5 minifier: Eliminate unused IIFE calls with constant arguments (#27434) (Dunqing)
    • aec14bc transformer: Avoid synthetic private fields for static blocks (#27300) (Kuroda Kayn)
    • 558a890 semantic: Mark delete of optional members as MemberWriteTarget (#27430) (Bartok)
    • f50257e codegen: Avoid extra indent before empty do-while bodies (#27407) (camc314)
    • 82bfc5f codegen: Fix printing negative BigIntLiteral after - (#27378) (overlookmotel)
    • 5461c1a packages/codegen: Fix printing negative BigIntLiteral after - (#27377) (overlookmotel)
    • be bef88 packages/codegen: Fix debug assert fail printing TSJSDocNonNullableType (#27373) (overlookmotel)
    • 7e6a050 semantic: Visit TSMethodSignature computed method keys in enclosing scope (#27357) (camc314)

    ⚑ Performance

    • e1c97f8 packages/codegen: Remove all printSpaceBeforeIdentifier calls (#27620) (overlookmotel)
    • 70ecfdd packages/codegen: Skip redundant printSpaceBeforeIdentifier call (#27619) (overlookmotel)
    • 3c289f3 packages/codegen: Remove branches from loops printing arrays (#27614) (overlookmotel)
    • 27f5b45 packages/codegen: Remove branch printing RestElement in ArrayPattern (#27608) (overlookmotel)
    • adc90ed packages/codegen: Reduce branches in printArguments (#27607) (overlookmotel)
    • 262dd21 packages/codegen: Remove unnecessary printSpaceBeforeIdentifier calls (#27606) (overlookmotel)
    • 4bb9722 packages/codegen: Print SpreadElement arguments via printExpression (#27599) (overlookmotel)
    • 0c98dc5 packages/codegen: Reduce megamorphic type reads in printParams (#27595) (overlookmotel)
    • e3780b5 packages/codegen: Reduce writes in printForOfStatement (#27594) (overlookmotel)
    • 8d0ba20 packages/codegen: Reduce megamorphic type reads in printForOfStatement (#27593) (overlookmotel)
    • b29f35e packages/codegen: Reduce megamorphic type reads in printDirectivesAndStatements (#27592) (overlookmotel)
    • 256259d packages/codegen: Reduce megamorphic type reads in printConditionalExpression (#27591) (overlookmotel)
    • a9bd942 packages/codegen: Reduce megamorphic type reads in printObjectProperty (#27590) (overlookmotel)
    • 0a386ff packages/codegen: Ensure shorthand var is always a boolean (#27589) (overlookmotel)
    • 8d4c633 packages/codegen: Reduce branches in printObjectProperty (#27588) (overlookmotel)
    • b4c8c04 packages/codegen: Reduce megamorphic type reads in printMemberExpression (#27587) (overlookmotel)
    • ff5eae8 packages/codegen: Reduce megamorphic type reads (#27586) (overlookmotel)
    • 5487247 ast: Generate derive for CloneIn on Comment (#27542) (overlookmotel)
    • cd1c192 minifier: Optimize unused expression removal in minimize_if (#27545) (Armano)
    • 14a92ba transformer: Skip expression exit pipeline for unaffected nodes (#27492) (camc314)
    • cd9a62f transformer: Skip static block dispatch for ordinary statements (#27491) (camc314)
    • 135dd04 transformer: Skip ES2022 exits for non-class expressions (#27489) (camc314)
    • 961f318 packages/codegen: Reduce megamorphic type reads in binCheckAndPrepare (#27460) (overlookmotel)
    • 3d2f93f packages/codegen: Reduce megamorphic property accesses for BinaryExpressions (#27459) (overlookmotel)
    • 675ec5e packages/codegen: Reduce megamorphic property accesses in printBinaryish (#27458) (overlookmotel)
    • b0dbfff packages/codegen: Reduce writes and branches printing functions (#27455) (overlookmotel)
    • 5f3865c packages/codegen: Reduce writes for optional MemberExpressions (#27454) (overlookmotel)
    • 8c57c5e linter: Share one source per file across type-aware diagnostics (#27462) (Max Schwenk)
    • 19c227d minifier: Use ident when checking specific id names (#27208) (Armano)
    • 180d4e7 minifier: Avoid unecessary import/export merging for cjs/scripts (#27291) (Armano)

    πŸ“š Documentation

    • c993555 minifier: Align guides with current implementation (#27584) (Cameron)
    • 59472c5 packages/codegen: Add @params to JSDoc comments which had none (#27601) (overlookmotel)
    • 5ee0fc9 packages/codegen: Complete @param lists in partly documented JSDoc comments (#27600) (overlookmotel)
    • 12dfa25 packages/codegen: Correct doc comment for printBinaryish (#27456) (overlookmotel)
    • add0443 mangler: Clarify node ID renumbering in build (#27448) (camc314)
    Original source
  • Oct 12, 2026
    • Date parsed from source:
      Oct 12, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    typescript-eslint logo

    typescript-eslint

    v8.71.2

    typescript-eslint ships fixes for eslint-plugin and type-utils, reducing false positives in no-unused-vars, improving no-unnecessary-type-parameters, and making prefer-optional-chain safer.

    8.71.2 (2026-10-12)

    🩹 Fixes

    • eslint-plugin: [no-unused-vars] avoid false-positives when not using our parser (#12989)
    • eslint-plugin: [no-unnecessary-type-parameters] count instantiated mapped type templates (#12974)
    • eslint-plugin: [no-unused-vars] ignore type-only refs for after-used (#12977)
    • eslint-plugin: [no-unnecessary-type-parameters] parenthesize constraint in optional tuple elements (#12995)
    • eslint-plugin: [prefer-optional-chain] safe fix when the chain ends with a strict null comparison (#12805)
    • type-utils: match linked packages and packages with missing version in TypeOrValueSpecifier (#12948)

    ❀️ Thank You

    Abraham Guo

    Brad Zacher @bradzacher

    Evyatar Daud @StyleShit

    Josh Goldberg

    Vinccool96

    Younsang Na @nayounsang

    See GitHub Releases for more information.

    You can read about our versioning strategy and releases on our website.

    Original source
  • Oct 5, 2026
    • Date parsed from source:
      Oct 5, 2026
    • First seen by Releasebot:
      Oct 5, 2026
    Oxc logo

    Oxc

    oxlint v1.87.0

    Oxc adds new lint rule suggestions and ships a set of bug fixes across React, JSX a11y, Unicorn, parser, and ESLint rules, improving autofix behavior, validation, and unused variable handling.

    Features

    42dcfd2 linter/react/no-unescaped-entities: Implement suggestion (#27292) (Mikhail Baev)
    cd4510d linter/unicorn/no-useless-switch-case: Implement suggestion (#27245) (Mikhail Baev)
    1a7c902 linter/react/jsx-no-target-blank: Implement suggestion (#27181) (Mikhail Baev)

    Bug Fixes

    176b4b9 linter/jsx-a11y/label-has-associated-control: Validate label attribute values (#27302) (sama Pyb)
    7d381c3 linter/jsx-a11y/mouse-events-have-key-events: Handle nullish event handlers (#27306) (sama Pyb)
    4e09837 linter/jsx-a11y/lang: Validate lang expression strings (#27304) (sama Pyb)
    7d28a66 linter/unicorn/numeric-separators-style: Report misgrouped BigInt literals (#27207) (breken)
    e928322 linter/unicorn/no-zero-fractions: Parenthesize separator and large integers in fixer (#27206) (breken)
    3d61a59 parser: Validate TypeScript type member separators (#27222) (camc314)
    f08236b linter/eslint/prefer-exponentiation-operator: Preserve autofix precedence (#27150) (camc314)
    7d60ae3 linter/valid-title: Continue checks after allowed words (#27146) (Cameron)
    ad5dd5d linter/eslint/no-unused-vars: Respect disabled argument checks for used ignore patterns (#26925) (camc314)

    Original source
  • Oct 5, 2026
    • Date parsed from source:
      Oct 5, 2026
    • First seen by Releasebot:
      Oct 5, 2026
    Oxc logo

    Oxc

    oxfmt v0.72.0

    Oxc releases a formatter update with a breaking markdown parser change, new embedded CSS block parsing, and a broad set of markdown, CSS, JSON, and core formatting fixes plus performance improvements and documentation updates.

    πŸ’₯ BREAKING CHANGES

    e2c68b1 oxfmt: [BREAKING] Format parser:markdown files by oxc_formatter_markdown (#27256) (leaysgur)

    πŸš€ Features

    b538e3c formatter_css: Parse embedded CSS as a block's contents (#27284) (leaysgur)

    πŸ› Bug Fixes

    71e400b formatter_markdown: Fixed remaining issues found by fuzz (#27334) (leaysgur)

    7d0e54d formatter_markdown: Preserve line breaks around Chinese/Japanese characters in all proseWrap (#27331) (leaysgur)

    e9ae2d8 formatter_css: Fix layouts found in mdn-content repo (css-in-md) (#27326) (leaysgur)

    df85b4c oxfmt: Keep blank lines after a line break in Prettier Doc to IR (#27325) (leaysgur)

    7f65b75 formatter: Format assignment target property as assignment-like (#27289) (leaysgur)

    6c08f2a formatter_css: Apply the url() import exception to a lone comma group (#27288) (leaysgur)

    1967302 formatter_css: Hug a spaced ident ( only at the at-rule prelude head (#27283) (leaysgur)

    2445064 formatter_markdown: Keep a preserved line break before a delimiter row that opens no table (#27278) (leaysgur)

    dd72fbf formatter_markdown: Keep container columns as spaces under useTabs (#27277) (leaysgur)

    1686018 oxfmt: Make one state conditionalGroup fit up to first hardline (#27275) (leaysgur)

    fd4ddce formatter_json: Flatten block comment only array|object (#27274) (leaysgur)

    267557c formatter,oxfmt: Embed only original JSDoc plugin supported languages (#27241) (leaysgur)

    2606c60 oxfmt: Do not re-include a file below an excluded directory with a negated pattern (#27237) (Nicolas Le Cam)

    c2de02b formatter: Decide embedded template layout from AST, not source shape (#27218) (leaysgur)

    c9e1224 formatter: Handle quoteProps: consistent for patterns and computed keys (#27216) (leaysgur)

    36e14df formatter: Keep comments between callee and its opener on the callee side (#27172) (leaysgur)

    6da7657 oxfmt: Render diagnostics with source in Stdin mode (#27130) (leaysgur)

    e9b2ec5 oxfmt/lsp: Reload .prettierignore on watched file change (#27129) (leaysgur)

    30eb463 oxfmt: Check global ignores before resolving nested config in Stdin mode (#27128) (leaysgur)

    ⚑ Performance

    72f42a3 formatter_markdown: Pre-allocate the IR buffer (#27333) (leaysgur)

    cea47e3 formatter_core: Avoid exponential will_break check on nested interned (#27211) (leaysgur)

    0aba566 oxfmt: Do not resolve root js config from nested context (#27147) (leaysgur)

    πŸ“š Documentation

    51506c6 formatter_css: Record divergences found in mdn-content (css-in-md) (#27327) (leaysgur)

    656b81c formatter_markdown: Record unclosed fences closing at a directive's closer (#27279) (leaysgur)

    66545bf formatter_markdown: Record setext heading wrap divergence (#27221) (leaysgur)

    af4b269 oxfmt: Document why format() API does not take cwd (#27131) (leaysgur)

    Original source
  • Oct 5, 2026
    • Date parsed from source:
      Oct 5, 2026
    • First seen by Releasebot:
      Oct 5, 2026
    Oxc logo

    Oxc

    oxc crates_v0.153.0

    Oxc releases parser, minifier, and transformer improvements with new syntax checks, smarter import and statement merging, explicit resource management lowering, isolated declarations updates, and several performance gains across minification and code generation.

    Features

    61003c7 minifier: Fold undefined argument in non delegating yield (#27324) (Armano)
    07833c0 ast: Tie debug_name return lifetime to the underlying AST node (#27295) (sadan)
    adb1139 minifier: Merge import statements against the same module (#25534) (ηΏ )
    cc82598 minifier: Merge import and export statements against the same module (#25533) (ηΏ )
    1c352ce minifier: Minimize bitwise binary expressions (#27107) (Armano)
    d1a0bcc minifier: Merge statements after terminating if block branches (#26667) (Armano)
    7a95376 minifier: Merge adjucent if stmt with the same content (#26445) (Armano)

    Bug Fixes

    6a7d48b parser: Report abstract private field error on modifier (#27314) (camc314)
    2ff6fb5 parser: Include generator marker in overload diagnostic span (#27313) (camc314)
    4359a66 parser: Reject TypeScript class modifiers in JavaScript (#27312) (camc314)
    565d75d minifier: Correct indopedency when processing nested sequences (#27273) (Armano)
    d0b9372 parser: Remove type-dependent tuple rest diagnostics (#27234) (camc314)
    3d61a59 parser: Validate TypeScript type member separators (#27222) (camc314)
    b2793fa parser: Reject module syntax in script (#27220) (leaysgur)
    5914a24 parser: Report TS1243 for abstract async methods (#27192) (camc314)
    c6c6e5e parser: Report TS1242 for interfaces with abstract modifier (#27191) (camc314)
    dd0bbb9 parser: Avoid duplicate index signature modifier diagnostic (#27190) (camc314)
    8f61129 regex: Decode escaped capturing group names (#27156) (camc314)
    da1fed2 minifier: Fold conditional expressions with long sequences (#27083) (Armano)
    0c601f4 isolated-declarations: Allow adding undefined to keyof parameter types (#27173) (Dunqing)
    4896287 isolated-declarations: Support readonly parameter types (#27009) (sama Pyb)
    72d62a1 transformer/explicit-resource-management: Transform classic for loop using declarations (#27148) (camc314)
    4cf9ae2 minifier: Preserve sibling declarations in arguments copy rewrite (#27140) (camc314)
    24b7015 transformer/explicit-resource-management: Lower using in catch and finally (#27142) (camc314)

    Performance

    99e3c15 minifier: Small performance improvement when merging imports (#27238) (Armano)
    d37d1db codegen: Pre-allocate sourcemap builder vectors (#27230) (codspeed)
    466ef10 minifier: Update expressions in place in merge_import_export (#27226) (Armano)
    028ffb8 minifier: Update nodes in place in wrap_to_avoid_ambiguous_else (#27194) (Armano)
    6fcd135 minifier: Avoid conversion from ident to str when for substitute symbols (#27209) (Armano)
    0b9799d minifier: Reduce usage of minimize_conditional (#26028) (Armano)
    3ca3ded minifier: Short-circuit IfStatement termination on alternate (#25198) (Armano)

    Documentation

    335ce79 agents: Scope verification for local and stacked work (#27299) (Dunqing)

    Original source
  • Oct 5, 2026
    • Date parsed from source:
      Oct 5, 2026
    • First seen by Releasebot:
      Oct 5, 2026
    typescript-eslint logo

    typescript-eslint

    v8.71.1

    typescript-eslint releases 8.71.1 with fixes across eslint-plugin, project-service, and type-utils, improving rule behavior, autofix safety, type handling, and file cleanup performance.

    8.71.1 (2026-10-05)

    🩹 Fixes

    • eslint-plugin: [no-misused-promises] skip argument checks for calls without arguments (#12923)
    • eslint-plugin: [no-unused-vars] report usedOnlyAsType for partially exported merged declarations (#12892)
    • eslint-plugin: [require-array-sort-compare] use array argument type constraint (#12919)
    • eslint-plugin: [no-unsafe-enum-assignment] skip identical types and bound deep type walks (#12957)
    • eslint-plugin: [no-confusing-void-expression] don't autofix when declared return type is unknown (#12930)
    • eslint-plugin: [prefer-optional-chain] check the constrained type (#12953)
    • eslint-plugin: [no-unnecessary-type-parameters] count instantiated mapped type constraints (#12941)
    • project-service: throttle cleanup when opening files (#12934)
    • type-utils: match re-exports and global declarations in TypeOrValueSpecifier (#12943)

    ❀️ Thank You

    • Diptajoy Mistry @diptomistry
    • Evyatar Daud @StyleShit
    • Josh Goldberg
    • Josh Goldberg ✨
    • Medhansh Poojari

    See GitHub Releases for more information.

    You can read about our versioning strategy and releases on our website.

    Original source
  • Oct 2, 2026
    • Date parsed from source:
      Oct 2, 2026
    • First seen by Releasebot:
      Oct 5, 2026
    Eslint logo

    Eslint

    ESLint v10.12.0 released

    Eslint ships v10.12.0 with new SourceCode support for tokens and comments, plus bug fixes and rule improvements across consistent-return, max-lines-per-function, new-cap, no-eval, no-invalid-this, no-loss-of-precision, prefer-arrow-callback, and prefer-exponentiation-operator.

    We just pushed ESLint v10.12.0, which is a minor release upgrade of ESLint. This release adds some new features and fixes several bugs found in the previous release.

    Highlights

    Support for tokens and comments in SourceCode

    Rule authors often work with ESLint’s SourceCode object, which represents the JavaScript source code being linted. Its getText(), getLoc(), and getRange() methods have always accepted a node, token, or comment, but the documentation didn’t describe every argument type, and the type definitions rejected some valid calls, such as passing a comment.

    This release updates the documentation and type definitions to match the actual behavior. This also aligns these methods with implementations of the core SourceCodeBase interface used in language plugins. Code that calls these methods is unaffected, but TypeScript code that implements or mocks SourceCode may need its getText(), getLoc(), and getRange() signatures updated to accept tokens and comments.

    Rule fixes

    The following rules have been updated to work correctly in certain edge cases, including autofix behavior and the handling of supplementary Unicode characters in code:

    • consistent-return
    • max-lines-per-function
    • new-cap
    • no-eval
    • no-invalid-this
    • no-loss-of-precision
    • prefer-arrow-callback
    • prefer-exponentiation-operator

    Features

    • 4618052 feat: handle astral letters in new-cap (#21357) (sary)
    • 4ec5168 feat: allow SourceCode#getText() to accept tokens and comments (#21340) (electrohyun)

    Bug Fixes

    • bc51eee fix: prefer-arrow-callback false positive in conditional test (#21373) (Daniel Pinto)
    • bbff86c fix: skip lines with multiple comments in max-lines-per-function (#21332) (xbinaryx)
    • efc4d6b fix: astral letters in consistent-return, no-eval, no-invalid-this (#21360) (lumir)
    • 93de066 fix: prefer-exponentiation-operator autofix for async function base (#21322) (Vladimir Babin)
    • 02e34ff fix: add missing space after else in curly autofix (#21355) (Pixel)
    • b14b8bc fix: correct id-length message for long private names (#21348) (Pixel)
    • 69aac01 fix: support TSFunctionType in getFunctionHeadLoc (#21335) (xbinaryx)
    • 686630e fix: no-loss-of-precision false positive with 0.e5 (#21337) (sethamus)

    Documentation

    • 67eb586 docs: Update README (GitHub Actions Bot)
    • 5370d7e docs: clarify one-var separateRequires matches any require() call (#21192) (sethamus)
    • 8816c1d docs: Update README (GitHub Actions Bot)
    • 3d2e7ce docs: fix typo in no-unused-expressions documentation (#21346) (bytedoe)

    Chores

    • 152067f chore: update ecosystem plugins (#21362) (ESLint Bot)
    • b56d58e chore: update github/codeql-action action to v4.38.2 (#21376) (renovate[bot])
    • bfaea12 perf: cache normalized config globals per languageOptions (#21364) (James Ross)
    • 322209e ci: avoid Nx cache in ecosystem tests and disable failing test (#21369) (Francesco Trotta)
    • d166567 chore: update dependency prettier to v3.9.9 (#21371) (renovate[bot])
    • 29585ce chore: update dependency eslint-plugin-expect-type to ^0.7.0 (#21359) (renovate[bot])
    • 39d79ba chore: update github/codeql-action action to v4.38.1 (#21354) (renovate[bot])
    • 182a6e9 chore: update dependency prettier to v3.9.8 (#21352) (renovate[bot])
    • f995127 chore: remove CLAUDE.md in favor of AGENTS.md (#21339) (Jarren)
    • b95fb6c chore: update dependency prettier to v3.9.7 (#21347) (renovate[bot])
    • 3782dd4 chore: update ecosystem plugins (#21342) (ESLint Bot)
    Original source