Skip to content

Preparing a Release

Orion Cohen edited this page Aug 17, 2021 · 7 revisions

Release management

  • We use semantic versioning MAJOR.MINOR.PATCH (i.e., briefly, major revision changes whenever the API changes in backwards-incompatible manner, MINOR changes for new features, PATCH changes for fixes that correct functionality; as long as MAJOR == 0, we can break the API with increasing MINOR.)

  • Releases are cut from the main branch and tagged with MAJOR.MINOR.PATCH (note: the release tag determines the tag because we use versioneer, which obtains the release number from the git tag). We do from the master branch:

    i. git tag <major>.<minor>.<patch>

    ii. python setup.py sdist bdist_wheel

    iii. check with twine check dist/*

    iv. twine upload dist/*

  • Note: the tags need to be pushed to GitHub with git push --tags. (You can add text to the releases on GitHub.)

  • Packages are published from the tagged (pip package, conda package (TODO), tar balls on GitHub)

  • Docs are managed on ReadTheDocs and automatically update.

Future enhancements

  • conda release
Clone this wiki locally