This involved many changes, some side effects of the change include:
- remove of all `u"abc"` forms, in favor of
`from __future__ import unicode_literals`. Their usage was
inconsistent anyway, leading to problems when mixing with
unicode content.
- improve the tests, to allow printing for usecase even when
crashing. Should make future test easier. This is done with a
rather hacky `StdIO` class in `p3`, but it works.
- for some reason, the skipped test for Python 2 seems to work
now. While the previous point might seem related, it is not clear
that this is actually the case.
See #86 and #129.
The version number is now only stored in pubs/version.py. setup.py loads the version from the file as well as does pubs/__init__.py.
The cache structure changes to now include the version of the code which wrote the cache, which enables rebuilding the cache on version change. Loading an old cache (i.e. without the version) fails and triggers a rebuild (so does loading the new cache from the old code) so moving across this change is transparent here.
The code also switches to version 0.8.dev1 to trigger a cache rebuild (and also because the milestone is almost there). In general we will need to bump the version number to a development one each time a change makes loading old cache incompatible. There is no test for that at the moment so this means testing new code on a local bibliography repository before pushing to master.
#129 discussed using git versions, which is not so easy to integrate nicely with setuptools. This is why I chose to stick with manually changing version numbers when necessary (which should not be so often).
Current code version is added to the cache on writting. If the cache
version does not match the code version on read, the cache is ignored
which means it resets.
Under certain circumstances, when installing bibtexparser 1.0.1 release
in develop mode, it can be recognized as bibtexparser 1.0 by the
pkg_resource module, preventing pubs to execute. This is obviously very
bad.