Thanks for creating this example. I am a maintainer of a couple of projects that use Cython and have the same deployment issues. We have done all our CI using anaconda, but are now suffering for lack of pypi releases.
I wondered if you have considered how difficult adding a binary release to pypi is with the approach here? Creating linux wheels is difficult as far as I can tell due to the need for a specific glibc. See: https://github.com/pypa/manylinux
So Travis doesn't check to see whether tags are set on branches or on master before making a deployment.
This means that anyone can deploy a release from a pull request. See release 0.3.2b2 for example. If it were a malicious author, it would be easy to make tons of tagged PRs and put out fake releases.
We also can't set any conditions against this in the yml file, since PR authors can just remove them again. Not sure what the solution here would be.
$TRAVIS_TAG isn't being set on tagged releases so the py36 & osx builds aren't starting. Have you seen this before? It should work for deployments right?
Cellcutoff is a combined CMake (CPP) + Cython + Python project and requires more detailed evironment variables. For consistency, it would be good to have the same env var names in .travis.yml throughout the theochem organization.
@matt-chan The version of nose that we use at the moment is no longer actively developed and will likely start suffering from bitrot in the near future. (See note to users on the web page: https://nose.readthedocs.io/en/latest/) We should either switch to unittest2 or nose2. The second option seems to be better: more plugins, including coverage. It is also easier to write tests for nose2: no need for classes, simple asserts are fine.