4 Releasing PyZMQ
Min RK edited this page 2013-11-25 15:43:57 -08:00

Currently, we are using the following steps to release PyZMQ:

  • Always start with a fresh git clone of master, rather than my working copy, which is full of junk.

  • Make sure AUTHORS.md has an updated list of contributors.

  • Check the version number in zmq/sugar/version.py.

  • Remove old MANIFEST and egg-info files and dist and build directories (python setup.py clean).

  • Check MANIFEST.in, in case of file list changes (test python setup.py sdist).

  • Register the release with pypi:

    python setup.py register
    
  • Build source distributions and upload:

    python setup.py sdist --formats=zip,gztar upload
    
  • commit the changed version.py to the branch:

    git add zmq/sugar/version.py && git commit -m "bump version to $VERSION"
    
  • Tag the release:

    git tag -a -m "Tagging release $VERSION" v$VERSION
    git push origin --tags
    
  • Change version back to dev, and push again

  • Announce on list.

bdists (eggs and wheels)

We build eggs and wheels for 'current' Python on OS X and Windows. That currently means 2.7 and 3.3. All bdists should use --zmq=bundled.

OS X

  • Make sure I am using up-to-date (but not dev!) Cython.

  • Make sure to build intel UB (the default, unless ARCHFLAGS is set to something specific)

  • Use Python.org Pythons (the only reason to use Python.org 2.7 instead of System Python is that it will come out as 10.6-intel instead of 10.8-intel. I'm pretty sure there isn't actually a difference, but I don't want to bother fiddling with it.)

  • Download the sdist in /tmp

  • build and upload with

    for fmt in egg wheel; do python setupegg.py bdist_$fmt upload --zmq=bundled done

Windows

Windows is a terrible gross mess. I have four Pythons, 32+64b 2.7 / 3.3. To build 2.7, I use Windows SDK 7 with DISTUTILS_USE_SDK=1. For 3.3, you must use Windows SDK 7.1, which is based on VS 2010, to match Python 3.3.