This document outlines the release process for publishing the openmed package to PyPI.
OpenMed versioning is dynamic and stored in:
openmed/__about__.py(__version__ = "X.Y.Z")
Do not edit pyproject.toml for version bumps.
# Bump only
make bump-patch
make bump-minor
make bump-major
# Build only
make build
# Full local publish (manual)
make releasepython3 scripts/release/release.py patch
python3 scripts/release/release.py minor
python3 scripts/release/release.py majorThe bump script updates only openmed/__about__.py.
- Update changelog and commit.
- Run the release preflight for the exact tag you plan to publish:
VERSION=$(python3 -c "from openmed import __version__; print(__version__)")
python3 scripts/release/check_release_version.py --version "$VERSION"This confirms that openmed.__version__, the top changelog entry, public docs, and Swift app versions all agree, and
that the release tag is not already used locally or on origin.
- Push the matching release tag:
git tag "v$VERSION"
git push origin "v$VERSION".github/workflows/publish.ymlbuilds and publishes to PyPI.
python3 -m build
hatch publish- Keep
CHANGELOG.mdaligned with released tags. - Use
uv run mkdocs build --strictbefore tagging to keep docs links healthy. - Prefer CI publishing over local publish for traceability.