Table of Contents
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
andegg-info
files anddist
andbuild
directories (python setup.py clean
). -
Check
MANIFEST.in
, in case of file list changes (testpython 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 of10.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.