Release process¶
Cut a release¶
- Bump
versioninpyproject.toml. - Update
CHANGELOG.md— move the[Unreleased]section into a dated[x.y.z]header. - Commit:
chore(release): v<x.y.z>. - Tag and push:
What the tag triggers¶
.github/workflows/release.yml runs on every v*.*.* tag:
- Build wheel + sdist on
ubuntu-latest. - Build a desktop bundle on
ubuntu-latest,macos-latest,windows-latestusingpackaging/swissrivernetwork.spec. - Upload all artefacts to the GitHub release — one
.whl, one sdist, three desktop bundles.
Follow-ups you do by hand¶
- Publish the wheel to PyPI (
uv run twine upload dist/*.whl) once the project has a token. - Update the Hugging Face Space:
git push hf main:main. - Mint a Zenodo DOI and paste it into
CITATION.cff. - Deploy the docs version:
uv run mike deploy --push v<x.y.z> latest.