- Add make agents-sync-package and release-check parity gate - Add tests/test_packaged_agents_parity.py; sync packaged agents with agents/ - Update install docs (HELLO_WORLD, CLI_CHEAT_SHEET, AGENT_DISTRIBUTION) - Expand PACKAGE_RELEASE.md secrets setup and pre-tag checklist - Add flake8 to Gitea CI; CHANGELOG Unreleased for v1.2.0 - Expand INTEGRATION_PATTERNS activity-core handoff checklist
2.9 KiB
Python Package Release
kaizen-agentic publishes as the kaizen-agentic Python package on the Coulomb
Gitea PyPI registry. Public pypi.org distribution is optional
and not required for ecosystem use.
Install (consumers)
Dependencies such as pyyaml resolve from public PyPI. Use Gitea as an extra index:
export GITEA_PACKAGE_USER=<gitea-user>
export GITEA_PACKAGE_TOKEN=<package-token>
pip install kaizen-agentic \
--extra-index-url "https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/"
Global CLI via pipx:
pipx install kaizen-agentic \
--pip-args="--extra-index-url https://${GITEA_PACKAGE_USER}:${GITEA_PACKAGE_TOKEN}@gitea.coulomb.social/api/packages/coulomb/pypi/simple/"
Do not commit tokenized index URLs. Inject credentials via environment variables or CI secrets.
Local Release
Build and validate artifacts:
make package-check
Publish to the Coulomb organization registry:
TWINE_USERNAME=<gitea-user> \
TWINE_PASSWORD=<package-token> \
make publish-gitea
Package upload endpoint:
https://gitea.coulomb.social/api/packages/coulomb/pypi
Consumer simple index:
https://gitea.coulomb.social/api/packages/coulomb/pypi/simple/
Gitea repository secrets (one-time)
Configure in Gitea: Repository → Settings → Actions → Secrets.
| Secret | Value |
|---|---|
GITEA_PACKAGE_USER |
Gitea username with package upload permission (e.g. tegwick) |
GITEA_PACKAGE_TOKEN |
Gitea API token with write:package scope |
The publish workflow fails at the upload step when either secret is missing or invalid. Do not commit tokens to the repository.
Verify secrets without cutting a release:
- Open Actions → Publish Python package → Run workflow (
workflow_dispatch) - Confirm the run completes and
twine uploadsucceeds - Optional:
pip install kaizen-agentic==<version> --extra-index-url ...
Pre-tag release checklist
Before git tag vX.Y.Z && git push origin vX.Y.Z:
make release-checkpasses (tests, flake8, version consistency, agent parity)make package-checkbuilds and validatesdist/*CHANGELOG.mdhas a dated[X.Y.Z]section matchingpyproject.tomlGITEA_PACKAGE_USERandGITEA_PACKAGE_TOKENsecrets are set- Publish workflow smoke-tested via
workflow_dispatch(or prior tag release) make agents-sync-packagerun ifagents/changed since last release
Gitea Actions Release
The .gitea/workflows/publish-python-package.yml workflow publishes on tags
matching v*.
Example:
git tag v1.2.0
git push origin v1.2.0
Public PyPI (optional)
When pypi.org credentials are configured (~/.pypirc or TWINE_PASSWORD API
token with TWINE_USERNAME=__token__):
make release-publish
python -m twine upload dist/*