Repository navigation
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
93e5bc2 to
1062593
Compare
1062593 to
780abcf
Compare
7891022 to
000d608
Compare
000d608 to
79ad3f6
Compare
79ad3f6 to
22886f4
Compare
22886f4 to
405b551
Compare
405b551 to
1a5d00f
Compare
1a5d00f to
717a34c
Compare
717a34c to
7ece377
Compare
7ece377 to
db10281
Compare
There was a problem hiding this comment.
❌ Some changes need to be made — same ERESOLVE blocker reproduced on the 2026-10-13 rebase
- ❌ P0 —
typescript-eslint@8.70.0 on main still peers typescript@">=4.8.4 <6.1.0"; TS ^7.0.2 violates that range so npm cannot regenerate package-lock.json → npm ci on main breaks after merge
- ✅ Diff itself (
^6.0.3 → ^7.0.2 on package.json:54) is well-scoped and uses ^ consistent with repo convention
- ❔ Should the repo's shared
nsheaps/renovate-config add a packageRules grouping for typescript + typescript-eslint + @typescript-eslint/**, so this PR doesn't keep getting rebased byte-identically on every weekly Renovate run (9th such review today)?
Click to expand for full details
ERESOLVE blocker reproduced on the 2026-10-13 rebasetypescript-eslint@8.70.0 on main still peers typescript@">=4.8.4 <6.1.0"; TS ^7.0.2 violates that range so npm cannot regenerate package-lock.json → npm ci on main breaks after merge^6.0.3 → ^7.0.2 on package.json:54) is well-scoped and uses ^ consistent with repo conventionnsheaps/renovate-config add a packageRules grouping for typescript + typescript-eslint + @typescript-eslint/**, so this PR doesn't keep getting rebased byte-identically on every weekly Renovate run (9th such review today)?How I arrived at this
- Fetched PR state — head
db10281,+1/-1acrosspackage.jsononly. Nopackage-lock.jsonupdate in the diff. - Fetched Renovate's artifact-update comment (comment 5261781302) — timestamp refreshed to 2026-10-13T19:22:46Z by Renovate's weekly re-run, body still contains the full
ERESOLVElog reproduced in the inline comment onpackage.json:54. - Read
package.jsonat headdb10281—typescript-eslint: ^8.70.0, same asmain; no coordinated bump landed. - Checked upstream
typescript-eslint— latest TS-7-relevant note is still8.65.0's #12529, which only warns when TS 7 is detected without widening the peer range. Nothing new through8.70.0. - Verdict — merging as-is breaks
npm cifor every workflow (lint/typecheck/test/build/e2e). This is the 9th review with the exact same finding; the delta each time is only the rebased SHA and the typescript-eslint version string in the ERESOLVE log.
Scoring rationale
- Quality 85 — the diff is minimal and correct in intent; it's just that the ecosystem can't currently resolve it. No code-level smell to flag.
- Security N/A — pure dev-dep version bump, no runtime surface area change.
- Simplicity 95 — one-line change; nothing to simplify.
- Confidence 98 — Renovate's own log, re-run today, is the ground truth on
ERESOLVE.
Thread hygiene
All 9 prior CHANGES_REQUESTED reviews and 8 byte-nearly-identical inline comments on package.json:54 have been minimized as OUTDATED just before submitting this one, so only the current comment is visible on the thread.
Repo-convention checks
- ✅
package.json:54keeps the^range convention consistent with every other devDependency. - ✅ No
any/@ts-ignoreintroduced (CLAUDE.md L34). Option #3 in the inline comment explicitly rejects softening strictness as a workaround. - ❌ No
package-lock.jsonupdate accompanies thepackage.jsonchange — mandatory for npm-managed repos.
Follow-ups
- P0 — Hold or close this PR until
typescript-eslintpublishes a release whose peer range includes TS 7, then bump both together (see inline comment onpackage.json:54for the three concrete unblock paths). - P2 — Add a Renovate
packageRulesgrouping fortypescript+typescript-eslint+@typescript-eslint/**innsheaps/renovate-configso this PR doesn't resurface on every weekly rebase.
Follow-ups:
- P0: Hold or close this PR; do not merge until
typescript-eslintships a release whose peer range includes TypeScript 7. - P2: Group
typescript+typescript-eslint+@typescript-eslint/**in the shared Renovate config to prevent re-opening this broken PR on every rebase.
References
- Workflow run: https://github.com/nsheaps/.ai-agent-henry/actions/runs/38454387428/attempts/1
- Renovate ERESOLVE log (artifact-update): #26 (comment)
typescript-eslint@8.65.0CHANGELOG (adds TS-7 detection warning, does NOT widen peer range): https://github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8650-2026-07-20typescript-eslint#12529("add warning when TS 7 is detected"): typescript-eslint/typescript-eslint#12529- Repo coding conventions: https://github.com/nsheaps/private-pages/blob/main/CLAUDE.md#L34
| "globals": "^17.12.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-10-13 rebase
Renovate refreshed its artifact-update log on this PR today (new timestamp 2026-10-13T19:22:46Z, head still db10281). No change on either side — main still pins typescript-eslint@^8.70.0 (unchanged from last review on 2026-10-07) and upstream still has not published a release whose TS peer range includes 7.x. Renovate's refreshed ERESOLVE comment reproduces the same failure, now re-dated:
npm error code ERESOLVE
npm error While resolving: typescript-eslint@8.70.0
npm error Found: typescript@7.0.2
npm error peer typescript@">=4.8.4 <6.1.0" from typescript-eslint@8.70.0
npm error node_modules/typescript-eslint
npm error dev typescript-eslint@"^8.70.0" from the root project
Every @typescript-eslint/*@8.70.0 subpackage (eslint-plugin, parser, type-utils, typescript-estree, project-service, tsconfig-utils, utils) still declares peer typescript: ">=4.8.4 <6.1.0" per the same Renovate log. 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" back in 8.65.0 (~3 months ago) and still has not widened the peer range through 8.70.0 — 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). 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 — and avoid the churn of re-reviewing the same byte-identical diff on every rebase (this is the 9th such review). - Close this PR and add a temporary
allowedVersions: "<7"entry fortypescriptin Renovate config until the ecosystem catches up. - 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, line 34), silently softening strictness to squeeze past a TS 7 breaking change is also not an option.
Findings based on the diff at package.json:54 and package.json:55 on PR head db10281 (typescript-eslint: ^8.70.0, matching main), Renovate's refreshed ERESOLVE report (comment 5261781302, updated 2026-10-13T19:22:46Z), the typescript-eslint@8.65.0 CHANGELOG (still the most recent TS-7-relevant upstream note; nothing new through 8.70.0), and renovate.json (extends local>nsheaps/renovate-config, no packageRules). Previous inline comments on this line are byte-nearly-identical and have been minimized as outdated.
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.