Releasing¶
Every package release tracks an upstream ACP schema tag from agentclientprotocol/agent-client-protocol. Follow this checklist to stay in lockstep.
Prep checklist¶
- Choose the schema tag (e.g.
v0.4.5) and regenerate artifacts:bash ACP_SCHEMA_VERSION=v0.4.5 make gen-allThis refreshesschema/and the generatedsrc/acp/schema.py. - Bump the SDK version in
pyproject.toml(and regenerateuv.lockif deps moved). - Run the standard gates:
bash make check # Ruff format/lint, type analysis, dep hygiene make test # pytest + doctests - Refresh docs + examples so user-facing flows (e.g. Gemini bridge) reflect behaviour in the new schema.
Commit & review¶
- Keep the diff tight: regenerated schema files, version bumps, doc updates, and any required fixture refresh (goldens, RPC tests, etc.).
- Use a Conventional Commit such as
release: v0.4.5. - In the PR description, capture:
- The ACP schema tag you targeted.
- Output from
make check/make test(and optional Gemini tests if you ran them). - Behavioural or API highlights that reviewers should focus on.
Publish via GitHub Release¶
Releases are automated by on-release-main.yml once the PR lands on main.
- Draft a GitHub Release for the new tag (the UI creates the tag if missing).
- Publishing the release triggers the workflow, which:
- Syncs the tag back into
pyproject.toml. - Builds and uploads to PyPI via
uv publishusingPYPI_TOKEN. - Deploys updated docs with
mkdocs gh-deploy.
No local build/publish steps are needed—just provide a clear release summary (highlights, compatibility notes, migration tips).
Extra tips¶
- Breaking schema bumps often mean updating
tests/test_golden.py,tests/test_rpc.py, and any examples touched by new fields. - Use
make cleanif you need a fresh slate before re-runningmake gen-all. - When available, run the Gemini smoke test (
ACP_ENABLE_GEMINI_TESTS=1, setACP_GEMINI_BIN) to catch regressions early.