This repo is for testing the scipy stack on MacOS X for a wide range of Python versions. The repo runs tests on Mac OS 10.9 as provided by the Travis-CI Mac environment.
Most of the code came from the Matplotlib OSX testing repository, written by Matt Terry.
You will need to be a member of the scipy-stack-osx-testers in the MacPython github organization.
This gives you permission to trigger runs of the scipy-stack-osx-testing matrix, by either:
- going to the scipy-stack-osx-testing travis-ci page and pressing the rebuild button; or
- Making a new commit to https://github.com/MacPython/scipy-stack-osx-testing.
Of these two, the better way is to make a new commit, even if it is with:
git commit --allow-empty
because this preserves the record of the previous builds for posterity, rather than overwriting the last (as will happen with the 'rebuild' button on travis-ci).
Triggering a build runs tests of the scipy stack against chosen candidate wheels, for example release candidates.
For example, let's say you want to test a scipy release candidate, RC4.
You need to:
- build and upload the RC4 wheel to http://wheels.scikit-image.org;
- modify the scipy-stack-osx-testing
.travis.yml
to pick up the pre-release wheel rather than the standard released wheel; - trigger the scipy-stack-osx-testing travis build using a commit to the repo.
For the scipy RC4 example, you would tag RC4, then trigger a build of that OSX wheel via your OSX wheel building repo (https://travis-ci.org/MacPython/scipy-wheels), check that the wheel reached the rackspace container (http://wheels.scikit-image.org/), then check that scipy-stack-osx-testing has lines like these at the top of .travis.yml
:
# Rackspace container for bleeding edge builds
- PRE_URL=http://wheels.scikit-image.org
- NO_PRE=numpy # stuff that should be installed without --pre
- PRE=scipy
You need the NO_PRE
line for e.g. scipy to prevent pip installing a development / pre-release version of numpy.
You can then trigger a build of this repo with by pushing a commit on scipy-stack-osx-testing up to github. This checks the RC against all the standard scipy stack packages including numpy, matplotlib, pandas.
Python Source | Python Version | virtual environment1 | 32/64 bits |
---|---|---|---|
python.org | 2.7.6 |
|
|
python.org | 2.7.6 |
|
|
python.org | 2.7.6 |
|
|
python.org | 3.3.5 |
|
|
python.org | 3.3.5 |
|
|
python.org | 3.3.5 |
|
|
python.org | 3.4.1 |
|
|
python.org | 3.4.1 |
|
|
python.org | 3.4.1 |
|
|
system | 2.7 |
|
|
brew | 2.7 |
|
|
brew | 2.7 |
|
|
brew | 3.4 |
|
|
brew | 3.4 |
|
|
Macports | 2.7 |
|
|
Macports | 2.7 |
|
|
Macports | 3.3 |
|
|
Macports | 3.3 |
|
|
Macports | 3.4 |
|
|
Macports | 3.4 |
|
|
We don't test system python without a virtualenv, because system python has a special path /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
that is above standard user and system site-packages in sys.path
. This directory has versions of numpy, scipy and matplotlib. A pip install of any of these packages will install the package below the Extras/lib/python
directory on sys.path
, so won't get picked up. It so happens that the matplotlib in Extras/lib/python
on 10.9 fails lots of tests due to missing PIL, so tests on system python, without virtualenv, will always fail, and in any case won't test the newly installed numpy, scipy, matplotlib.
"virtualenv" identifies the classic virtual environment library available to Python 2 and beyond. "pyvenv" identifies the virtual environment library included in the standard library starting with Python 3.3.↩