How we do releases

Update the release notes and roadmap

Update the Vumi Roadmap and Release Notes as necessary.

Create a release branch

Select a release series number and initial version number:

$ SERIES=0.1.x
$ VER=0.1.0a

Start by creating the release branch (usually from develop but you can also specify a commit to start from):

$ git flow release start $SERIES [<start point>]

Set the version in the release branch:

$ ./utils/ $VER
$ git add docs/ vumi/
$ git commit -m "Set initial version for series $SERIES"

Set the version number in the develop branch if necessary.

Push your changes to Github:

$ git push origin release/$SERIES

Tag the release

Select a series to release from and version number:

$ SERIES=0.1.x
$ VER=0.1.0
$ NEXTVER=0.1.1a

Bump version immediately prior to release and tag the commit:

$ git checkout release/$SERIES
$ ./utils/ $VER
$ git add docs/ vumi/
$ git commit -m "Version $VER"
$ git tag vumi-$VER

Bump version number on release branch:

$ ./utils/ $NEXTVER
$ git add docs/ vumi/
$ git commit -m "Bump release series version."

Merge to master if this is a tag off the latest release series:

$ git checkout master
$ git merge vumi-$VER

Push your changes to Github (don’t forget to push the new tag):

$ git push
$ git push origin refs/tags/vumi-$VER

Release to PyPI

Select the version number:

$ VER=0.1.0
$ git checkout vumi-$VER

Register the release with PyPI:

$ python register

Build the source distribution package:

$ python sdist

Upload the release to PyPI:

$ twine-upload dist/vumi-$VER.tar.gz

Declare victory.