Skip to content

Move to Node 26 when it reaches Active LTS #2153

Open

Description

@kmcginnes

We track the latest Active LTS Node release. Node 24 is Active LTS today, so the pins are correct as
of now — this issue is the scheduled move to Node 26, which enters Active LTS on 2026-10-28.

@types/node 26 is already published and typechecks cleanly against the current source, so the code
isn't the obstacle. We're holding it at ^24 only because shipping types ahead of the runtime would let
code compile against APIs the runtime doesn't have.

Work

When Node 26 reaches Active LTS, change all of these together:

  • .node-version to the then-current 26.x LTS patch. It is the only Node pin: Vite+, CI (setup-vp), the Docker build, and fnm all read it.
  • @types/node to ^26.x in packages/graph-explorer and packages/graph-explorer-proxy-server
  • The "(24, pinned in .node-version)" comment on the @types/node ignore rule in .github/dependabot.yml

How to check the trigger: DefinitelyTyped pins the @types/node latest dist-tag to a much older
major, so pnpm outdated reports the highest in-range 24.x and will never surface 26.x. Use
pnpm view @types/node versions instead. For the runtime itself, the LTS date is in
nodejs/Release's schedule.json.

Verify with pnpm checks, pnpm test, and a Docker image build. test_build_docker.yml fails if the image's Node differs from .node-version.

Acceptance

.node-version and @types/node sit on the current Node 26 LTS release, and CI is green.

Important

Internal only — this issue is maintained by the core team and is not accepting external contributions.

Activity

  1. added
    infrastructureIssues related to tooling or deployment
    internalSignals that the team will work on this issue internally.
    dependenciesPull requests that update a dependency file
    on Sep 10, 2026
  2. added theissue type on Sep 10, 2026
  3. kmcginnes commented on Sep 14, 2026

    @kmcginnes
    CollaboratorAuthor

    One blocker to add to the work list: Node 26 does not ship Corepack.

    Confirmed against local installs. Node 24.13.0, 24.16.0, and 24.21.0 each contain a corepack binary; Node 26.7.0 does not. The node-v24.21.0-linux-* tarball the Dockerfile fetches ships corepack 0.36.0.

    Two things break on the move:

    • Dockerfile runs corepack enable to acquire pnpm. On Node 26 that command does not exist, so the image build fails.
    • docs/development.md documents corepack enable as the way to bootstrap pnpm when you have Node but no pnpm. That instruction stops working for anyone on Node 26.

    Neither is hard to fix, but both need a decision about how pnpm gets installed rather than a version-number edit, which is what #2158 is scoping. Worth sequencing that spike before this issue's date rather than after.

    Not urgent for correctness today: engines.node is >=24.21.0, so Node 26 is already permitted, and a contributor who is on it hits the docs problem now. Anyone following .nvmrc is on 24 and unaffected.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency fileinfrastructureIssues related to tooling or deploymentinternalSignals that the team will work on this issue internally.

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions