Re: Building skimage wheels for OS X using Travis CI
Hi, On Sat, Jun 28, 2014 at 2:14 AM, Matthew Brett <matthew.brett@gmail.com> wrote:
Hi,
On Fri, Jun 27, 2014 at 3:47 PM, Matthew Brett <matthew.brett@gmail.com> wrote:
Hi,
On Fri, Jun 27, 2014 at 3:30 PM, Jonathan Helmus <jjhelmus@gmail.com> wrote:
All,
To follow up on the thread in which Matthew provided OS X wheel packages for the v0.10.0 release, I was inspired to create a more reproducible method for building wheels. What I came up with is a GitHub repository [1] which uses the Mac OS X CI environment provided by Travis CI and miniconda to create wheels for Python 2.6, 2.7, 3.3 and 3.4. These are uploaded to GitHub as a Release which users can download. These files could be then uploaded to PyPI, perhapes after renaming them so indicate that they will work using the Python.org/macport/homebrew python. Travis CI could also be setup to upload these file to directly to PyPI or to S3, Rackspace, or a number of other providers [2].
I have not extensively tested these wheel files. Despite having Anaconda's platform (macosx_10_5_x86_64) I expect that these work with other Mac Python versions, but verification should be done. It should be possible to adapt this to use a different version of Python for the build (the Python.org version is probably best) if compatibility is an issue. Let me know if folks are interested in using this and I'd be happy to improve upon the method.
Also a big thanks to Matthew for providing the initial spark of interest and for the great write up on spinning wheels for OS X [3]. Python packaging is getting pretty exciting.
Nice job - it looks very clean.
I had the same idea, but my setup is much messier; I use some shell scripts I inherited from Matt Terry [1]. Example in use (much less neat than yours, but for a more complex build) [2].
Although your install is really neat, I think conda isn't a good basis for the wheels, because it is x86_64 only, so can't build wheels compatible with system python or python.org python:
$ python -c "import distutils.util; print(distutils.util.get_platform())"
macosx-10.5-x86_64
Here's a testing grid for the scipy stack, checking wheel compatibility across a range of OSX Pythons, and including i386 - again - based on Matt Terry's scripts [3]. Maybe something like that could be generalized for - say - scikit-image test wheels for RCs and development builds. I think that would be pretty easy.
This is a scikit-image wheel builder using Matt Terry's scripts and Python.or g pythons:
https://github.com/matthew-brett/scikit-image-wheels
It runs the tests before uploading, and the tests will be a little tough to get passing - they have lots of dependencies - but the general structure is a bit cleaner than I had first thought,
This repo is now working; it builds the wheels, runs the tests and then uploads to a rackspace container: https://travis-ci.org/matthew-brett/scikit-image-wheels/builds/28821657 Any interest in taking this over to the scikit-image organization? If you make me a member even temporarily, I can set you up with the encrypted API key to upload to the rackspace container. Also, I think these are the right wheels to build because they work with python.org and system pythons... It would mean that anyone in the organization could build and test wheels with a click of a button or a commit to the repo. Cheers, Matthew
participants (1)
-
Matthew Brett