Skip to content

npm harness: use node-lts for runtime - #98

Merged
mitodrummer merged 1 commit into
mainfrom
npm-use-node-lts
Apr 22, 2026
Merged

npm harness: use node-lts for runtime#98
mitodrummer merged 1 commit into
mainfrom
npm-use-node-lts

Conversation

@mitodrummer

Copy link
Copy Markdown
Member

Summary

  • Switch the npm harness's runtime_packages from node to node-lts.

Reasoning

npm is bundled with Node, so the npm version most users and hosting providers run is whichever ships with the current Node LTS. Aligning the harness with LTS matches what the ecosystem is tested against and what users are most likely to deploy on. Mirrors #97 for pnpm.

Test plan

  • min check --harnesses npm

🤖 Generated with Claude Code

npm is bundled with Node, so the npm most users and hosting providers
run is whichever ships with the current LTS. Match that baseline so
the harness runtime mirrors what the ecosystem is tested on and what
users deploy with.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@mitodrummer
mitodrummer merged commit 1b3e31f into main Apr 22, 2026
1 check passed
@mitodrummer
mitodrummer deleted the npm-use-node-lts branch April 22, 2026 19:40
bryan-minimal added a commit that referenced this pull request Aug 4, 2026
Follows Tom's review on #370 — "I dont think a global `node_modules` is gonna
go so well, particularly if someone uses `node` vs `node-lts`".

The collision half of that was already handled: vlt installs into a private
`usr/libexec/vlt` prefix with relative PATH symlinks, never the shared
`usr/lib/node_modules` the node runtime owns. But the variant question the
comment raises was still answered by the importer's hardcoded default rather
than by evidence.

The evidence says LTS:

  - vlt's own CI tests Node 22.x ONLY (`node-version: '^22.22.0'` and
    `[22.x]`); `engines` says `>=22.22.0`. Our node-lts is 24.14.1 and node is
    25.8.2 — neither is 22.x, but LTS is two majors closer to what upstream
    actually tests against.
  - pnpm is the closest analogue in this repo (a package manager, a node CLI,
    same shape of package) and it is on node-lts, per #97/#98: the node most
    users and hosting providers run is whatever ships with current LTS.

node-lts ships its own npm, so it serves the build (`npm ci`) and the runtime
(`#!/usr/bin/env node`) both — no split between build_deps and runtime_deps.

Rebuilt and re-checked on the min path: 15/15 Pass.
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.

2 participants