Changes to the Dryad API sparked a few changes to dryad2dataverse and dryadd.py. More specifically, the Dryad `/search` API endpoint can produce false positive results, which can result in bulk study replacement when none is required. Additionally, as file IDs are not unique in Dryad (contrary to the documentation), files are no longer identified on the basis of Dryad file ID.
**dryad2dataverse.serializer**
* `Serial.files` output now includes explicit hash type
**dryad2dataverse.monitor**
* `Monitor.status()` now returns values of `new, unchanged, updated, filesonly`
* Monitor.status() now includes `notes` key
* Monitor.diff\_files() now outputs a list of files for new studies using the `add` key instead of producing an empty dict.
* Monitor.diff\_files() outputs of `hash_change` key listing files whose names and sizes are identical but have either a changed hash or a new one.. Note that this does not necessarily indicate a changed file as hashes have been added to existing files.
* Monitor.get\_dv\_fid() now explicitly selects highest ROWID when returning a Dryad UID as UIDs are not considered persistent identifiers (as per email from Dryad January 2022)
**dryadd.py**
* Dates are now filtered by metadata `lastModificationDate` as Dryad search API endpoint does not respect date parameter (as per Dryad email, January 2022).
* Databases are now backed up with suffix of `.YYYY-MM-DD-HHMM` instead of generic `.bak`
* Number of backups can be specified as a parameter
* Switch added to halt process on excessive number of study updates
* Study threshold added to specify what is considered "excessive"
* Recipients are emailed on halt due to excessive updates
* Verbosity increased
* Output now explicity includes lists of new files instead of empty dict
* Updates now skipped on report of `unchanged` or `lastmodsame`; ie. metadata is identical *or* the lastModificationDate field in the Dryad JSON unchanged.
**Other**
* Binary files are now only included as part of a Github release
* Binary release now includes linux x86-64
* Dataverse utilities scripts removed; use [dataverse_utils](https://github.com/ubc-library-rc/dataverse_utils) instead.