Jump to: navigation, search

Difference between revisions of "Trove/release-python-troveclient"

(Created page with "== Releasing python-troveclient == Releasing python-troveclient is automated by Openstack Infra. There are a few Jenkins jobs that are set up on Openstack Jenkins that curren...")
 
(Releasing python-troveclient)
Line 5: Line 5:
 
# pypi.python.org
 
# pypi.python.org
 
# tarballs.openstack.org
 
# tarballs.openstack.org
 
The release process is based on git tags that satisfy the following pattern:
 
''^refs/tags/([0-9]+\.)+[0-9]*(alpha|beta|candidate|rc|a|b|c|r|g)[0-9]*$''
 
  
 
NOTE: tags can only be pushed by members of 'trove-core'
 
NOTE: tags can only be pushed by members of 'trove-core'
Line 19: Line 16:
 
(Regex to match: ([0-9]+\.)+[0-9]*(alpha|beta|candidate|rc|a|b|c|r|g)[0-9]*$)
 
(Regex to match: ([0-9]+\.)+[0-9]*(alpha|beta|candidate|rc|a|b|c|r|g)[0-9]*$)
  
==== Release Candidates ====
+
==== Step-by-step instructions to release a new version of python-troveclient ====
  
 
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.
 
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]+$)
  
(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:
 +
<pre><nowiki>
 +
git tag -s 1.0.5
 +
</nowiki></pre>
 +
2. Then check that tag is in the repo: “git tag -v 1.0.5”, you should see something like:
 +
<pre><nowiki>
 +
object <hash>
 +
type commit
 +
tag 1.0.5
 +
tagger Nikhil Manchanda <SlickNik@gmail.com>
 +
</nowiki></pre>
 +
3. Push the tag to the gerrit git repo. (NB: You cannot do this unless you are on the trove-core team)
 +
<pre><nowiki>
 +
git push <gerrit-remote> 1.0.5
 +
</nowiki></pre>
 +
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:
 +
<pre><nowiki>
 +
https://pypi.python.org/pypi/python-troveclient/
 +
http://tarballs.openstack.org/python-troveclient/
 +
</nowiki></pre>
 +
 
 +
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.
 +
 
 +
=== OpenStack release process ===
 +
https://wiki.openstack.org/wiki/ReleaseTeam/How_To_Release

Revision as of 22:46, 15 April 2014

Releasing python-troveclient

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.

  1. pypi.python.org
  2. tarballs.openstack.org

NOTE: tags can only be pushed by members of 'trove-core'

Pre-Release Candidates

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]*$)

Step-by-step instructions to release a new version of python-troveclient

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:

https://pypi.python.org/pypi/python-troveclient/
http://tarballs.openstack.org/python-troveclient/

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.

OpenStack release process

https://wiki.openstack.org/wiki/ReleaseTeam/How_To_Release