Release Process
This page describes how PyCauset is released and versioned.
Automated releases
The primary way to release a new version is by pushing to the main branch.
- Commit your changes: ensure your work is committed.
- Push to main:
- Workflow trigger: the GitHub Action
Publish to PyPIwill start automatically.- Bump version: calculates the next patch version (e.g.,
0.2.4->0.2.5). - Tag: creates a new git tag and a GitHub Release using your commit message as the notes.
- Build & publish: builds wheels for Windows, macOS, and Linux, and publishes them to PyPI.
- Bump version: calculates the next patch version (e.g.,
Manual releases
If you need to bump a minor/major version or set a specific version number, you can use the helper script or git tags directly.
Using the helper script (release.ps1)
Bump minor version:
Bump major version:
Set specific version:
Using git tags
CI/CD workflow details
The workflow is defined in .github/workflows/publish.yml.
- Triggers:
pushtomain: triggers auto-bump (patch) and releasepushof tags (v*): triggers build and release for that tagworkflow_dispatch: manual trigger from GitHub Actions UI- Versioning: uses
setuptools_scmto determine the package version from git tags - Build system: uses
cibuildwheelto build binary wheels for multiple platforms - Publishing: uses PyPI Trusted Publishing (OIDC) to upload artifacts