Skip to content

Update dependency eslint to v10#6791

Draft
renovate[bot] wants to merge 2 commits intomasterfrom
renovate/major-eslinteslint
Draft

Update dependency eslint to v10#6791
renovate[bot] wants to merge 2 commits intomasterfrom
renovate/major-eslinteslint

Conversation

@renovate
Copy link
Copy Markdown
Contributor

@renovate renovate bot commented Apr 13, 2026

This PR contains the following updates:

Package Change Age Confidence
eslint (source) 9.39.410.2.0 age confidence

Release Notes

eslint/eslint (eslint)

v10.2.0

Compare Source

Features

Bug Fixes

Documentation

  • a2af743 docs: add language to configuration objects (#​20712) (Francesco Trotta)
  • 845f23f docs: Update README (GitHub Actions Bot)
  • 5fbcf59 docs: remove sourceType from ts playground link (#​20477) (Tanuj Kanti)
  • 8702a47 docs: Update README (GitHub Actions Bot)
  • ddeaded docs: Update README (GitHub Actions Bot)
  • 2b44966 docs: add Major Releases section to Manage Releases (#​20269) (Milos Djermanovic)
  • eab65c7 docs: update eslint versions in examples (#​20664) (루밀LuMir)
  • 3e4a299 docs: update ESM Dependencies policies with note for own-usage packages (#​20660) (Milos Djermanovic)

Chores

  • 8120e30 refactor: extract no unmodified loop condition (#​20679) (kuldeep kumar)
  • 46e8469 chore: update dependency markdownlint-cli2 to ^0.22.0 (#​20697) (renovate[bot])
  • 01ed3aa test: add unit tests for unicode utilities (#​20622) (Manish chaudhary)
  • 811f493 ci: remove --legacy-peer-deps from types integration tests (#​20667) (Milos Djermanovic)
  • 6b86fcf chore: update dependency npm-run-all2 to v8 (#​20663) (renovate[bot])
  • 632c4f8 chore: add prettier update commit to .git-blame-ignore-revs (#​20662) (루밀LuMir)
  • b0b0f21 chore: update dependency eslint-plugin-regexp to ^3.1.0 (#​20659) (Milos Djermanovic)
  • 228a2dd chore: update dependency eslint-plugin-eslint-plugin to ^7.3.2 (#​20661) (Milos Djermanovic)
  • 3ab4d7e test: Add tests for eslintrc-style keys (#​20645) (kuldeep kumar)

v10.1.0

Compare Source

Features

  • ff4382b feat: apply fix for no-var in TSModuleBlock (#​20638) (Tanuj Kanti)
  • 0916995 feat: Implement api support for bulk-suppressions (#​20565) (Blake Sager)

Bug Fixes

  • 2b8824e fix: Prevent no-var autofix when a variable is used before declaration (#​20464) (Amaresh S M)
  • e58b4bf fix: update eslint (#​20597) (renovate[bot])

Documentation

  • b7b57fe docs: use correct JSDoc link in require-jsdoc.md (#​20641) (mkemna-clb)
  • 58e4cfc docs: add deprecation notice partial (#​20639) (Milos Djermanovic)
  • 7143dbf docs: update v9 migration guide for @eslint/js usage (#​20540) (fnx)
  • 035fc4f docs: note that globalReturn applies only with sourceType: "script" (#​20630) (Milos Djermanovic)
  • e972c88 docs: merge ESLint option descriptions into type definitions (#​20608) (Francesco Trotta)
  • 7f10d84 docs: Update README (GitHub Actions Bot)
  • aeed007 docs: open playground link in new tab (#​20602) (Tanuj Kanti)
  • a0d1a37 docs: Add AI Usage Policy (#​20510) (Nicholas C. Zakas)

Chores

v10.0.3

Compare Source

v10.0.2

Compare Source

v10.0.1

Compare Source

Bug Fixes

Documentation

  • 5b3dbce docs: add AI acknowledgement section to templates (#​20431) (루밀LuMir)
  • 6f23076 docs: toggle nav in no-JS mode (#​20476) (Tanuj Kanti)
  • b69cfb3 docs: Update README (GitHub Actions Bot)

Chores

v10.0.0

Compare Source


Configuration

📅 Schedule: (in timezone CET)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Never, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
Copy link
Copy Markdown
Contributor Author

renovate bot commented Apr 13, 2026

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm warn Unknown env config "store". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: @babel/[email protected]
npm error Found: [email protected]
npm error node_modules/eslint
npm error   eslint@"10.2.0" from the root project
npm error   peer eslint@"^8.57.0 || ^9.0.0 || ^10.0.0" from @angular-eslint/[email protected]
npm error   node_modules/@angular-eslint/eslint-plugin
npm error     @angular-eslint/eslint-plugin@"21.3.1" from the root project
npm error   10 more (@angular-eslint/utils, ...)
npm error
npm error Could not resolve dependency:
npm error peer eslint@"^7.5.0 || ^8.0.0 || ^9.0.0" from @babel/[email protected]
npm error node_modules/@babel/eslint-parser
npm error   @babel/eslint-parser@"7.28.6" from the root project
npm error
npm error Conflicting peer dependency: [email protected]
npm error node_modules/eslint
npm error   peer eslint@"^7.5.0 || ^8.0.0 || ^9.0.0" from @babel/[email protected]
npm error   node_modules/@babel/eslint-parser
npm error     @babel/eslint-parser@"7.28.6" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry
npm error this command with --force or --legacy-peer-deps
npm error to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2026-04-13T14_52_15_622Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2026-04-13T14_52_15_622Z-debug-0.log

@sonar-review-alpha
Copy link
Copy Markdown
Contributor

sonar-review-alpha bot commented Apr 13, 2026

Summary

⚠️ The PR description exceeded the analysis limit and was truncated. The review may not reflect all context.

ESLint upgraded from v9.39.4 to v10.2.0 with comprehensive dependency updates.

This is a major version bump that removes the previous eslint patch file (no longer needed). Core changes:

  • ESLint's architecture was significantly refactored in v10, eliminating the separate @eslint/eslintrc and @eslint/js packages
  • Related packages updated: eslint-scope (8→9), eslint-visitor-keys (4→5), espree (10→11), minimatch (3→10)
  • Node version floor raised to ^20.19.0 || ^22.13.0 || >=24 (v18 no longer supported)
  • Unusual: prettier-plugin-java downgraded from 2.8.1 to 0.3.2 (and java-parser from 3.0.1 to 0.3.2), likely due to compatibility constraints with chevrotain ecosystem changes
  • Several dev dependencies removed: lodash, lodash-es, @chevrotain/* packages

What reviewers should know

What to focus on:

  • The patch removal (patches/eslint+9.37.0.patch) is the most important validation point—verify linting behavior works without it
  • Run tests thoroughly; this affects the core linting engine used throughout the project
  • The prettier-plugin-java downgrade is counterintuitive (version 0.3.2 is older than 2.8.1). Check if formatting of Java files still works correctly
  • Verify Node.js version constraints: If anyone is on Node 18, they'll need to upgrade

Testing focus:

  • Linting rules and error detection (core eslint behavior)
  • Java code formatting via prettier-plugin-java
  • Plugin compatibility (eslint-plugin-react, eslint-plugin-import, etc.) with new eslint core
  • Check the git history of why the patch was needed originally—confirm ESLint v10 doesn't have that issue

  • Generate Walkthrough
  • Generate Diagram

🗣️ Give feedback

sonar-review-alpha[bot]

This comment was marked as outdated.

Copy link
Copy Markdown
Contributor

@zglicz zglicz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approved: Renovate dependency update.

@zglicz zglicz enabled auto-merge (squash) April 14, 2026 09:47
@renovate
Copy link
Copy Markdown
Contributor Author

renovate bot commented Apr 14, 2026

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@vdiez
Copy link
Copy Markdown
Contributor

vdiez commented Apr 14, 2026

moving to draft until Babel v8 is released

@vdiez vdiez marked this pull request as draft April 14, 2026 13:13
auto-merge was automatically disabled April 14, 2026 13:13

Pull request was converted to draft

Copy link
Copy Markdown
Contributor

@sonar-review-alpha sonar-review-alpha bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The patch file removal is the key risk area that needs verification before merging. The rest of the change (lock file dependency graph, Node version floor increase) looks mechanically correct for an ESLint v9→v10 upgrade.

🗣️ Give feedback

Comment thread package.json
"color": "5.0.3",
"css-unit-converter": "1.1.2",
"eslint": "9.39.4",
"eslint": "10.2.0",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Potential regression from patch removal: patches/eslint+9.37.0.patch was what made ESLint's Linter.verify() call the getRule, patchDirectives, and patchInlineOptions hooks that pragmas.ts provides via createOptions(). These hooks remap native ESLint rule IDs (e.g. no-unused-vars) to their SonarJS counterparts (sonarjs/no-unused-vars) inside // eslint-disable comments and inline /* eslint ... */ config.

The ESLint v10 changelog has no mention of adopting these hooks natively, and the type signature in pragmas.ts still declares them as extensions beyond the official Linter.LintOptions:

export function createOptions(...): Linter.LintOptions & {
  getRule: ...
  patchDirectives: ...
  patchInlineOptions: ...
}

If ESLint v10 does not invoke these callbacks, users' // eslint-disable-next-line no-unused-vars comments will silently stop suppressing sonarjs/no-unused-vars, breaking the rule ID aliasing contract.

Please confirm one of:

  • ESLint v10 natively calls these option properties (with a link to ESLint source or changelog entry)

  • A new ESLint v10 patch was applied elsewhere

  • This functionality is intentionally removed and tests covering the aliasing behaviour were updated to match

  • Mark as noise

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants