chore(deps): update dependency typescript to v7 - #26
renovate[bot] wants to merge 1 commit into
Conversation
|
7795bae to
f8558ce
Compare
f8558ce to
d534cce
Compare
d534cce to
a7547ce
Compare
d26e606 to
92624e6
Compare
92624e6 to
2578f4c
Compare
There was a problem hiding this comment.
Review — chore(deps): update dependency typescript to v7 (rebased to 2578f4c8)
Summary
Renovate rebased this PR onto latest main today (new head 2578f4c8, 2026-08-28T17:14:45Z) to pick up merged updates to jsdom (→ ^30.0.1, #42) and Node engines (→ >=24.18.1, #41), plus a workflow-file sync (a40460c — .github/workflows/dispatch-review.yaml). The PR's own diff remains byte-identical to prior reviews: a single-line bump of typescript from ^6.0.3 → ^7.0.2 in package.json. No coordinated typescript-eslint bump landed on main (still ^8.65.0), and Renovate's ERESOLVE artifact-update report was refreshed at 2026-08-28T17:14:52Z with the same failure signature.
Recommendation
🚫 Request changes / do not merge — same P0 as before, no fix. See the inline comment on package.json:54 for the full breakdown. typescript-eslint@8.65.0 still declares peer typescript: ">=4.8.4 <6.1.0", so npm install errors with ERESOLVE and package-lock.json cannot be regenerated. Merging as-is would leave main in a state where npm ci fails, breaking every CI job that installs deps (lint, typecheck, test, build, e2e).
Strengths
- ✅ Scope is minimal (one line, one file) — trivial to review and revert.
- ✅ Renovate proactively surfaced the ERESOLVE failure and re-refreshed it after today's rebase, rather than producing a silently-broken lockfile.
- ✅ Follows the project's Renovate-driven dependency-update flow (
renovate.jsonextendsnsheaps/renovate-config).
Issues
🚨 P0 — Blocking peer-dependency conflict; broken install after merge (details in the inline comment on package.json:54)
typescript-eslint@8.65.0→@typescript-eslint/{eslint-plugin,parser,type-utils,typescript-estree,utils,project-service,tsconfig-utils}@8.65.0all declarepeer typescript: ">=4.8.4 <6.1.0".- Bumping
typescriptto^7.0.2violates every one of those peer ranges — Renovate's refreshed artifact-update comment (2026-08-28T17:14:52Z) showsnpm error code ERESOLVE ... Conflicting peer dependency: typescript@6.0.3. - Upstream is aware TS 7 is coming (typescript-eslint#12529 "add warning when TS 7 is detected" shipped in 8.65.0) but hasn't widened the peer range — the linter package explicitly refuses TS 7 and warns if you force-install.
- Because no
package-lock.jsonaccompanies thepackage.jsonchange,npm cionmainafter merge will fail. Build-blocker, not just typecheck.
Full recommended remediations (grouped update / allowedVersions pin / coordinated bump) are in the inline comment on package.json:54. Do not use --legacy-peer-deps; do not soften strictness (CLAUDE.md bans any / @ts-ignore).
ℹ️ P2 — PR body / release notes are effectively empty
The Renovate-generated release-notes section links to a bare compare URL (v6.0.3...2bd066d87f5bafd315be9f40889d0a60b9e58e0b) with no changelog excerpt. TypeScript 7 is a major version bump and almost certainly contains breaking changes affecting a strict-mode codebase. Before this PR (or its grouped successor) can be safely merged, please add a short summary of the TS 7 breaking changes that actually touch this repo (strictness, module resolution, decorator behavior, lib defaults, etc.) so reviewers can assess impact rather than trusting ^7.0.2 blindly.
Non-blocking on its own, but pairs with the P0 — the fix for the P0 will need the same context.
What (didn't) change since last review
package.json:54is byte-identical to the prior review head (92624e6); the rebase to2578f4c8only pulled in unrelated base-branch bumps (jsdom, Node engines, a workflow-file sync).typescript-eslintis unchanged onmainat^8.65.0; peer range still>=4.8.4 <6.1.0. No new upstream release resolves this.- Renovate's ERESOLVE report was updated 2026-08-28T17:14:52Z with the same failure signature.
- No response to prior reviews' suggestions; no engagement to reply to.
Follow-ups
- 🟥 P0 — Resolve the peer-dep conflict (grouped update,
allowedVersionsignore, or coordinatedtypescript-eslintbump). Until then this PR should not merge. - 🟨 P2 — Add a TS 7 breaking-changes callout to the PR body (or its grouped successor).
Verdict
REQUEST_CHANGES — same blocker as before, unchanged after today's rebase; one P0 (peer-dep conflict / broken install) + one P2 (missing release-notes context).
References:
- Workflow run
typescript-eslint@8.65.0CHANGELOGtypescript-eslint#12529— warning when TS 7 is detectednpmERESOLVE /--legacy-peer-depsdocs
Reviewed against commit 2578f4c8 on branch renovate/typescript-7.x. Findings based on the PR diff, the PR-branch package.json (typescript-eslint: ^8.65.0 on line 55), Renovate's refreshed ERESOLVE artifact report (comment 5261781302, 2026-08-28T17:14:52Z), the branch commit history (last change to the PR diff was Renovate's rebase on 2026-08-28T17:14:45Z; no code or lockfile added), renovate.json (extends local>nsheaps/renovate-config), and CLAUDE.md conventions. Previous reviews (against f8558ce, d534ccc, a7547ce, 92624e6) and their inline duplicates minimized as outdated; a fresh inline comment on package.json:54 accompanies this review. No CI output was used to form this assessment.
| "globals": "^17.8.0", | ||
| "jsdom": "^30.0.1", | ||
| "typescript": "^6.0.3", | ||
| "typescript": "^7.0.2", |
There was a problem hiding this comment.
🚨 P0 — Blocking peer-dep conflict; npm install still fails after 2026-08-28 rebase
Renovate rebased this PR again today (new head 2578f4c8, 2026-08-28T17:14:45Z) to pick up merged updates to jsdom (→ ^30.0.1, #42) and Node engines (→ >=24.18.1, #41), plus a workflow-file sync. No typescript-eslint bump landed on main (still ^8.65.0 on package.json:55), so nothing about the peer-dep situation has changed. Renovate's refreshed artifact-update comment (updated 2026-08-28T17:14:52Z) shows the same ERESOLVE failure:
npm error code ERESOLVE
npm error While resolving: typescript-eslint@8.65.0
npm error Found: typescript@7.0.2
...
npm error Conflicting peer dependency: typescript@6.0.3
npm error peer typescript@">=4.8.4 <6.1.0" from typescript-eslint@8.65.0
typescript-eslint@8.65.0 and every @typescript-eslint/*@8.65.0 subpackage still declare peer typescript: ">=4.8.4 <6.1.0". Bumping typescript to ^7.0.2 violates that range, so npm cannot regenerate package-lock.json. Upstream shipped typescript-eslint#12529 "add warning when TS 7 is detected" in 8.65.0 but has not widened the peer range — the linter package explicitly refuses TS 7.
Because no updated package-lock.json accompanies this package.json change, merging as-is will break npm ci on main for every CI job that installs deps (lint, typecheck, test, build, e2e). This is a build-blocker, not just a typecheck concern.
Recommended options (any one unblocks):
- Preferred — hold this PR until
typescript-eslintpublishes a release whose peer range includes TS 7, then bump both together. A RenovatepackageRulesgrouping in the sharednsheaps/renovate-config(e.g.matchPackageNames: ["typescript", "typescript-eslint", "@typescript-eslint/**"],groupName: "typescript") would prevent this class of broken PR going forward. - Close this PR and add a temporary
allowedVersions: "<7"entry fortypescriptin Renovate config until the ecosystem catches up, to avoid re-opening the same broken PR on every rebase. - Only if you accept the ecosystem-compat risk: extend this PR to also bump
typescript-eslintto a version whose peer range covers TS 7, then re-run Renovate so the lockfile actually regenerates. Do not patch around this with--legacy-peer-deps— that hides the fact that the linter's TS API assumptions may not hold under a TS major bump.
Per CLAUDE.md ("TypeScript strict — no any, no @ts-ignore"), silently softening strictness to squeeze past a TS 7 breaking change is not an option either.
Findings based on the diff at package.json:54, package.json:55 on the PR branch (typescript-eslint: ^8.65.0), Renovate's refreshed ERESOLVE report (comment 5261781302, 2026-08-28T17:14:52Z), the typescript-eslint@8.65.0 CHANGELOG, and renovate.json (extends local>nsheaps/renovate-config). Previous inline comments on this line are byte-nearly-identical and are minimized as outdated.
93e5bc2 to
1062593
Compare
1062593 to
780abcf
Compare
7891022 to
000d608
Compare
000d608 to
79ad3f6
Compare
This PR contains the following updates:
^6.0.3→^7.0.2Release Notes
microsoft/TypeScript (typescript)
v7.0.2Compare Source
Configuration
📅 Schedule: (in timezone America/New_York)
🚦 Automerge: Disabled because a matching PR was automerged previously.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.