The release process is not documented. As far as I understand, this is the workflow at the moment:
- Prepare the code you want released and merge it into main.
- Create and push a Git tag in the form vX.Y.Z.
- GitHub Actions builds the wheel with cibuildwheel.
- The workflow uploads the built wheel to PyPI automatically.
What I think is missing here are two things: the develop branch, where to push all the work before the release and run the tests, and a changelog. I normally have a slightly different release workflow:
- Merge feature work into develop.
- Collect release notes in CHANGELOG.md under ## [Unreleased].
- Run bash tools/release.sh on develop.
- The script bumps the version, moves changelog notes into a dated release section, creates a release commit and tag, pushes both, opens a GitHub release, and creates a PR from develop to main.
- main is updated only through that promotion PR.
But I like the automatic release from git that you set up, so I would propose a hybrid workflow:
- Make
develop the place where release notes are prepared and the version is bumped.
- Keep the automatic CI build and PyPI publish from your workflow.
- Make the release script responsible only for:
- moving changelog entries,
- bumping the version,
- creating the tag,
- opening the PR to main
The release process is not documented. As far as I understand, this is the workflow at the moment:
What I think is missing here are two things: the develop branch, where to push all the work before the release and run the tests, and a changelog. I normally have a slightly different release workflow:
But I like the automatic release from git that you set up, so I would propose a hybrid workflow:
developthe place where release notes are prepared and the version is bumped.