ESLint Blog

ESLint v10.15.0 released

Read the original on eslint.org ↗

Highlights

Faster config resolution

This release includes an updated version of @eslint/config-array with a faster implementation of config resolution. This is the step in which ESLint decides, for every file and directory it visits, whether the path is ignored and which objects in the config apply to it.

In our benchmark, which resolves the configs for 1,500 files against a typical flat config, this step is more than three times faster with POSIX paths and about 15% faster with Windows paths. The improvements, made primarily with AI assistance, include:

  • A config object’s files and ignores patterns are analyzed only once instead of once per file.
  • Paths that cannot match a pattern’s literal parts, such as the src/ or .js in src/**/*.js, are rejected before the full glob match runs.
  • For POSIX paths, a file’s location relative to the base path is now computed more efficiently when the path is already normalized.

Config resolution is only one part of an ESLint run, so the effect on total lint time depends on your project. No changes are needed on your side.

Rule improvements

The following rules have been updated to address edge cases or to make reported problem locations more intuitive:

Features

Bug Fixes

Documentation

  • 16eb1d9 docs: remove Contributor Pool reference (#21539) (Nicholas C. Zakas)
  • e368730 docs: discourage non-serializable values in rule options (#21487) (Vitalii Maslianok)
  • 0146008 docs: revamp code path analysis docs (#21423) (xbinaryx)
  • aeb2267 docs: revise AI acknowledgment options in templates (#21489) (lumir)
  • e47a477 docs: Update README (GitHub Actions Bot)
  • 11c66ba docs: fix typo in custom rules documentation (#21472) (Pixel)

Chores

  • 480afad chore: update github/codeql-action action to v4.39.3 (#21533) (renovate[bot])
  • fc3a99b chore: update ecosystem plugins (#21511) (ESLint Bot)
  • 8fe3ab9 chore: replace got with Node.js native fetch (#21505) (lumir)
  • bdd4b1d ci: bump pnpm/action-setup from 6.1.0 to 6.1.1 (#21499) (dependabot[bot])
  • 36db635 ci: bump github/codeql-action from 4.39.1 to 4.39.2 (#21500) (dependabot[bot])
  • 19211b3 chore: replace fs-teardown with Node.js native APIs (#21488) (lumir)
  • bbede5e chore: enforce require-meta-docs-recommended (#21496) (lumir)
  • 896b8ad chore: update ecosystem plugins (#21478) (ESLint Bot)
  • 35801a2 ci: re-enable eslint-plugin-unicorn ecosystem test (#21470) (Francesco Trotta)