bump VERSION to the last (may2014) release: 0.8-beta
EntityControlFile.update_checksums now handles absent files

update_checksums() crashed if (ddr-local) Entity.files listed
a file that was not present in the filesystem.
For example, a git-annex file that had not been git-annex-gotten.
With this change the function inserts "UNKNONWSIZE" for files
where the filesize cannot be determined.
entity_annex_add now takes optional entity arg for checksumming

This allows ddr-local to pass in DDRLocalEntity objects which
have an overridden checksums() method that correctly deals with
files that are not present in the filesystem.  For example,
symlinks to absent git-annex files (i.e. important).
module for image manipulation functions

Functions for
- identification of image files.
- creation of thumbnails.
- extraction of XMP data.

This is the image-related code from ddr-local models.
correct number of args for make_convert_cmd. sigh...
make function complain loudly if not provided with a valid DDR ID
gitolite_info returns raw Gitolite response with no parsing

Let the consumers decide how they want to parse it, if at all.
gitolite_info now accepts a timeout value

Allows installs with slow networks to specify a higher timeout.
heavy refactor of vocab import/export

You can now move data between JSON and CSV formats with no loss.
Tested with Google Docs.
Works okay with smaller taxonomies but will need a refactor for
a larger vocab.
don't do models-specific processing on facets mappings
get mappings and facet data from Repository repo by default

The mappings, facet data (including topics terms) and model fields
definitions should not be part of the source code.
Rather they should be in repositories closer to the data.
Merge branch 'vocab-unified' into develop
docstore get mappings and facets paths from /etc/ddr/ddr.cfg
docstore.delete can now recursively delete collections/entities

With this update you can delete every file/entity that falls
under the specified document.
commandline commands for publishing to ddr-public Elasticsearch

It is no longer necessary to use the Python REPL for these
functions:
- create and delete indexes
- add index aliases
- upload mappings
- upload vocab facets
- upload repo and org documents
- index entire collections
- delete collections or parts thereof
bumped version number to 0.9-beta
Merge branch 'release-0.9-beta'