provide automated DOI registration
add support for automated metadata translation from our object model into the DataCite schema with eventual DOI publication via the datacite Python library
refs https://github.com/comses/planning/issues/146
the issue that i was working on was the datacite python package schema43.validate() test was failing. one thing i noticed was that the creators metadata was empty. the test code does publish() the release but yet the creators were empty. oddly during debugging, sometimes the creators will have 2 test_user entries but i didn't figure out why sometimes it was empty and sometimes it had 2...perhaps there is something about the compute_contributors() caching that i don't understand. that's as far as i got before my time ran out. i'm really sorry to leave this issue unsolved! since DataCite requires the creators metadata, i can see why schema43.validate() failed but there may be other additional reasons why the validation is failing. for more info, see DOI feature documentation
The core doi creation logic seems alright to me, the only real improvement I can think of other than minor cleanup is doing metadata updates on post_save signals rather than the complicated-seeming comparison. This should probably be done with celery though..
Good call, though I think celery is probably overkill for this, a cron job should be fine since these aren't long-running or frequent processes. I don't think I would do it on post_save, and instead batch it nightly.
Otherwise, the only thing I'm confused by is the
remove_dois_from_not_peer_reviewed_releasescommand. If the DOI exists and points to the release, is there harm in keeping it stored, even though its sorta 'legacy' data?
I think the goal is to re-mint old handle.net and legacy PIDs to be uniform though @asuworks would probably be better to clarify here...
We wanted to get rid of legacy DOIs for consistency. There were not so many legacy DOIs in prod, as far as I remember... We would need to handle them separately. Do we want this?