For the last few days, the Travis sphinx build on master has been failing. It first started when #908 was merged in, although I don't see how that could possibly have anything to do with it. Thus far I've also been unable to reproduce the failure locally.
For an example failing log, see https://s3.amazonaws.com/archive.travis-ci.org/jobs/5958983/log.txt
That log indicates the following problem:
ERROR: PicklingError: Can't pickle <type 'astropy.wcs.WCSBase'>: attribute lookup astropy.wcs.WCSBase failed [sphinx.environment]
Traceback (most recent call last):
File "<stdin>", line 29, in <module>
File "/home/travis/virtualenv/python2.7/local/lib/python2.7/site-packages/sphinx/application.py", line 207, in build
File "/home/travis/virtualenv/python2.7/local/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 174, in build_all
self.build(None, summary='all source files', method='all')
File "/home/travis/virtualenv/python2.7/local/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 231, in build
File "/home/travis/virtualenv/python2.7/local/lib/python2.7/site-packages/sphinx/builders/__init__.py", line 131, in status_iterator
for item in iterable:
File "/home/travis/virtualenv/python2.7/local/lib/python2.7/site-packages/sphinx/environment.py", line 458, in update_generator
File "/home/travis/virtualenv/python2.7/local/lib/python2.7/site-packages/sphinx/environment.py", line 677, in read_doc
pickle.dump(doctree, f, pickle.HIGHEST_PROTOCOL)
cPickle.PicklingError: Can't pickle <type 'astropy.wcs.WCSBase'>: attribute lookup astropy.wcs.WCSBase failed
I've tested locally, and I do find that WCSBase (which is actually in the C extension astropy._wcs._Wcs) gives the same error if you try to pickle it. What I'm not understanding is why travis suddenly started trying to do this when it didn't before (and doesn't do so locally).
I'm investigating this now, but thought I should note my findings thus far here.
Aha! Cause discovered: the pip version of sphinx recently changed to 1.2b1 - a quick-fix for this right now is to just make Travis use the known-good sphinx 1.1.3 (I think - the tests are running right now on a branch in eteq/astropy). We'll need to figure out why the build is now breaking in Sphinx 1.2, but I'll make a separate issue for that.
Force travis to use sphinx v1.1.3
Probably because the Sphinx people put a beta release on PyPI. They should know better--even PyPI says not to do that.
(Though I did needle Richard Jones about that at PyCon, and I'm sure others did too--I think at some point that will be fixed.)