1 Commits
Author SHA1 Message Date
clawbot 4751b36672 Commit yarn 4 in the tree and install with --immutable (closes #149)
check / check (push) Successful in 23s
Follows sneak's ruling at
#149 (comment). This
repository now carries yarn 4.18.1 under .yarn/releases. The
distribution's yarn only starts that file, and that file does the work.
yarn.lock is converted once, and script/bootstrap installs with
--immutable instead of stopping on yarn's major version. Node is the
distribution's newest Node package: nodejs-current on Alpine and
nodejs_latest on nix. Every Dockerfile stage that needs yarn also copies
.yarnrc.yml and .yarn/releases/. The policies and both checklists say
so, with the steps for converting and for a new repository.

Model: opus-5-5
2026-11-04 19:53:23 +00:00
2 changed files with 14 additions and 13 deletions

No files matched your search

+8 -8
View File
@@ -169,12 +169,12 @@ with your task.
from `https://git.eeqj.de/sneak/prompts/raw/branch/main/.prettierrc` from `https://git.eeqj.de/sneak/prompts/raw/branch/main/.prettierrc`
and and
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.prettierignore`). `https://git.eeqj.de/sneak/prompts/raw/branch/main/.prettierignore`).
- [ ] JS: `yarn.lock` is in yarn 4's format. If its second line says - [ ] Any repository with `yarn.lock`: that file is in yarn 4's format. If
`yarn lockfile v1`, convert it with the steps below. Do them in one its second line says `yarn lockfile v1`, convert it with the steps
commit with the re-vendored scripts, because yarn 1 ignores below. Do them in one commit with the re-vendored scripts, because
`--immutable` and exits 0 on a tree with no `.yarnrc.yml`. Run them yarn 1 ignores `--immutable` and exits 0 on a tree with no
with any distribution's node and yarn, and use `yarnpkg` on Debian and `.yarnrc.yml`. Run them with any distribution's node and yarn, and use
Ubuntu. `yarnpkg` on Debian and Ubuntu.
1. Read the version from `yarnPath` in 1. Read the version from `yarnPath` in
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.yarnrc.yml`. `https://git.eeqj.de/sneak/prompts/raw/branch/main/.yarnrc.yml`.
2. Run `yarn set version <version>`. It writes 2. Run `yarn set version <version>`. It writes
@@ -188,7 +188,7 @@ with your task.
`npmMinimalAgeGate` from `.yarnrc.yml`. The conversion wrote them. `npmMinimalAgeGate` from `.yarnrc.yml`. The conversion wrote them.
They allow install scripts, any git repository and packages of any They allow install scripts, any git repository and packages of any
age, which yarn otherwise refuses. age, which yarn otherwise refuses.
6. Name any package that must run its install script in `package.json`, 6. In `package.json`, name any package that must run its install script,
as `"dependenciesMeta": { "<name>": { "built": true } }`, and run as `"dependenciesMeta": { "<name>": { "built": true } }`, and run
`yarn install` again. `yarn install` again.
7. Add `.yarn/*` and `!.yarn/releases` above the secret patterns in 7. Add `.yarn/*` and `!.yarn/releases` above the secret patterns in
@@ -281,7 +281,7 @@ with your task.
the distribution's newest Node package, such as `nodejs-current` on Alpine the distribution's newest Node package, such as `nodejs-current` on Alpine
3.24 3.24
- [ ] yarn's release file is in git under `.yarn/releases/`, written once by - [ ] yarn's release file is in git under `.yarn/releases/`, written once by
`yarn set version` with an exact version `yarn set version` with an exact version (repositories with `yarn.lock`)
- [ ] Using `yarn`, not `npm` (JS projects) - [ ] Using `yarn`, not `npm` (JS projects)
# Directory Structure # Directory Structure
+6 -5
View File
@@ -179,10 +179,11 @@ Template files can be fetched from:
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml` and, `https://git.eeqj.de/sneak/prompts/raw/branch/main/.golangci.yml` and,
in the same commit, set the lint phase digest to the one named in the in the same commit, set the lint phase digest to the one named in the
`.golangci.yml` paragraph of `REPO_POLICIES.md`) `.golangci.yml` paragraph of `REPO_POLICIES.md`)
- [ ] JS: make the first `yarn.lock` with the steps below. - [ ] JS, or any repository that runs prettier through yarn: make the first
`script/bootstrap` installs no yarn until `yarn.lock` exists, so run `yarn.lock` with the steps below. `script/bootstrap` installs no yarn
them with any distribution's node and yarn, such as Alpine's until `yarn.lock` exists, so run them with any distribution's node and
(`apk add nodejs-current yarn`). Use `yarnpkg` on Debian and Ubuntu. yarn, such as Alpine's (`apk add nodejs-current yarn`). Use `yarnpkg`
on Debian and Ubuntu.
1. Read the version from `yarnPath` in 1. Read the version from `yarnPath` in
`https://git.eeqj.de/sneak/prompts/raw/branch/main/.yarnrc.yml`. `https://git.eeqj.de/sneak/prompts/raw/branch/main/.yarnrc.yml`.
2. Run `yarn set version <version>`. It writes 2. Run `yarn set version <version>`. It writes
@@ -296,7 +297,7 @@ are thin shims calling them. Model scripts:
the distribution's newest Node package, such as `nodejs-current` on Alpine the distribution's newest Node package, such as `nodejs-current` on Alpine
3.24 3.24
- [ ] yarn's release file is in git under `.yarn/releases/`, written once by - [ ] yarn's release file is in git under `.yarn/releases/`, written once by
`yarn set version` with an exact version `yarn set version` with an exact version (repositories with `yarn.lock`)
- [ ] No unnecessary files in repo root - [ ] No unnecessary files in repo root
- [ ] All dates written as YYYY-MM-DD - [ ] All dates written as YYYY-MM-DD