We using bumpversion to manage the releases.

Install bumpversion using pip:

$ pip install bumpversion

Run a dry run to make sure all is looking good:

$ bumpversion --dry-run --verbose $CURRENT_VERSION --new-version=$NEW_VERSION

Perform the actual release:

$ bumpversion $CURRENT_VERSION --new-version=$NEW_VERSION

Push the changes and actual tag:

$ git push

$ git push --tags origin

Then publish the archive on PyPI:

$ make release

Note, it requires valid server login in ~/.pypirc