Change & Version Information

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

0.23

0.22.2

  • bugfix: correction in detailed output for validate-checksum script when all versions are checked and at least one checksum is invalid

0.22.1

  • bugfix: support HTTP Range requests in eulfedora.views.raw_datastream() only when explicitly enabled

0.22

  • A repository administrator can configure a script to periodically check content checksums in order to identify integrity issues so that they can be dealt with.
  • A repository administrator will receive an email notification if the system encounters bad or missing checksums so that they can then resolve any integrity issues.
  • A repository admin can view fixity check results for individual objects in the premis data stream (for objects where premis exists) in order to view a more detailed result and the history.
  • Support for basic HTTP Range requests in eulfedora.views.raw_datastream() (e.g., to allow audio/video seek in HTML5 media players)

0.21

  • It is now possible to add new datastreams using eulfedora.models.DigitalObject.getDatastreamObject() (in contrast to predefined datastreams on a subclass of DigitalObject). Adding new datastreams is supported when ingesting a new object as well as when saving an existing object. This method can also be used to update existing datastreams that are not predefined on a DigitalObject subclass.

0.20

  • Development requirements can now be installed as an optional requirement of the eulfedora package (pip install "eulfedora[dev]").
  • Unit tests have been updated to use nose
  • Provides a nose plugin to set up and tear down for a test Fedora Commons repository instance for tests, as an alternative to the custom test runners.

0.19.2

  • Bugfix: don’t auto-create an XML datastream at ingest when the xml content is empty (i.e., content consists of bootstrapped xmlmap.XmlObject only)

0.19.1

  • Bugfix: handle Fedora restriction of ownerId field length to 64 characters. When setting owner, will now warn and truncate the value to allow the object to be saved.

0.19.0

  • New command-line script fedora-checksums for datastream checksums validation and repair. See Scripts for more details.
  • DigitalObject now provides access to the Fedora built-in audit trail; see audit_trail. Also provides:
    • eulfedora.views.raw_audit_trail(): Django view to serve out audit trail XML, comparable to eulfedora.views.raw_datastream().
    • DigitalObject attribute audit_trail_users: set of all usernames listed in the audit trail (i.e., any users who have modified the object)
    • DigitalObject attribute ingest_user: username responsible for ingesting the object into Fedora if ingest is listed in the audit trail
  • Relation now supports recursive relations via the option type="self".
  • API wrappers have been updated to take advantage of all methods available in the REST API as of Fedora 3.4 which were unavailable in 3.2. This removes the need for any SOAP-based APIs and the dependency on soaplib.
  • Minor API / unit test updates to support Fedora 3.5 in addition to 3.4.x.

0.18.1

  • Bugfix: Default checksum type for 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

0.17.0

  • Previously, several of the REST API calls in 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 eulfedora revises that logic so that all methods in 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:

    • addDatastream()
    • modifyDatastream()
    • purgeDatastream()
    • modifyObject()
    • purgeObject()
    • setDatastreamState()
    • setDatastreamVersionable()
  • New custom Exception eulfedora.util.ChecksumMismatch, which is a subclass of eulfedora.util.RequestFailed. This exception will be raised if addDatastream() or modifyDatastream() is called with a checksum value that Fedora determines to be invalid.

    Note

    If 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 ChecksumMismatch exception being raised. You should see a warning if your code attempts to do this.

  • Added read-only access to DigitalObject owners as a list; changed default eulfedora.models.DigitalObject.index_data() to make owner field a list.

  • Modified default 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 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 eulindexer.

0.15.0 - Initial Release

  • Split out fedora-specific components from eulcore; now depends on eulxml.