- Review open issues and PRs to see if any can easily be fixed, closed, or merged.
- Bump copyright year in
README.md, if necessary. - Consider whether any dependencies need to be updated.
- Review
CHANGELOG.mdfor completeness and correctness. Update its release date to today. - Run
./dev-bin/release.sh. This will:- Validate you're not on the main branch
- Validate your branch is up to date with origin/main
- Extract the version and date from
CHANGELOG.md - Update the version in
package.json - Build and test
- Commit changes and push
- Create a GitHub release (which triggers the npm publish workflow)
- Merge the release PR after the workflow succeeds.
- Verify the release on npm.
Note: Publishing is done via GitHub Actions using npm Trusted Publishing
(OIDC). Manual npm publish is not supported.
Dependencies are managed with pnpm, pinned in mise.toml. Run mise install
to get it, then pnpm install. Do not use npm or corepack: the repo is a pnpm
workspace (e2e/js and e2e/ts are members) with a single root
pnpm-lock.yaml, and npm cannot resolve their workspace:* dependency.
Publishing is the one exception. release.yml calls npm publish --provenance.
pnpm 11 supports OIDC trusted publishing, but that change will be made in a
future issue.
Linux on x64 and arm64, Apple Silicon macOS on arm64, and Windows on x64.
Intel macOS and Windows ARM64 are not supported. Intel macOS in particular
cannot be: pnpm 11.0.5 and later ship no darwin-x64 binary, so there is
nothing for mise to install. mise.toml restricts lockfile_platforms
accordingly, but note that mise lock always locks whichever platform it runs
on -- so if you regenerate mise.lock, verify grep -c source-maps mise.lock
prints 0 before committing.
- Run
mkdir -p local && ./bin/install-precious localto set up Precious locally - Run
./git/setup.shto set up pre-commit hook that invokes Precious