OSS Release Checklist
Use this checklist before tagging a release or publishing to PyPI.
Pre-release
- Tests passing —
uv run python -m pytest tests/ -v(orpytest tests/ -v) completes with no failures. - Examples working — Run at least:
hivemind run "Summarize swarm intelligence in one paragraph."hivemind research .orhivemind analyze .(if examples dir exists)uv run python examples/experiments/parameter_sweep.py --params '{"lr":[0.01]}'
- Docs complete — All files under
docs/are present and up to date (introduction, architecture, swarm_runtime, tools, memory_system, providers, cli, tui, examples, development, contributing, faq, release_checklist). - CLI working —
hivemind run "task",hivemind tui,hivemind research path,hivemind analyze path,hivemind memory --limit 5behave as documented. - TUI working —
hivemind tuistarts; prompt + run + dashboard (d) work; no regressions.
Packaging
- PyPI packaging configured —
pyproject.tomlhas correctname(e.g.hivemind-ai),version,requires-python, dependencies, and[project.scripts]forhivemind. - Version bumped — Set or bump
versioninpyproject.tomlfor the release (e.g.0.1.1).
GitHub release steps
- Commit all changes and push to the default branch.
- Create a new GitHub release with tag
vX.Y.Z(e.g.v0.1.1) and release notes (e.g. fromCHANGELOG.md). - Trusted Publishing (PyPI): Add this repo as a Trusted Publisher on PyPI (project hivemind-ai, workflow pypi-publish.yml). The publisher will show as "Pending" until the first successful run; publishing a release triggers the workflow and completes verification.
- The Publish to PyPI workflow runs on
release: publishedand uploads the package (no API token needed when Trusted Publishing is used).
Post-release
- Verify the package is installable:
pip install hivemind-aiandhivemind --help. - Update
CHANGELOG.mdwith the release date and any last-minute notes. - Website release notes — Copy the new release section from
CHANGELOG.mdintowebsite/docs/release_notes.md(move Unreleased into[X.Y.Z]and update the hero pill version on the home page inwebsite/src/pages/index.jsif needed).