Skip to main content

Version Support Policy

Understand ESLint’s versioning strategy, support timeline, and what to expect from each release.
ESLint follows Semantic Versioning with scheduled releases every two weeks.

Current Support Status

Active Versions

VersionStatusRelease DateEnd of SupportNode.js Support
v10.x✅ CurrentFeb 6, 2026TBD^20.19.0 || ^22.13.0 || >=24
v9.x🔄 LimitedOct 2025Aug 2026 (estimated)^18.18.0 || ^20.9.0 || >=21.1.0
v8.x❌ End of LifeOct 2023Apr 2025^12.22.0 || ^14.17.0 || >=16.0.0
ESLint v8 reached end of life in April 2025. Projects still on v8 should upgrade to v10 as soon as possible.

Support Tiers

Current Version (Full Support)

v10.x receives full support with active development.
Includes:
  • 🐛 Bug fixes (all severity levels)
  • 🔒 Security patches
  • ✨ New features
  • 📝 Documentation updates
  • 🔧 Configuration improvements
  • ⚡ Performance optimizations
Timeline: Ongoing until next major release

Previous Version (Limited Support)

v9.x receives limited support for 6 months after v10 release.
Includes:
  • 🐛 Critical bug fixes only
  • 🔒 Security issues
  • 🔌 Compatibility fixes
Excludes:
  • ❌ New features
  • ❌ Minor bug fixes
  • ❌ Performance improvements
  • ❌ Documentation updates
Timeline: Feb 2026 - Aug 2026 (approximately)

End of Life (No Support)

v8.x and older receive no support.
No updates for:
  • ❌ Bugs (any severity)
  • ❌ Security vulnerabilities
  • ❌ Compatibility issues
Recommendation: Upgrade to v10 immediately.

Commercial Support

Extended support is available through ESLint’s commercial partners:

Tidelift

Extended Support for v9.x
  • Security updates beyond 6 months
  • Legal guarantees and indemnification
  • Maintenance and licensing assurance
  • Access to the maintainers

HeroDevs

Never-Ending Support (NES)
  • Support for legacy versions (v8.x and earlier)
  • Security patches indefinitely
  • Critical bug fixes
  • Priority support channels
Commercial support is ideal for enterprise teams that cannot upgrade immediately due to large codebases or strict compliance requirements.

Release Schedule

Regular Releases

ESLint follows a predictable release schedule:
  • Frequency: Every 2 weeks (Friday or Saturday)
  • Type: Minor and patch releases
  • Tracking: Follow release issues on GitHub
Typical release timeline:
Week 1-2: Development

Friday/Saturday: Release

Monday: Post-release monitoring

Repeat

Major Releases

Major versions (e.g., v9 → v10) are released approximately once per year.
1

Alpha Release

Early testing release with breaking changes.
  • 3-4 months before stable
  • Breaking changes introduced
  • Community feedback encouraged
2

Beta Release

Feature-complete pre-release.
  • 2-3 months before stable
  • API stabilization
  • Plugin developers can test
3

Release Candidate (RC)

Final testing before stable.
  • 1-2 months before stable
  • No new features
  • Bug fixes only
4

Stable Release

Production-ready release.
  • Generally available
  • Full documentation
  • Migration guides published
Example timeline (v10):
  • v10.0.0-alpha.0: Nov 14, 2025
  • v10.0.0-beta.0: Dec 12, 2025
  • v10.0.0-rc.0: Jan 9, 2026
  • v10.0.0: Feb 6, 2026 ✅

Semantic Versioning

ESLint follows Semantic Versioning with specific interpretations for linting tools.

Patch Releases (10.0.x)

Intended to not break your lint build.
Includes:
  • 🐛 Bug fixes that report fewer errors
  • 📝 Documentation improvements
  • 🧪 Test improvements
  • ♻️ Non-user-facing refactoring
Example:
v10.0.0 → v10.0.1
  - Fixed false positive in no-unused-vars
  - Updated documentation

Minor Releases (10.x.0)

Might break your lint build.
Includes:
  • 🐛 Bug fixes that report more errors
  • ✨ New rules (disabled by default)
  • 🔧 New rule options (non-breaking defaults)
  • 🎯 New CLI capabilities
  • 📦 New public API methods
  • ⚠️ Rule deprecations
  • 📉 eslint:recommended updates (fewer errors only)
Example:
v10.0.0 → v10.1.0
  - Added new rule: no-new-array-constructor
  - Fixed bug in no-console (reports more cases)
  - Added --output-format option to CLI
Use ~10.0.0 in package.json to accept only patch updates:
{
  "devDependencies": {
    "eslint": "~10.0.0"
  }
}

Major Releases (x.0.0)

Likely to break your lint build.
Includes:
  • 💥 Breaking changes to public API
  • 🔄 eslint:recommended updates (may report more errors)
  • 🔧 Rule option changes with breaking defaults
  • 🗑️ Removal of deprecated features
  • 📋 Removal of formatters
  • 🏗️ Configuration schema changes
  • 🔌 Changes to plugin/parser APIs
Example:
v9.39.0 → v10.0.0 (Breaking Changes)
  - Removed eslintrc support
  - Removed deprecated context methods
  - Updated eslint:recommended (3 new rules)
  - Dropped Node.js < v20.19 support
  - Changed config file lookup behavior

Node.js Compatibility

Version Support Matrix

ESLint updates Node.js requirements with each major release.
ESLint VersionNode.js SupportNotes
v10.x^20.19.0 || ^22.13.0 || >=24Current
v9.x^18.18.0 || ^20.9.0 || >=21.1.0Limited support
v8.x^12.22.0 || ^14.17.0 || >=16.0.0End of life

Node.js Selection Criteria

When releasing a new major version, ESLint supports:
1

Most Recent Maintenance Release

Latest stable Node.js version at time of release.Example: Node.js v24.x for ESLint v10
2

Current LTS Release

The lowest minor version of Node.js LTS that includes features ESLint needs.Example: Node.js v22.13.0 for ESLint v10
3

Previous LTS Release

The previous LTS version for compatibility.Example: Node.js v20.19.0 for ESLint v10
Important: Your editor’s Node.js version must also be compatible. Check your editor’s ESLint integration settings.

Deprecation Policy

Deprecation Timeline

1

Announcement

Feature marked as deprecated in documentation and changelog.
  • Runtime warnings added
  • Migration guide published
  • Alternative solutions documented
2

Grace Period

Feature continues to work for at least one major version.
  • Minimum 6 months of support
  • Deprecation warnings in console
  • Documentation updated
3

Removal

Feature removed in next major version.
  • Breaking change in changelog
  • Migration guide emphasized
  • Related documentation archived
Example: context.getFilename() deprecation:
v9.0.0: Deprecated (warnings added)
  ↓ 6+ months
v10.0.0: Removed (breaking change)

Upgrade Recommendations

When to Upgrade

  • ⚠️ You’re on v8.x or earlier (end of life)
  • 🔒 A security vulnerability affects your version
  • 🐛 A critical bug blocks your workflow
  • 🆕 You need a new feature only available in latest
  • 📦 You’re on the previous major version (v9.x)
  • 🔄 Your Node.js version is becoming unsupported
  • 📈 Performance improvements are significant
  • 🧪 You want to test new features early
  • ✅ You’re on the current major version (v10.x)
  • 🔧 Minor/patch releases are available
  • 📚 Documentation improvements are published
  • 🎨 New non-critical rules are added

Upgrade Strategy

1

Test in Development

# Create feature branch
git checkout -b upgrade-eslint-v10

# Update ESLint
npm install eslint@latest --save-dev

# Test locally
npm run lint
2

Review Changes

Read the migration guide and CHANGELOG:
  • Identify breaking changes
  • Plan configuration updates
  • Update custom rules/plugins
3

Update Configuration

Make necessary config changes:
// Update deprecated APIs
// Remove obsolete flags
// Adjust rule configurations
4

Test in CI

# Test in CI before merging
- run: npm ci
- run: npm run lint
- run: npm test
5

Deploy Gradually

  • Merge to main branch
  • Monitor for issues
  • Notify team of changes

Security Policy

ESLint takes security seriously and addresses vulnerabilities quickly.

Reporting Vulnerabilities

Do not report security issues in public GitHub issues.
Report security vulnerabilities via:

Security Updates

Timeline:
  • Critical vulnerabilities: Patched within 48 hours
  • High severity: Patched within 1 week
  • Medium severity: Patched in next scheduled release
  • Low severity: Addressed in regular updates
Support scope:
  • ✅ Current version (v10.x): All security issues
  • 🔄 Previous version (v9.x): Critical and high severity only
  • ❌ Older versions (v8.x): No security updates (consider commercial support)

Dependencies Policy

ESM-Only Dependencies

ESLint (CommonJS) has restrictions on ESM-only dependencies.
Allowed:
  • ESM packages controlled by ESLint team with no external dependencies
  • External ESM packages used only in async contexts (via dynamic import())
Not Allowed:
  • External ESM packages used synchronously (no require(esm) due to potential top-level await)
Rationale: Prevents breaking ESLint if a dependency adds top-level await.

Release Tracking

Releases Page

Official release announcements and changelogs

Release Issues

Track upcoming releases and their schedules

CHANGELOG

Complete version history with all changes

Blog

Release announcements and migration guides

Frequently Asked Questions

ESLint v9 receives limited support for 6 months after v10 release:
  • Full support ended: February 6, 2026 (v10 release)
  • Limited support ends: Approximately August 2026
  • Limited support includes: Critical bugs, security issues, compatibility fixes only
After August 2026, upgrade to v10 or consider commercial support.
No, ESLint v8 reached end of life in April 2025:
  • ❌ No bug fixes
  • ❌ No security patches
  • ❌ No compatibility updates
Options:
  1. Upgrade to v10 (recommended)
  2. Commercial support via HeroDevs NES
Most plugins are compatible, but check:
  • Plugin’s changelog for v10 support
  • peerDependencies in plugin’s package.json
  • GitHub issues for compatibility reports
Popular plugins (React, TypeScript, etc.) are already v10-compatible.
Report it on GitHub:
  1. Search existing issues
  2. If not found, create new issue
  3. Include:
    • ESLint version
    • Node.js version
    • Config file
    • Minimal reproduction
Best practice:
  • Patch releases: Update immediately (safe)
  • Minor releases: Update within 1-2 weeks (test first)
  • Major releases: Plan upgrade within 1-2 months
Use automated tools like Renovate or Dependabot to track updates.

Stay Informed

Follow these channels to stay updated: