Change & Version Information
============================

The following is a summary of changes and improvements to
:mod:`eulfedora`.  New features in each version should be listed, with
any necessary information about installation or upgrade notes.

0.18.1
------

* Bugfix: Default checksum type for
  :class:`~eulfedora.models.DatastreamObject` was previously ignored
  when creating a new datastream from scratch (e.g., when ingesting a
  new object).  In certain versions of Fedora, this could result in
  datastreams with missing checksums (checksum type of 'DISABLED',
  checksum value of 'none').



0.18.0
------

* Exposed RIsearch ``count`` return option via
  :meth:`eulfedora.api.ResourceIndex.count_statements`
* :class:`~eulfedora.models.DatastreamObject` now supports setting
  datastream content by URI through the new
  :attr:`~eulfedora.models.DatastreamObject.ds_location` attribute 
  (this is in addition to the previously-available
  :attr:`~eulfedora.models.DatastreamObject.content` attribute).


0.17.0
------

* Previously, several of the REST API calls in
  :class:`eulfedora.api.REST_API` suppressed errors and only returned
  True or False for success or failure; this made it difficult to
  determine what went wrong when an API call fails.  This version of
  :mod:`eulfedora` revises that logic so that all methods in
  :class:`eulfedora.api.REST_API` will raise exceptions when an
  exception-worthy error occurs (e.g., permission denied, object not
  found, etc. - anything that returns a 40x or 500 HTTP error response
  from Fedora).  The affected REST methods are:

    * :meth:`~eulfedora.api.REST_API.addDatastream`
    * :meth:`~eulfedora.api.REST_API.modifyDatastream`
    * :meth:`~eulfedora.api.REST_API.purgeDatastream` 
    * :meth:`~eulfedora.api.REST_API.modifyObject`
    * :meth:`~eulfedora.api.REST_API.purgeObject`
    * :meth:`~eulfedora.api.REST_API.setDatastreamState`
    * :meth:`~eulfedora.api.REST_API.setDatastreamVersionable` 
    
* New custom Exception :class:`eulfedora.util.ChecksumMismatch`, which
  is a subclass of :class:`eulfedora.util.RequestFailed`.  This
  exception will be raised if
  :meth:`~eulfedora.api.REST_API.addDatastream` or
  :meth:`~eulfedora.api.REST_API.modifyDatastream` is called with a
  checksum value that Fedora determines to be invalid.

  .. note::

    If :meth:`~eulfedora.api.REST_API.addDatastream` is called with a
    checksum value but no checksum type, current versions of Fedora
    ignore the checksum value entirely; in particular, an invalid
    checksum with no type does not result in a
    :class:`~eulfedora.util.ChecksumMismatch` exception being raised.
    You should see a warning if your code attempts to do this.

* Added read-only access to :class:`~eulfedora.models.DigitalObject`
  owners as a list; changed default
  :meth:`eulfedora.models.DigitalObject.index_data` to make owner
  field a list.

* Modified default :meth:`eulfedora.models.DigitalObject.index_data`
  and sample Solr schema to include a new field (dsids) with a list of
  datastream IDs available on the indexed object.


0.16.0 - Indexing Support
-------------------------

* Addition of :mod:`eulfedora.indexdata` to act as a generic
  webservice that can be used for the creation and updating of indexes
  such as SOLR; intended to be used with :mod:`eulindexer`.


0.15.0 - Initial Release
------------------------

* Split out fedora-specific components from :mod:`eulcore`; now
  depends on :mod:`eulxml`.
