Skip to content

chore(toolchain): pin Node.js to 24.19.0 - #110

Open
kellylimmm wants to merge 1 commit into
mainfrom
chore/pin-node-24.19.0
Open

chore(toolchain): pin Node.js to 24.19.0#110
kellylimmm wants to merge 1 commit into
mainfrom
chore/pin-node-24.19.0

Conversation

@kellylimmm

Copy link
Copy Markdown
Contributor

Summary

  • Pins Node.js to the exact version 24.19.0 in all four places it's declared, so local setup, CI, and the Docker image all resolve identical builds instead of floating on whatever 24.x is current.
  • package.json: engines.node ^24.0.024.19.0
  • .github/workflows/ci.yml: node-version: 2424.19.0 in both the Format and Lint jobs
  • Dockerfile: node:24-alpine3.23node:24.19.0-alpine3.23 (confirmed this tag is published for both amd64 and arm64)
  • CONTRIBUTING.md: prerequisite line and mise use --global example updated to 24.19.0

pnpm is left untouched everywhere (tracked separately in #106).

Closes #105

Test plan

  • Verified pnpm install succeeds on Node 24.19.0
  • Verified pnpm install fails with ERR_PNPM_UNSUPPORTED_ENGINE (naming 24.19.0 as required) when run on Node 24.16.0, confirming pnpm-workspace.yaml's engineStrict: true enforces the pin
  • Confirmed pnpm-lock.yaml is not rewritten by the version bump
  • Confirmed the node:24.19.0-alpine3.23 base image tag exists for amd64/arm64 on Docker Hub
  • CI run on this PR (Format/Lint jobs) — pending, will confirm once opened
  • Docker host-build stage — not run locally (Docker wasn't available in the dev environment); relying on CI's build-image job to confirm

🤖 Generated with Claude Code

Node floated at the major (^24.0.0 / node-version: 24 / node:24-alpine3.23)
across package.json, ci.yml, the Dockerfile, and CONTRIBUTING.md, so CI,
the image, and local machines could each resolve a different patch
version with no commit in between. Pin all four to 24.19.0, matching how
Go is already pinned exactly.

Verified locally: pnpm install succeeds on Node 24.19.0 and fails with
ERR_PNPM_UNSUPPORTED_ENGINE on 24.16.0, confirming pnpm-workspace.yaml's
engineStrict enforces the pin. pnpm-lock.yaml is unaffected.

Closes #105

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@kellylimmm kellylimmm self-assigned this Aug 28, 2026
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.

chore(toolchain): pin Node.js to an exact version

1 participant