Skip to content

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.

Steps

  1. Merge develop into main when the branch is ready and CI is green.
  2. From main, create and push a tag (replace the version as needed):
git tag v0.0.33
git push origin v0.0.33
  1. Wait for GitHub Actions to finish. Then:

  2. The package is available on PyPI (e.g. pip install pystator==0.0.33).

  3. A GitHub Release exists for that tag (with changelog notes when generated by the pipeline).

You normally do not edit pyproject.toml for version: setuptools-scm derives the version from the tag at build time.

Release script

To run the scripted pipeline (commit / push / merge / tag):

./scripts/release.sh release

Verify

  1. Actions: github.com/optophi/pystator/actions
  2. PyPI: pypi.org/project/pystator/
  3. Install: pip install pystator==0.0.33

Notes

  • Tag format: v plus semantic version (e.g. v0.0.33). The build strips the leading v for the package version where required.
  • Develop is for integration; main is the release line.