Skip to content

Releasing the Python Client

Luke Bakken edited this page Jan 13, 2016 · 10 revisions

Currently Python has its own version of riak client which lives out in PyPI.

These releases are manually built on developer machines and manually uploaded to PyPI. There are two prerequisites for being able to release to PyPI. First you need to have a PGP Key and second, you need to be an administrator for those projects in PyPI. To determine your PGP key you can look it up via

gpg --list-keys /Users/user/.gnupg/pubring.gpg

You will need this .pypirc file in your home directory:

[server-login]
username:javajolt
password:cleartextpassword

For each version you'll need to build a new version-specific egg distribution. These versions must be in your path to make the release:

  • python2.7
  • python3.3
  • python3.4
  • python3.5

Each of these versions must have these packages installed already:

  • six
  • protobuf (Python 2)
  • riak_pb (Python 2)
  • pyopenssl (Python 2.7.8 and below)
  • python3_protobuf (Python 3)
  • python3_riak_pb (Python 3)

Once that is done, make sure each of these are done:

  1. Release Notes.md update
  2. Annoted tag for release:
    • git tag --sign -a 2.3.0 -m "Release 2.3.0" --local-user AABBCCDD
  3. Upload to PyPI:
    • python2.7 setup.py sdist upload -s -i AABBCCDD
    • python2.7 setup.py bdist_egg upload -s -i AABBCCDD
    • python3.3 setup.py bdist_egg upload -s -i AABBCCDD
    • python3.4 setup.py bdist_egg upload -s -i AABBCCDD
    • python3.5 setup.py bdist_egg upload -s -i AABBCCDD
  4. Send out message to mailing list

Other items:

  1. Create a 2.4-stable branch (no minor version) using the latest 2.4 tag as the base if a patch must be made to the client while other, newer development has occurred.
  2. Ensure that readthedocs.org has updated itself.

Once the files have been uploaded, do a sanity check on PyPI. You should see something like this for each project:

File Type Py Version Uploaded on Size
riak-2.2.0-py2.6.egg (md5, pgp) Python Egg 2.6 2014-12-18 346KB
riak-2.2.0-py2.7.egg (md5, pgp) Python Egg 2.7 2014-12-18 343KB
riak-2.2.0-py3.3.egg (md5, pgp) Python Egg 3.3 2014-12-18 358KB
riak-2.2.0-py3.4.egg (md5, pgp) Python Egg 3.4 2014-12-18 353KB
riak-2.2.0.tar.gz (md5, pgp) Source 2014-12-18 150KB

Each project also includes four eggs and a source tar file shown above. It's always good to test by pulling down a new version from PyPI just to be sure.

NOTE : You can create a release in PyPI once and only once. If you screw it up, you'll need to tag a new version and start over. There is no overwriting of old versions. You have been warned.

Clone this wiki locally