Install the pinned node when the installed one is another major version (closes #118)
check / check (push) Canceled after 0s

script/bootstrap used whatever node was installed, so on the CI runner
image, which ships node 24, the pinned yarn 1.22.22 ran under node 24
and printed the deprecation warning DEP0169 on every bootstrap. It now
uses the installed node only when its major version is the pinned one,
and otherwise installs the pinned node with nvm, as it already did when
node was missing, with yarn and the packages under it. Only the major is
compared because the Dockerfile stages use a node 22 alpine image that
nvm cannot replace. script/fmt and script/fmt-check carry the same test
to pick their yarn: the yarn on PATH, or yarn under the pinned node
loaded through nvm.

Model: opus-5-5
This commit is contained in:
2026-10-08 01:06:25 +00:00
parent c55a0cb2f0
commit c2c58ea349
7 changed files with 139 additions and 69 deletions
+15
View File
@@ -21,6 +21,21 @@ fmt-check, and commit.
# Completed Steps
- 2026-10-08: The canonical `script/bootstrap` now uses the installed node only
when its major version is the pinned one (issue 118). Otherwise, as when node
is missing, it installs the pinned node under nvm and installs yarn and the
packages under it. The CI runner image ships node 24, under which the pinned
yarn 1.22.22 printed the deprecation warning DEP0169 on every bootstrap. Only
the major is compared because the `Dockerfile` stages start from a node 22
alpine image whose exact version is not the pin, and nvm cannot install a
prebuilt node on alpine; the version-comparison rule in `REPO_POLICIES.md`
names node as its exception. `script/fmt` and `script/fmt-check` pick their
yarn with the same test: the `yarn` on `PATH` when the installed node is the
pinned major, and otherwise yarn under the pinned node through nvm.
`REPO_POLICIES.md` and both checklists say so, and the checklists' final
`script/cibuild` check names what the CI runner image has: node 24 and no
yarn. Not yet tried on the shared runner. Repositories pick this up on their
next re-vendor.
- 2026-10-07: The `script/cibuild` item in `NEW_REPO_CHECKLIST.md` now matches
the canonical `script/cibuild` (issue 125). Its image build carries the tag,
`-t "$tag"`, and the item says that `$version` comes from