Skip to content

build(node): declare supported node versions and add nvmrc - #15

Open
mariano-aguero wants to merge 5 commits into
mainfrom
build/node-engines
Open

mariano-aguero wants to merge 5 commits into
mainfrom
build/node-engines

Conversation

@mariano-aguero

@mariano-aguero mariano-aguero commented Oct 5, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The repo does not say which Node versions it supports, and some of them do not work: on Node 22.11 vitest fails at startup because a rolldown binding requires ^20.19.0 || >=22.12.0, and pnpm skips it. This adds engines.node to package.json and an .nvmrc pointing at Node 20, so an unsupported version gets a clear warning at install time. CI now reads its Node version from .nvmrc, and the README lists the supported versions.

Type of change

  • Bug fix
  • New feature
  • Documentation
  • Refactor / chore

Checklist

  • pnpm lint passes
  • pnpm build passes (type-check + build)
  • pnpm test passes
  • pnpm test:e2e passes (if behavior changed)
  • I updated relevant docs / README
  • Commits follow Conventional Commits

E2E was not run since app behavior does not change. Lint, the 12 unit tests and the build pass on Node 20.20.1 selected through nvm use. On Node 22.11, pnpm install now prints Unsupported engine with the range below.

Notes for reviewers

The range ^20.19.0 || ^22.13.0 || >=24.0.0 comes from jsdom and eslint-visitor-keys, the strictest ranges in pnpm-lock.yaml, and it also covers the packages that require ^22.12.0 or >=20.19.0. .nvmrc says 20 to match justalab-agents. One transitive package, @wallet-standard/base (types only, pulled in by @wagmi/connectors), declares >=22; pnpm does not warn about it, and lint, tests and build pass on Node 20.

Without engine-strict, pnpm only warns on a mismatch and does not block the install. This PR is independent of #14 and the two can merge in any order.

engine-strict=true would turn the warning into an install error, but on Node 20 it also fails on @wallet-standard/base, so it waits for the move off Node 20, which reached end of life in April 2026.

# Conflicts:
#	package.json

@justalab-agents justalab-agents Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Findings outside the diff

These sit on lines this PR did not change, but this PR is what makes them wrong. They cannot be posted as inline comments.

  • [WARNING] package.json — package.json has dependency changes but no pnpm-lock.yaml update was found in this PR. Commit the lockfile together with manifest changes.
Reviewer callouts (1)

Non-blocking observations. Nothing here needs to change before merge.

  • .github:1 — "The ubuntu-latest label will migrate to Ubuntu 26 beginning October 19, 2026. For more information, see actions/runner-images#14748"

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.

1 participant