From 293a024da13b19616c3a7e2c2529f8a6e88d2963 Mon Sep 17 00:00:00 2001 From: kkdev92 Date: Wed, 12 Aug 2026 23:35:56 +0900 Subject: [PATCH] chore(deps): record why typescript 7 and @types/node 26 are held back MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .github/dependabot.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 26fe29a..ab0a13d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -11,6 +11,28 @@ updates: - minor - patch + ignore: + # Both of these were opened, checked and closed rather than merged, so the + # reasons live here instead of being rediscovered every week. + + # 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. Drop this once that peer range widens. + - dependency-name: typescript + update-types: + - version-update:semver-major + + # @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, via ELECTRON_RUN_AS_NODE), and + # `engines.vscode: ^1.125.0` puts the floor lower still. A bump past that + # passes CI — nothing reaches for a newer API *yet* — which is precisely why + # CI cannot be what catches it. Same rule as @types/vscode, where the types + # floor is also the ceiling. Revisit when the host moves. + - dependency-name: "@types/node" + update-types: + - version-update:semver-major + # Actions are pinned to commit SHAs, which a person cannot reasonably keep current by # hand. Dependabot reads the version from the trailing comment and updates both, so the # pinning stays a safeguard rather than becoming a way to stay on old code forever.