CPA uses release-prep PRs + GitHub Releases + tags with hatchling package versions.
Run the Prepare release PR workflow manually with:
version: the next CLI/core version, for example0.1.1notes: markdown release notes to prepend toCHANGELOG.md
The workflow runs scripts/prepare_release.py, opens a PR, and updates:
packages/create-python-app-core/pyproject.tomlpackages/create-awesome-python-app/pyproject.tomlcreate-python-app-coredependency pin in the CLI package- both runtime
__version__files CHANGELOG.md
Local equivalent:
uv run python scripts/prepare_release.py 0.1.1 --notes "- Fix release automation."After the release-prep PR is merged:
- Tag
create-awesome-python-app@X.Y.Z - Push the tag
publish.ymlbuilds and publishes both packages to PyPI via OIDC (see #58)- GitHub Release notes are extracted from the matching
CHANGELOG.mdsection - After Release succeeds, Docker / Homebrew / AUR workflows run
git tag create-awesome-python-app@X.Y.Z
git push origin create-awesome-python-app@X.Y.ZBefore closing the release issue, confirm PyPI, GitHub Release, Docker,
Homebrew, AUR, and smoke-distribution.yml.