docs / releases
Releases & deployment
Release cadence, the publishing pipeline, and the maintainer checklist.
Release cadence and deployment
This document is for Recall maintainers.
Normal changes merge to main without publishing immediately. Use conventional commits (feat:, fix:, and similar prefixes). When a release is ready, manually run the Release Please workflow. It opens or updates a reviewable release pull request with the next version, changelog, and synchronized package.json and pyproject.toml updates.
Merge the release pull request when it is time to publish, typically after a small batch of user-visible changes or immediately for an urgent fix.
Publishing
Merging the release pull request creates a GitHub release and tag. The npm publish workflow runs only for that release tag, or through workflow_dispatch against an existing tag. It:
- Resolves the release tag to one immutable commit.
- Runs blocking 10,000- and 100,000-session retrieval evaluations against that commit.
- Runs tests, type checking, and package inspection.
- Publishes
recall-pifrom the same checked-out commit. - Reads the package back from npm.
- Verifies the version, integrity, tarball URL, and required files.
The GitHub release exists before this workflow starts, but npm publication is
blocked when retrieval correctness, artifact generation, or broad catastrophic
performance limits fail. Candidate runs read benchmarks/retrieval/baseline.json
and never update it. Baseline changes must be made in a separate reviewed pull
request and retain immutable source-tag and source-commit provenance.
Maintainer checklist
- Merge conventional commits normally.
- Manually run the Release Please workflow when ready to prepare a release pull request.
- Review and merge the generated pull request when ready to ship.
- Watch the Publish npm package workflow and inspect its retrieval artifact.
- Confirm that the retrieval job and npm read-back verification succeed.
- For urgent recovery, rerun
workflow_dispatchagainst an existing release tag instead of publishing from a laptop; the retrieval gate cannot be weakened by dispatch inputs.
npm authentication
Configure npm trusted publishing for recall-pi to trust this repository’s publish-npm.yml workflow. If OIDC trusted publishing is unavailable, use a granular npm automation token only as a temporary fallback and rotate it after the recovery publish.