[Pythonmac-SIG] MacPython and automating wheel builds

Matthew Brett matthew.brett at gmail.com
Sat Aug 2 20:48:40 CEST 2014


Hi,

I would like some feedback on an idea I had for providing a
wheel-building service via the MacPython organization.

Following up an idea and code by Matt Terry [1], I've made a general
repo called 'terryfy', with tools for building Python projects on the
travis-ci OSX virtual machines [2].

Meanwhile, Olivier Grisel from scikit-learn kindly gave me access to the
scikit-learn rackspace account for uploading built wheels.

This made it rather easy to make a series of repos to build OSX wheels
automatically. An example is the 'h5py-wheels' repo [3], to build
OSX wheels for the h5py project.

The idea of projects like these is that the (e.g) h5py release manager
can click on the travis-ci webpage 'Restart build' button [4] or make a
commit to the 'h5py-wheels' repo into order to trigger a build / test /
upload of OSX wheels from travis-ci VMs to the rackspace hosted
directory at http://wheels.scikit-image.org/ . From there they can
upload to pypi for the release.

There are currently terryfy-based wheel-building projects for h5py
[3], numpy / scipy [5], matplotlib [6], cython [7], scikit-image [8],
scikit-learn [9], pandas [10], Pillow [11], tornado [12],
numexpr [13] and Markupsafe [14].  These all build wheels against the
Python.org Python.

I think this could be a big improvement for releasing OSX packages, but,
at the moment, the process relies on me being available to maintain and
trigger builds, as the owner of most of the building repos.

So, I was wondering if y'all agreed that it was sensible to start
transferring these repos to the MacPython organization.

The idea would be that someone with a project on PyPi that wanted to
build OSX wheels, could start off by making their own repo to build the
wheels and test, based on the templates above.  I have a script that
partly automates this at [15].  Once the build and test phase is
working, the owner transfers the repo to the MacPython organization, and
I or someone else with the rackspace credentials adds the ability to
upload the built wheels to the rackspace directory.  The previous owner
is a collaborator on the repository so they can push commits and trigger
builds.

In this way, we could have a collection of say 25 MacPython organization
repos that would provide an OSX wheel-building service to projects that
need it.  It could be a central point for advice and help on building
OSX wheels.

Thanks for any feedback,

Matthew


[1] https://github.com/matplotlib/mpl_mac_testing
[2] https://github.com/matthew-brett/terryfy
[3] https://github.com/matthew-brett/h5py-wheels
[4] https://travis-ci.org/matthew-brett/h5py-wheels
[5] https://github.com/matthew-brett/numpy-atlas-binaries
[6] https://github.com/matthew-brett/matplotlib-wheels
[7] https://github.com/matthew-brett/cython-wheels
[8] https://github.com/scikit-image/scikit-image-wheels
[9] https://github.com/matthew-grett/scikit-learn-wheels
[10] https://github.com/matthew-grett/pandas-wheels
[11] https://github.com/python-Pillow/pillow-wheels
[12] https://github.com/matthew-brett/tornado-wheels
[13] https://github.com/matthew-brett/numexpr-wheels
[14] https://github.com/matthew-brett/markupsafe-wheels
[15] https://github.com/matthew-brett/terryfy/blob/master/make-wheel-builder

--
Sent from Vmail


More information about the Pythonmac-SIG mailing list