Skip to content

Releasing the Python Client

Brett Hazen edited this page Dec 14, 2015 · 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 automagically 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. Update readthedocs.org
  3. Annoted tag for release:
    • git tag --sign -a 2.3.0 -m "Release 2.3.0" --local-user AABBCCDD
  4. 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
  5. Create a 2.3-stable branch (no minor version)
  6. Send out message to mailing list

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