Release checklist
1) Prepare and tag
- Ensure CI is green on main.
- Confirm version bump and changelog updates.
- Create and push the tag:
bash
git tag -a vX.Y.Z -m "SMALL vX.Y.Z"
git push origin vX.Y.Z
2) Verify GitHub release assets
- Confirm release has:
small-vX.Y.Z-darwin-amd64.tar.gzsmall-vX.Y.Z-darwin-arm64.tar.gzsmall-vX.Y.Z-linux-amd64.tar.gzsmall-vX.Y.Z-linux-arm64.tar.gzsmall-vX.Y.Z-windows-amd64.zipsmall-vX.Y.Z-windows-arm64.zipchecksums.txt
- Verify checksum file includes each platform archive.
3) Verify installer paths
- Curl installer:
bash
curl -fsSL https://smallprotocol.dev/install.sh | bash -s -- --version vX.Y.Z --dir /tmp/smallbin
PATH=/tmp/smallbin:$PATH small version
- npm package:
bash
npm i -g @small-protocol/small@X.Y.Z
small version
4) npm publish (OIDC-only)
- Set
packages/npm/package.jsonversion toX.Y.Z. - Ensure tag is
vX.Y.Z. - Configure npm Trusted Publishing (OIDC) for
@small-protocol/smallwith this GitHub repo/workflow as trusted publisher. - Publish workflow must run with Node 24 and npm 11.10.1.
- Publish with provenance:
bash
cd packages/npm
npm publish --provenance --access public