make release V=x.y.z # POSIX shells with make
python scripts/release.py x.y.z # Windows / any shellBoth paths run the same pipeline — the Makefile target delegates to
scripts/release.py so behavior is identical and cross-platform.
The repository currently sits at 0.86.0. Leave that version in place until the release lane intentionally bumps it; this docs lane only keeps the surrounding metadata and public surfaces in sync.
That's it. This single command:
- Bumps
versioninpyproject.toml - Regenerates
forge_metrics.jsonand refreshes release-facing metadata - Verifies metrics are current
- Runs the full ship-check (lint → test → wire → certify)
- Commits and tags
- Pushes to GitHub (tag push → auto-creates GitHub Release → auto-publishes to PyPI)
- Tag push →
publish-on-tag.ymlcreates a GitHub Release with changelog notes - GitHub Release →
release.ymlbuilds and publishes to PyPI via Trusted Publishing - CF Workers → auto-deploy on push to main (if
mcp/changed) or on tag push - Cognition Worker → auto-deploy on push to main (if
cognition/changed)
- Forge site: Run
make deploy-siteafter a release (metrics propagation updates the site source, but deploy is still manual because the site repo isn't on GitHub) - CHANGELOG.md: Update before running
make release
make ship-check # Full pre-commit validation
make ci-local # Run the full CI pipeline locally
make uptime # Health check all Atomadic services
make metrics-check # Verify forge_metrics.json is current
make deploy-site # Build & deploy forge-site to Cloudflare PagesThe Makefile wraps the same steps that were previously documented here as manual:
| Old manual step | Now automated by |
|---|---|
Edit pyproject.toml version |
make release V=x.y.z (sed) |
python scripts/update_metrics.py --propagate |
make release step 2 |
python scripts/update_metrics.py --check |
make release step 3 + CI (metrics job) |
git add && git tag && git push --tags |
make release step 5-6 |
| Create GitHub Release manually | publish-on-tag.yml (auto on tag push) |
| Deploy site manually | make deploy-site (one command) |