chore(renovate): group eslint and @typescript-eslint in one PR#698
chore(renovate): group eslint and @typescript-eslint in one PR#698castrojo merged 4 commits intoprojectbluefin:mainfrom
Conversation
Co-authored-by: castrojo <1264109+castrojo@users.noreply.github.com>
Co-authored-by: castrojo <1264109+castrojo@users.noreply.github.com>
eslint v10 and @typescript-eslint must update together — the plugin has peer deps on both eslint and typescript versions. Splitting them causes ERESOLVE failures (as seen in PR 640 vs TS6 already on main). Assisted-by: Claude Sonnet 4.6 via GitHub Copilot Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Code Review
This pull request adds a new .github/renovate.json file to group ESLint and TypeScript-ESLint dependencies for synchronized updates. Feedback indicates that a root-level Renovate configuration already exists, which would cause this new file to be ignored and result in the loss of global settings. It is recommended to merge these package rules into the existing root configuration instead.
| { | ||
| "$schema": "https://docs.renovatebot.com/renovate-schema.json", | ||
| "packageRules": [ | ||
| { | ||
| "description": "Group eslint and @typescript-eslint together — they must update as a unit because @typescript-eslint has a peer dep on specific eslint and typescript versions", | ||
| "matchPackageNames": [ | ||
| "eslint", | ||
| "@typescript-eslint/eslint-plugin", | ||
| "@typescript-eslint/parser" | ||
| ], | ||
| "groupName": "eslint monorepo", | ||
| "groupSlug": "eslint-monorepo" | ||
| } | ||
| ] | ||
| } |
There was a problem hiding this comment.
A renovate.json file already exists in the root directory. Renovate typically only processes a single configuration file and gives precedence to the one in the root, meaning this new file will be ignored. \n\nAdditionally, this file lacks the extends field and other global settings defined in the root configuration. If Renovate were to use this file instead of the root one, it would lose all existing settings like automerge and dashboard configuration. To fix this, merge the new packageRules entry into the existing root renovate.json and remove this file.
Summary
.github/renovate.jsonwith a package grouping ruleeslint,@typescript-eslint/eslint-plugin, and@typescript-eslint/parserso Renovate always updates them togetherWhy
PR 640 (
eslint8→10) failed because@typescript-eslint/eslint-plugin@8.57.2has a peer dep requiringtypescript <6.0.0, buttypescript@6.0.2is already on main. Splitting these into separate PRs causes ERESOLVE install failures.Grouping them ensures the next eslint bump also brings a
@typescript-eslintversion that supports the current TypeScript.Closes #640
Assisted-by: Claude Sonnet 4.6 via GitHub Copilot
Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com