Currently adding versioning to Zenodo requires a variety of changes throughout Deposit API, DOI/Datacite registration, management tasks (deleting/moving records), etc. Here's a list of such cases and their affecting components:
Deposits/Records API
UI/UX
DOI/Datacite
Elasticsearch/Indexing
REST API
Communities
- Are communities listing only the last version of the record? If so, what if a community is removed at some point in the version-history - does it disappear? Solutions:
GitHub
Misc
Migration of Zenodo data
- Versioned vs Non-versioned records.
- All of the old records stay as they are. No batch migration will be done.
- All new records will already be "versioned". Versioned records will have a registered Concept DOI and Concept recid.
Testing
Currently adding versioning to Zenodo requires a variety of changes throughout Deposit API, DOI/Datacite registration, management tasks (deleting/moving records), etc. Here's a list of such cases and their affecting components:
Deposits/Records API
deposit.newversionpre-reserve Zenodo DOI immediatelyrelations: {})UI/UX
Version 2 (latest)->DATE (v2)(merge with date badge)Badge caching issue (github: badges should contain no caching headers #912)(doesn't affect DOI badges atm)DOI/Datacite
isNewVersionOf/isPreviousVersionOf: If we serialize these we have to update the metadata for previous/next objects in the linked list upon creation/deletion of new versions.hasVersions/isVersionOf- DataCite 4.x sprint LATERisPartOf/hasPart: Has similar issues with the above, but not at such a large scale. (QA)Elasticsearch/Indexing
REST API
/api/recordsendpoint/api/deposit/newversion?recid=134vs/api/deposit/123/actions/newversiondatahere: https://github.com/zenodo/zenodo/blob/master/tests/unit/deposit/test_api_editflow.py#L402). We should return those as wellCommunities
GitHub
Misc
Migration of Zenodo data
Testing
Unit tests:
Manual testing:
Test Non-versioned deposits actions
Non-Zenodo DOI records actions
Missing tests: