Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Travis CI now makes builds, Linux/OS X Python 2.7/3.4 #421
This PR substantially improves our travis configuration so that every new commit onto menpo/master will yield an installable binary build of menpo for linux/osx python 2/3.
I've made a Python script called traviconda which does most of the heavy lifting of integrating Travis and conda. It is hosted separately, and so can be updated independently of the projects that rely on it (now menpo, cyassimp, cyrasterize, hdf5able). Each of our subprojects is already now working with traviconda - this PR just let's Menpo join in.
Traviconda works by:
For menpo we have now moved the running of our unit tests into the test stage of the conda build. This means that builds are only made if all tests pass. Any failure of a test will mean the build fails (so nothing changes in terms of waiting for the tick of travis to let you know if a PR passes tests or not).
Builds are made for every branch of a traviconda project, so in the case of menpo that's just master (and the few other ones we have on here from time to time). Builds that are not 'releases' (i.e., any branch head which is not tagged with a version number) are placed on a channel at our binstar account with a name equal to the branch name. What this means is, to install the current master version of menpo, you can simply ask travis for the 'master' channel version:
Or if you want to develop on the latest version of cyassimp:
This is very useful for getting students set up with the latest version of menpo without having to go through the full setup of everything (if they just need the latest build but are going to do all their work in notebooks for example).
Git tagged releases are the same, but they are pushed out to the 'main' default channel. That means things work as is currently stated in the installation guide:
but the build itself is fully automated.
This has taken a while to set up, but it really simplifies things in the long run. For one thing it's easy to setup new traviconda builds, so if we do break menpo up a little more it won't be adding to the burden of worrying about releases or generating code that others can use - it should all just work.
Things to do
This PR is good to come in now, but we can take this a little further as we go to make things better: