Release workflow¶
Releases are driven by version tags on main. Pushing a tag runs tests, builds the package, publishes to PyPI, and creates a GitHub Release.
One-time release steps¶
- Merge develop into main and ensure CI is green.
- From main, create and push a tag (replace
0.0.33with your version):
- The workflow runs automatically. When it finishes:
- The package is on PyPI (e.g.
pip install pycharter==0.0.33). - A GitHub Release exists for that tag.
No need to edit pyproject.toml for the version unless you want the repo’s version to match the release.
Using the release script¶
To bump the version in the repo, commit, tag, and push in one go:
See bin/README.md for options (e.g. --dry-run, --no-release). The script creates the tag; the workflow still uses the tag as the source of truth for the version published to PyPI.
Verify¶
After the workflow completes:
- Actions:
https://github.com/$OWNER/pycharter/actions - PyPI: https://pypi.org/project/pycharter/
- Install:
pip install pycharter==0.0.33
Notes¶
- Tag format:
vplus semantic version (e.g.v0.0.33). The workflow strips thevfor the package version. - Releasing is from main only. Develop is for integration; main is for releases.