Bootstrap keeps yarn and node only at their pinned versions (closes #154)
check / check (push) Canceled after 0s

script/bootstrap kept any yarn found on PATH, so YARN_VERSION applied
only where none was installed. It now keeps the yarn on PATH only when
yarn --version is exactly YARN_VERSION, and otherwise prepares that
version through corepack. The node on PATH is used only when it has the
pinned major version and is at least NODE_MIN_VERSION, as
REPO_POLICIES.md asks. After installing either, bootstrap looks the tool
up through PATH again, stops naming the path if it is not the pinned
one, and prints the version it uses, as it does for Go. The other host
scripts that run yarn run it through the new script/yarn, which uses the
same node test with ~/.local/bin first on PATH, and otherwise the pinned
node in nvm.

Model: opus-5-5
This commit is contained in:
2026-10-19 04:29:40 +00:00
parent 9677c73e0a
commit 6bfe119e96
10 changed files with 148 additions and 28 deletions
+13
View File
@@ -21,6 +21,19 @@ Run `make frontend-viewport-test` in CI as its own step; it is not part of
# Completed Steps
- 2026-10-19: `script/bootstrap` keeps the `yarn` on `PATH` only when
`yarn --version` is exactly `YARN_VERSION`, and otherwise prepares that
version through corepack, as it did when no yarn was installed
([#154](https://git.eeqj.de/sneak/netwatch/issues/154)); any yarn used to be
kept. It uses the `node` on `PATH` only when that node has the major version
of `NODE_VERSION` as well as being at least `NODE_MIN_VERSION`, as
`REPO_POLICIES.md` asks; a node 24 was kept before. After installing node or
yarn it looks the tool up through `PATH` again and stops if that is not the
pinned one, as it does for Go, and it prints the node and yarn versions it
uses. Every script that runs yarn on the host runs it through the new
`script/yarn`, which puts `~/.local/bin` first on `PATH`, uses the `node`
there when it passes the same test, and otherwise runs yarn under the pinned
node in nvm; `make build` ran yarn under whatever node was first on `PATH`
- 2026-10-19: report file writes no longer overlap
([#150](https://git.eeqj.de/sneak/netwatch/issues/150)), so the reports of
failed writes are written in the order they arrived. Two writes that failed at