Bootstrap keeps yarn at its pinned version and node at its pinned major (closes #154)
check / check (push) Waiting to run
check / check (push) Waiting to run
script/bootstrap kept any yarn 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 installs that version. The node on PATH is used only when it has the pinned major version, as REPO_POLICIES.md asks, and is at least NODE_MIN_VERSION. After installing either, bootstrap looks the tool up through PATH again, stops, naming the path, if that one fails the same check, and prints the version it uses, as for Go. Every other host script that runs yarn now goes through the new script/yarn, which uses the first node on PATH, ~/.local/bin first, when it passes the same test, and otherwise the pinned node in nvm. Model: opus-5-5
This commit was merged in pull request #176.
This commit is contained in:
@@ -41,11 +41,13 @@ The scripts cover both the frontend and the Go backend, so `make check` fails if
|
||||
either one is broken. We provide:
|
||||
|
||||
- `script/bootstrap` — install all dependencies (the pinned node via nvm unless
|
||||
one new enough for the frontend's dependencies is installed, yarn via
|
||||
corepack, `yarn install --frozen-lockfile`, Go `GO_VERSION` unless the `go` on
|
||||
`PATH` is exactly that version, and the Go modules), linking what it installs
|
||||
itself into `~/.local/bin`, which has to be on `PATH`. It installs no Go
|
||||
linter and not Docker: `make test` and `make lint` run in Docker
|
||||
the `node` on `PATH` has the pinned major version and is new enough for the
|
||||
frontend's dependencies, yarn `YARN_VERSION` via corepack, or npm where there
|
||||
is no corepack, unless the `yarn` on `PATH` is exactly that version,
|
||||
`yarn install --frozen-lockfile`, Go `GO_VERSION` unless the `go` on `PATH` is
|
||||
exactly that version, and the Go modules), linking what it installs itself
|
||||
into `~/.local/bin`, which has to be on `PATH`. It installs no Go linter and
|
||||
not Docker: `make test` and `make lint` run in Docker
|
||||
- `script/setup` — make a fresh clone ready for development: bootstrap plus the
|
||||
git pre-commit hook
|
||||
- `script/dev` — run the Vite dev server, which proxies `/api` to a locally
|
||||
@@ -58,6 +60,12 @@ either one is broken. We provide:
|
||||
defaults (see [Settings](#settings))
|
||||
- `script/clean` — remove what `script/build` writes
|
||||
- `script/projectname` — print the project name (used for the Docker image tag)
|
||||
- `script/yarn` — run yarn with the given arguments under the node
|
||||
`script/bootstrap` would use: with `~/.local/bin` first on `PATH`, the first
|
||||
`node` on that `PATH` when it has the pinned major version and is new enough
|
||||
for the frontend's dependencies, and otherwise the pinned node in nvm. Every
|
||||
script that runs yarn on the host runs it through this one, except
|
||||
`script/bootstrap`, which picks its own node and yarn
|
||||
- `script/test` — build the `test` phase of `Dockerfile`, writing no image: the
|
||||
frontend's unit tests in its `frontend-test` stage, and the backend's Go tests
|
||||
with the race detector and coverage. The frontend's production build is left
|
||||
|
||||
Reference in New Issue
Block a user