Skip to content

chore(deps): record why typescript 7 and @types/node 26 are held back - #15

Merged
kkdev92 merged 1 commit into
mainfrom
chore/dependabot-ignore-blocked-majors
Aug 12, 2026
Merged

chore(deps): record why typescript 7 and @types/node 26 are held back#15
kkdev92 merged 1 commit into
mainfrom
chore/dependabot-ignore-blocked-majors

Conversation

@kkdev92

@kkdev92 kkdev92 commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Dependabot opened both of these, I checked them, and both were closed rather than
merged. Without an ignore rule they return weekly and the reasoning gets
rediscovered every time — so it goes in the config, next to the decision.

typescript majors

typescript-eslint declares typescript >=4.8.4 <6.1.0. Type-aware linting is
what lint runs, so 7.x takes the lane down rather than degrading gracefully —
the closed PR's own lint job failed, which is the evidence rather than a
prediction. vscode-ext-kit has carried this same rule for the same reason.

@types/node majors

These types decide what Node API the code may compile against, so they must not
exceed the runtime. VS Code 1.132's extension host runs Node 24.18.0
(Electron 42.7.1) — measured by running the cached build under
ELECTRON_RUN_AS_NODE, not looked up — and engines.vscode: ^1.125.0 puts the
floor lower still.

Worth stating plainly: the bump passed every CI job. Nothing in the tree
reaches for a newer API yet, which is precisely why CI cannot be the thing that
catches this. It would surface at runtime, in a real extension host, the first
time someone used a Node 26 API. Same rule as @types/vscode, where the types
floor is also the ceiling.

Both comments say when to remove the rule

When typescript-eslint widens its peer range, and when the extension host
itself moves to a newer Node. An ignore with no exit condition is how a project
gets stuck.

Config-only change — no code, no version bump.

🤖 Generated with Claude Code

Both were opened by Dependabot, checked, and closed rather than merged. Without
an `ignore` rule they come back weekly and the reasoning gets rediscovered every
time, so it goes in the config next to the decision.

**typescript 7.x** — `typescript-eslint` declares `typescript >=4.8.4 <6.1.0`,
and type-aware linting is what `lint` runs, so 7.x fails the lane outright rather
than degrading. The closed PR's own `lint` job is the evidence. `vscode-ext-kit`
has carried this same rule for the same reason.

**@types/node majors** — these types decide what Node API the code may compile
against, so they must not exceed the runtime. VS Code 1.132's extension host runs
Node 24.18.0, measured by running the cached build under `ELECTRON_RUN_AS_NODE`
rather than looked up, and `engines.vscode: ^1.125.0` puts the floor lower still.

That second one is worth stating carefully: the bump **passed every CI job**.
Nothing in the tree reaches for a newer API yet, which is exactly why CI cannot
be the thing that catches it — it would start failing at runtime, in a real
extension host, the first time someone used one. Same rule as `@types/vscode`,
where the types floor is also the ceiling.

Both comments say when to drop the rule: when the peer range widens, and when the
extension host itself moves.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@kkdev92
kkdev92 merged commit d61ca86 into main Aug 12, 2026
5 checks passed
@kkdev92
kkdev92 deleted the chore/dependabot-ignore-blocked-majors branch August 12, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant