Release Procedures

This document describes the necessary steps for creating a new release of SoCo.

Preparations

  • Assign a version number to the release, according to semantic versioning. Tag names should be prefixed with v.
  • Create a GitHub issue for the new version (eg Release 0.7 #108). This issue can be used to discuss included changes, the version number, etc.
  • Create a milestone for the planned release (if it does not already exist). The milestone can be used to track issues relating to the release. All relevant issues should be assigned to the milestone.
  • Create the release notes in release_notes.html.

Create and Publish

  • Verify that all tests pass.
  • Update the version number in __init__.py (see example).
  • Tag the current commit, eg
git tag -a v0.7 -m 'release version 0.7'
  • Push the tag. This will create a new release on GitHub.
git push --tags
  • Update the GitHub release using the release notes from the documentation. The release notes can be abbreviated if a link to the documentation is provided.
  • Upload the release to PyPI.
python setup.py sdist bdist_wheel upload
  • Enable doc builds for the newly released version on Read the Docs.

Wrap-Up

  • Create the milestone for the next release (with the most likely version number) and close the milestone for the current release.
  • Share the news!