Skip to content

Latest commit

 

History

History
59 lines (44 loc) · 2.37 KB

File metadata and controls

59 lines (44 loc) · 2.37 KB

Releasing Atomadic Forge

One-command release

make release V=x.y.z              # POSIX shells with make
python scripts/release.py x.y.z   # Windows / any shell

Both 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:

  1. Bumps version in pyproject.toml
  2. Regenerates forge_metrics.json and refreshes release-facing metadata
  3. Verifies metrics are current
  4. Runs the full ship-check (lint → test → wire → certify)
  5. Commits and tags
  6. Pushes to GitHub (tag push → auto-creates GitHub Release → auto-publishes to PyPI)

What happens automatically

  • Tag pushpublish-on-tag.yml creates a GitHub Release with changelog notes
  • GitHub Releaserelease.yml builds 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)

Manual steps that remain

  • Forge site: Run make deploy-site after 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

Other useful commands

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 Pages

Under the hood

The 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)