Skip to content

Releasing the Python Client

Luke Bakken edited this page Feb 22, 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)

You will need to have the pandoc command installed, as well as the pypandoc module in the global Python environment (or global pyenv environment if you're using that, which you should be!).

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

  1. RELNOTES.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:

    make RELEASE_GPG_KEYNAME=1234ABCD release
    

Other items:

  1. Update docs using Sphinx in the gh-pages branch.
  2. Send out message to mailing list.
  3. 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.
  4. 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