Skip to content

Comments

feat: upgrade to ESLint 10#137

Merged
codfish merged 4 commits intomainfrom
feat/eslint-10
Feb 15, 2026
Merged

feat: upgrade to ESLint 10#137
codfish merged 4 commits intomainfrom
feat/eslint-10

Conversation

@codfish
Copy link
Owner

@codfish codfish commented Feb 8, 2026

BREAKING CHANGE: ESLint 10 support with updated minimum requirements

This is a major version update that upgrades the package from ESLint 9 to ESLint 10.

Breaking Changes

  • ESLint 10 Required: Minimum ESLint version is now 10.0.0 (was >= 9)
  • Node.js v20.19.0+: Minimum Node.js version increased from v20.0.0 to v20.19.0
  • Peer Dependency: eslint peer dependency updated from >= 9 to >= 10
  • New Default Rules: Three new rules from eslint:recommended may report new errors:
    • no-unassigned-vars - Disallow variables that are assigned but never used
    • no-useless-assignment - Disallow assignments that dont change the value
    • preserve-caught-error - Enforce that caught errors are not reassigned
  • JSX Tracking: ESLint 10 properly tracks JSX references, which may surface previously hidden unused import warnings in React files

Updated Dependencies

  • eslint: ^10.0.0 (peer, was ^9.35.0)
  • @eslint/js: ^10.0.0 (was ^9.35.0)
  • typescript-eslint: ^8.54.0 (was ^8.44.0)
  • @vitest/eslint-plugin: ^1.6.6 (was ^1.3.10)
  • eslint-plugin-jest: ^29.12.2 (was ^29.0.1)
  • eslint-plugin-testing-library: ^7.15.4 (was ^7.1.0)
  • eslint-plugin-yml: ^3.1.2 (was ^3.0.0)
  • eslint-plugin-prettier: ^5.5.5 (was ^5.5.4)

Migration Guide

Users upgrading to this version need to:

  1. Update to Node.js v20.19.0+ (or v22.13.0+, or v24+)
  2. Update to ESLint 10 & codfish eslint latest: npm install --save-dev @codfish/eslint-config@latest eslint@10
  3. Install with --legacy-peer-deps until plugin ecosystem updates
  4. Review and fix any new linting errors from the new ESLint 10 rules
  5. Check React files for newly reported unused imports due to improved JSX tracking

See README.md for complete migration instructions.

Technical Details

  • Configuration code unchanged (already using flat config format)
  • All 55 tests passing with ESLint 10
  • Self-linting successful
  • CI/CD workflows updated to use --legacy-peer-deps and explicit Node.js versions
  • Documentation updated with comprehensive migration guide

Summary by CodeRabbit

Release Notes

  • Upgrades

    • ESLint upgraded to version 10
    • Minimum Node.js version requirement updated to 20.19.0
    • Dependencies updated for compatibility
  • Documentation

    • Added ESLint 10 migration guide detailing breaking changes and upgrade steps
    • Updated installation and feature documentation for ESLint 10 compatibility

@coderabbitai
Copy link

coderabbitai bot commented Feb 8, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

The project is updated to support ESLint 10 across workflows, dependencies, and documentation. Changes include adding legacy peer-dependencies flags to npm installations, bumping ESLint to version 10, updating Node.js version requirements, and migrating documentation to reflect the new ESLint 10 specifications and requirements.

Changes

Cohort / File(s) Summary
GitHub Actions Workflows
.github/workflows/pr.yml, .github/workflows/release.yml, .github/workflows/validate.yml
Added install-options: --legacy-peer-deps to npm install steps for ESLint 10 peer-dependency compatibility. Node matrix versions pinned to specific patch releases (20.19.0, 22.13.0). Removed id-token permission from release job. Extended commitlint invocation with --verbose flag.
Dependency & Engine Configuration
package.json
ESLint upgraded to ^10.0.0 with peer dependency updated from >=9 to >=10. Node.js engine requirement bumped to >=20.19.0. Multiple dependency version updates across commitlint, HTML ESLint, Vitest plugin, Prettier, and TypeScript ESLint. Added @types/node to devDependencies. Expanded publishable files array to include rules, index.js, prettier.js, dapp.js, docker.js, utils.js, commitlint.js.
TypeScript Configuration
tsconfig.json
Ambient type declarations expanded from ["vitest/globals"] to ["vitest/globals", "node"] to enable Node.js types.
Documentation
README.md
Comprehensive update replacing all ESLint v9+ references with v10+ throughout header, table of contents, and feature bullets. Installation instructions updated to eslint@10. New "Upgrading to ESLint 10" section added detailing breaking changes, migration steps, Node.js version requirements, and new rules. Migration guidance sections updated to reflect ESLint 10 prerequisites.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 ESLint ten hops into our garden today,
Legacy peers need a workaround way,
Node versions pinned with precision so bright,
Our workflows aligned, our types in sight! ✨

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/eslint-10

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Feb 14, 2026

PR package published successfully!

Install:

npm install @codfish/eslint-config@0.0.0-PR-137--a08438e

View on npm: https://www.npmjs.com/package/@codfish/eslint-config/v/0.0.0-PR-137--a08438e

BREAKING CHANGE: ESLint 10 support with updated minimum requirements

This is a major version update that upgrades the package from ESLint 9 to ESLint 10.

## Breaking Changes

- **ESLint 10 Required**: Minimum ESLint version is now 10.0.0 (was >= 9)
- **Node.js v20.19.0+**: Minimum Node.js version increased from v20.0.0 to v20.19.0
- **Peer Dependency**: eslint peer dependency updated from `>= 9` to `>= 10`
- **New Default Rules**: Three new rules from eslint:recommended may report new errors:
  - no-unassigned-vars - Disallow variables that are assigned but never used
  - no-useless-assignment - Disallow assignments that dont change the value
  - preserve-caught-error - Enforce that caught errors are not reassigned
- **JSX Tracking**: ESLint 10 properly tracks JSX references, which may surface
  previously hidden unused import warnings in React files

## Updated Dependencies

- eslint: ^10.0.0 (peer, was ^9.35.0)
- @eslint/js: ^10.0.0 (was ^9.35.0)
- typescript-eslint: ^8.54.0 (was ^8.44.0)
- @vitest/eslint-plugin: ^1.6.6 (was ^1.3.10)
- eslint-plugin-jest: ^29.12.2 (was ^29.0.1)
- eslint-plugin-testing-library: ^7.15.4 (was ^7.1.0)
- eslint-plugin-yml: ^3.1.2 (was ^3.0.0)
- eslint-plugin-prettier: ^5.5.5 (was ^5.5.4)

## Migration Guide

Users upgrading to this version need to:
1. Update to Node.js v20.19.0+ (or v22.13.0+, or v24+)
2. Update to ESLint 10: npm install --save-dev eslint@10
3. Install with --legacy-peer-deps until plugin ecosystem updates
4. Review and fix any new linting errors from the new ESLint 10 rules
5. Check React files for newly reported unused imports due to improved JSX tracking

See README.md for complete migration instructions.

## Technical Details

- Configuration code unchanged (already using flat config format)
- All 55 tests passing with ESLint 10
- Self-linting successful
- CI/CD workflows updated to use --legacy-peer-deps and explicit Node.js versions
- Documentation updated with comprehensive migration guide
@codfish codfish marked this pull request as ready for review February 15, 2026 02:51
@codfish codfish merged commit 24d8cd5 into main Feb 15, 2026
1 of 6 checks passed
@codfish codfish deleted the feat/eslint-10 branch February 15, 2026 02:51
@github-actions
Copy link

🎉 This PR is included in version 13.0.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant