Releasing python-troveclient is automated by Openstack Infra. There are a few Jenkins jobs that are set up on Openstack Jenkins that currently handle all aspects related to releasing a version.
There are two places the packages can end up.
NOTE: tags can only be pushed by members of 'trove-core'
A pre-release candidate is a version that you don't want pushed to Pypi, but may want to make available as a package. These packages should go to tarballs.openstack.org.
When a tag is pushed to gerrit, that contains a non-numeric suffix, such as 'alpha1', 'beta4', 'rc', etc., a tarball is uploaded to tarballs.o.o.
(Regex to match: ([0-9]+\.)+[0-9]*(alpha|beta|candidate|rc|a|b|c|r|g)[0-9]*$)
Releasing a new version of python-troveclient to PyPi
To release a new version to PyPi, a similar process should be followed. When a git tag does not contain a non-numeric suffix, '1.2.0', that package is uploaded to pypi. (Regex to match: ([0-9]+\.)+[0-9]+$)
1. Add release tag, for example, “1.0.5” with an appropriate description; it should be signed by your personal gpg key:
git tag -s 1.0.5
2. Then check that tag is in the repo: “git tag -v 1.0.5”, you should see something like:
object <hash> type commit tag 1.0.5 tagger Nikhil Manchanda <SlickNik@gmail.com>
3. Push the tag to the gerrit git repo. (NB: You cannot do this unless you are on the trove-core team)
git push <gerrit-remote> 1.0.5
4. You should now see your pypi packaging job on the zuul page at http://status.openstack.org/zuul
5. Once the job is completed, check the following links to ensure that the versions are correct:
6. Go to the corresponding series in the Launchpad Project - https://launchpad.net/python-troveclient/1.0.5 and release version using “Release now” button.
7. Change the status of all troveclient bugs addressed by this release from Fix Commited to Fix Released
8. Upload tarball to released launchpad milestone - https://launchpad.net/python-troveclient/1.0.x/1.0.5 using the “Add download file” button
9. Double check that the pypi release works (pip install python-troveclient)
10. Send email to the community, if needed.