Releasing¶
Use this checklist for every PyPI release.
Before Tagging¶
- [ ] version in
pyproject.tomlis updated - [ ]
CHANGELOG.mdhas a release section - [ ] README examples match the current public API
- [ ] docs build locally with
mkdocs build --strict - [ ] tests pass with
pytest - [ ] package builds with
python -m build - [ ] PyPI Trusted Publisher is configured for
.github/workflows/publish.yml
Local Smoke Test¶
python -m build
python -m venv .venv-smoke
.venv-smoke\Scripts\python -m pip install dist\monomech-0.15.1-py3-none-any.whl
.venv-smoke\Scripts\python -c "import monomech as mm; print(mm.list_builtin_osim_models())"
Tag the Release¶
Watch GitHub Actions¶
Confirm:
- the tag-triggered
Publish distributionsrun starts Build distributionssucceedsPublish to PyPIsucceeds
After Publishing¶
python -m venv .venv-pypi-check
.venv-pypi-check\Scripts\python -m pip install monomech==0.15.1
.venv-pypi-check\Scripts\python -c "import monomech as mm; print(mm.list_builtin_osim_models())"
Then create a GitHub Release using the notes from CHANGELOG.md.
Hotfixes¶
For release-only fixes:
- make the smallest safe change
- bump the patch version
- update the changelog
- run tests and build locally
- push
main - push the new version tag