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/bump-version.sh $VER
$ git add setup.py docs/conf.py vumi/__init__.py
$ 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/bump-version.sh $VER
$ git add setup.py docs/conf.py vumi/__init__.py
$ git commit -m "Version $VER"
$ git tag vumi-$VER
Bump version number on release branch:
$ ./utils/bump-version.sh $NEXTVER
$ git add setup.py docs/conf.py vumi/__init__.py
$ 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 setup.py register
Build the source distribution package:
$ python setup.py sdist
Upload the release to PyPI:
$ twine-upload dist/vumi-$VER.tar.gz
Declare victory.