Skip to content

chore(deps)(deps-dev): bump @types/node from 24.13.3 to 26.1.2 - #481

Closed
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/npm_and_yarn/types/node-26.1.2
Closed

chore(deps)(deps-dev): bump @types/node from 24.13.3 to 26.1.2#481
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/npm_and_yarn/types/node-26.1.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 28, 2026

Copy link
Copy Markdown
Contributor

Bumps @types/node from 24.13.3 to 26.1.2.

Commits

@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Jul 28, 2026
@dependabot
dependabot Bot force-pushed the dependabot/npm_and_yarn/types/node-26.1.2 branch 2 times, most recently from 2a572fa to 6db2b2f Compare July 29, 2026 19:35
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 24.13.3 to 26.1.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 26.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@pathosDev

Copy link
Copy Markdown
Owner

Declining this one — @types/node tracks the engines support floor on purpose, not latest.

ac552d5b chore(deps)!: raise runtime floors states it outright:

@types/node is pinned to the support floor (24) instead of latest so we cannot accidentally use newer-Node APIs.

Reinforced by package.json (engines.node: ">=24.0.0") and by .github/workflows/multi-runtime.yml, which pins its Node leg to '24' with the comment "24 deliberately — it is the engines floor we claim to support."

The red checks are not the reason

They are the usual missing bun.lock sync (error: lockfile had changes, but lockfile is frozen) — tracked separately in #817. I synced the lockfile locally so the bump could actually be evaluated on its merits.

Why the pin is load-bearing

With the bump applied and the lockfile synced, every gate passes:

  • bun run typecheck — green
  • bun test — green, 3544 pass / 0 fail across 296 files

That is not evidence the bump is safe; it is the reason the pin exists. Its job is to make newer-Node APIs unrepresentable at compile time, not to fail a test. Installing both type majors side by side and compiling the same file against each shows the difference:

import { connect } from 'node:quic';
import { convertProcessSignalToExitCode } from 'node:util';
=== @types/node 24.13.3 ===
error TS2307: Cannot find module 'node:quic' or its corresponding type declarations.
error TS2305: Module '"node:util"' has no exported member 'convertProcessSignalToExitCode'.

=== @types/node 26.1.2 ===
(clean)

@types/node 26 declares whole modules Node 24 does not have (ffi.d.ts, quic.d.ts). Under this bump such code compiles and ships, then crashes on the runtime floor we advertise.

So it stops coming back

This is the fourth reopening of a settled decision — #334, #336 and #374 were closed, #340 briefly landed on 26.1.0 before ac552d5b rolled it back. develop now carries an ignore condition for @types/node majors (#906), so minor and patch updates inside the pinned major keep flowing while the major stops being re-proposed. When the floor is raised deliberately, the pin and the rule move together.

@pathosDev pathosDev closed this Aug 4, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 4, 2026

Copy link
Copy Markdown
Contributor Author

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/types/node-26.1.2 branch August 4, 2026 22:50
pathosDev added a commit that referenced this pull request Aug 5, 2026
`@types/node` tracks the `engines` support floor (24) on purpose, not
latest, so a newer-Node API cannot slip into the tree unnoticed —
`ac552d5b` states it outright and multi-runtime.yml pins its Node leg to
the same 24 for the same reason.

Dependabot has no way to know that, so it re-opens the major bump every
release cycle: #334, #336 and #374 were closed, #340 briefly landed on
26.1.0 before `ac552d5b` rolled it back, and #481 is the fourth
reopening of a settled decision.

What makes this worth a config rule rather than another close: the pin
is load-bearing precisely where nothing observes it.  With #481 applied
locally and `bun.lock` synced, `bun run typecheck` passes and `bun test`
reports 3544 pass / 0 fail across 296 files — every gate green.  It
cannot be otherwise, since the pin's job is to make the offending APIs
unrepresentable at compile time rather than to fail a test.  Compiling
the same file against both type majors shows what it buys:
`@types/node` 26 declares whole modules Node 24 does not have
(`node:quic`, `node:ffi`) plus additions like
`util.convertProcessSignalToExitCode`; under 24 that file is two
compile errors, under 26 it is clean and would ship code that crashes
on the runtime floor we advertise.

Minor and patch updates inside the pinned major keep flowing.  When the
floor is raised deliberately, the pin and this rule move together, the
way they did in `ac552d5b`.

Closes #906
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant