This document describes how to release the openlifu Python package. Publishing
a GitHub release triggers the workflow that publishes the package to PyPI.
Use git tags of the form vX.Y.Z. A new release line begins at vX.Y.0, and
patch releases increment Z.
The package version is derived from git metadata by hatch-vcs; do not maintain
a separate hard-coded package version.
main is the development branch. Create release/X.Y for each release line and
tag all releases in that line from the branch. New feature work continues on
main.
-
If sample database compatibility changed, publish or identify the matching
openlifu-sample-databasetag, update the openlifu-python README, and note the change in the release notes. -
Confirm
mainis ready for release and CI is passing. -
Create and push the release branch:
git checkout main git pull git checkout -b release/X.Y git push -u origin release/X.Y
-
Tag the release from the release branch:
git tag vX.Y.0 git push origin vX.Y.0
-
Draft and publish the GitHub release from
vX.Y.0.
-
Merge the fix to
main, then cherry-pick it to the release branch. A fix specific to the released line may be committed directly to that branch.git checkout release/X.Y git pull git cherry-pick <fix-commit-sha> git push origin release/X.Y
-
Confirm the release branch is ready and CI is passing.
-
Tag the next patch release:
git tag vX.Y.N git push origin vX.Y.N
-
Draft and publish the GitHub release from
vX.Y.N.