Releasing¶
Supriya is published to PyPI at https://pypi.org/project/supriya/.
Versioning scheme¶
Supriya uses a YY.MbX
version scheme, e.g. 25.6b1
, where YY
is the
last two digits of the current year (making the strong assumption that she
won’t make it past the end of the 21st century), M
is the ordinal of the
current month and X
is the number of previous releases that month.
I don’t use semantic versioning because of the cognitive overhead of determining what sorts of changes count as breaking, patches, etc.
The version information is stored in supriya/_version.py as a tuple so that it’s available by Supriya after installation, and by setup.py during installation (but without needed to import Supriya directly).
Drafting releases¶
To cut a new release run the Release
GitHub Actions pipeline at
https://github.com/supriya-project/supriya/actions/workflows/release.yml.
This will bump the current version number in supriya/_version.py and cut a draft of a new release in GitHub.
Publishing releases¶
Once a draft release in GitHub has been published, the publishing pipeline will automatically kickoff at https://github.com/supriya-project/supriya/actions/workflows/publish.yml.
This pipeline builds the Sphinx docs, build Supriya’s wheels and source distributions, publishes the distributions to PyPI and then syncs the newly built documentation with GitHub pages.