feat(deps): upgrade eslint to v10 across the frontend toolchain - #697
Conversation
Unblocks the @eslint/js 9 -> 10 bump (#691), which alone caused an ERESOLVE failure because @eslint/js@10 peers on eslint@^10 while the project pinned eslint@^9. Coordinated bumps: - eslint ^9.32.0 -> ^10.8.1 - @eslint/js ^9.32.0 -> ^10.0.1 - eslint-plugin-react-hooks ^5.2.0 -> ^7.1.1 (v5 peers on eslint <=9) typescript-eslint 8.66 and eslint-plugin-react-refresh 0.4.20 already declare eslint 10 support, so they are unchanged. Root package-lock.json regenerated as well, since it embeds the app workspace tree via "queryweaver-app": "file:app". Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Completed Working on "Code Review"✅ Review publication complete: all chunk comments were posted and final review was submitted (COMMENT). Total comments: 2 across 2 files. ✅ Workflow completed successfully. |
|
🚅 Deployed to the QueryWeaver-pr-697 environment in queryweaver
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe pull request upgrades ESLint tooling in ChangesDevelopment tooling
Estimated code review effort: 1 (Trivial) | ~2 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Dependency ReviewThe following issues were found:
|
There was a problem hiding this comment.
Thanks for the dependency upgrade work — I reviewed the posted findings and there are 2 MAJOR comments across 2 files (app/package.json, package-lock.json).
Key themes
- Environment compatibility risk: The ESLint 10 upgrade introduces a stricter Node engine floor that may break installs/lint in older CI/local environments.
- Lockfile maintainability/determinism: Root lockfile regeneration appears to include broad app transitive churn beyond the intended scoped dependency updates.
Recommended next steps
- Align CI/docs/runtime tooling baseline to the Node version required by the upgraded ESLint stack (or adjust versions to match current baseline).
- Re-generate and narrow lockfile changes to only intended workspace-scoped deltas to reduce future drift/churn.
- Re-run install/lint checks in the target CI Node environment after lockfile cleanup to confirm stability.
| "autoprefixer": "^10.4.27", | ||
| "eslint": "^9.32.0", | ||
| "eslint-plugin-react-hooks": "^5.2.0", | ||
| "eslint": "^10.8.1", |
There was a problem hiding this comment.
[major]: This bump moves lint tooling to eslint@10, whose engine requirement is ^20.19.0 || ^22.13.0 || >=24; environments on Node 18 or early Node 20 will fail install/lint after this change.
| "node": ">=6.9.0" | ||
| } | ||
| }, | ||
| "app/node_modules/@eslint/config-array": { |
There was a problem hiding this comment.
[major]: The root lockfile now includes a large set of app-scoped entries (app/node_modules/*) plus many unrelated transitive changes (e.g. browserslist toolchain), which makes workspace installs less deterministic across npm versions and creates high churn unrelated to the ESLint bump. This can cause CI/local lockfile drift on future npm install runs.
Summary
Unblocks Dependabot PR #691 (
@eslint/js9.39.2 → 10.0.1), which cannot pass CI on its own:@eslint/js@10declarespeerOptional eslint@^10.0.0while the project pinseslint@^9.32.0, sonpm cifails withERESOLVEin the unit-tests job.Moving to eslint 10 requires a coordinated bump rather than a single dev-dep update.
Changes
eslint^9.32.0^10.8.1@eslint/js@10@eslint/js^9.32.0^10.0.1eslint-plugin-react-hooks^5.2.0^7.1.1<=9Unchanged because they already declare eslint 10 support:
typescript-eslint@8.66.0— peers^8.57.0 || ^9.0.0 || ^10.0.0eslint-plugin-react-refresh@0.4.20— peers>=8.40No flat-config migration was needed:
app/eslint.config.cjsdoes not reference@eslint/jsor the React plugins (they are currently unused devDependencies).Root
package-lock.jsonis regenerated alongsideapp/, since it embeds the app workspace tree via"queryweaver-app": "file:app"(see #696).Testing
npm run lintinapp/— clean, zero errors/warnings under eslint 10.8.1npm run buildinapp/— succeedsnpm ci --dry-run— passes at both the repo root andapp/(this is the exact failure mode of chore(deps-dev): bump @eslint/js from 9.39.2 to 10.0.1 in /app #691)Memory / Performance Impact
N/A — dev tooling only, no runtime dependencies affected.
Related Issues
Supersedes #691.
Summary by CodeRabbit