script/fmt and script/fmt-check now stop before running yarn when node_modules/.bin/prettier is missing, and print a sentence telling the user to run script/bootstrap. Without that file, yarn run fmt falls back to whatever prettier is on the PATH. That can be a different version from the one yarn.lock pins, and it rewrites files the pinned one leaves alone: the host's 3.9.6 against the pinned 3.8.1 flags script/lib/icons.js. After script/bootstrap both scripts behave as before. The README Entrypoints entries for the two scripts say so.
What the diff does not show:
node_modules/.bin is the directory yarn run puts first on the PATH, so the check covers exactly the case where yarn would fall back. -x follows the link, so a link left behind after node_modules/prettier was deleted also counts as missing.
script/cibuild already runs script/bootstrap before script/check, so CI and the pre-commit hook in a bootstrapped clone are unaffected. The Dockerfile's lint phase calls prettier itself and does not go through these scripts.
Judgement call: the check is for presence only. A node_modules/ left over from an older yarn.lock still runs whatever prettier it holds.
Model: opus-5-5
Implements https://git.eeqj.de/sneak/AutistMask/issues/509.
`script/fmt` and `script/fmt-check` now stop before running yarn when `node_modules/.bin/prettier` is missing, and print a sentence telling the user to run `script/bootstrap`. Without that file, `yarn run fmt` falls back to whatever `prettier` is on the `PATH`. That can be a different version from the one `yarn.lock` pins, and it rewrites files the pinned one leaves alone: the host's 3.9.6 against the pinned 3.8.1 flags `script/lib/icons.js`. After `script/bootstrap` both scripts behave as before. The README Entrypoints entries for the two scripts say so.
What the diff does not show:
- `node_modules/.bin` is the directory `yarn run` puts first on the `PATH`, so the check covers exactly the case where yarn would fall back. `-x` follows the link, so a link left behind after `node_modules/prettier` was deleted also counts as missing.
- `script/cibuild` already runs `script/bootstrap` before `script/check`, so CI and the pre-commit hook in a bootstrapped clone are unaffected. The Dockerfile's lint phase calls `prettier` itself and does not go through these scripts.
Judgement call: the check is for presence only. A `node_modules/` left over from an older `yarn.lock` still runs whatever prettier it holds.
Model: opus-5-5
In a clone where script/bootstrap has not run, node_modules/ is empty and
yarn falls back to whatever prettier is on the PATH, which can format files
differently from the version yarn.lock pins. script/fmt and script/fmt-check
now stop with a message telling the user to run script/bootstrap when
node_modules/.bin/prettier is missing. After bootstrap they behave as
before. The README Entrypoints entries say so.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Implements #509.
script/fmtandscript/fmt-checknow stop before running yarn whennode_modules/.bin/prettieris missing, and print a sentence telling the user to runscript/bootstrap. Without that file,yarn run fmtfalls back to whateverprettieris on thePATH. That can be a different version from the oneyarn.lockpins, and it rewrites files the pinned one leaves alone: the host's 3.9.6 against the pinned 3.8.1 flagsscript/lib/icons.js. Afterscript/bootstrapboth scripts behave as before. The README Entrypoints entries for the two scripts say so.What the diff does not show:
node_modules/.binis the directoryyarn runputs first on thePATH, so the check covers exactly the case where yarn would fall back.-xfollows the link, so a link left behind afternode_modules/prettierwas deleted also counts as missing.script/cibuildalready runsscript/bootstrapbeforescript/check, so CI and the pre-commit hook in a bootstrapped clone are unaffected. The Dockerfile's lint phase callsprettieritself and does not go through these scripts.Judgement call: the check is for presence only. A
node_modules/left over from an olderyarn.lockstill runs whatever prettier it holds.Model: opus-5-5
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.