Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add message when DataCite DOI has not been reserved #7102 #7121

Merged
merged 3 commits into from
Jul 30, 2020

Conversation

pdurbin
Copy link
Member

@pdurbin pdurbin commented Jul 23, 2020

What this PR does / why we need it:

Here's the problem scenario:

  • DataCite was down when the dataset was created, meaning that the DOI was never reserved on the DataCite side.
  • When the user tries to publish, they get a somewhat confusing error: "Cannot publish dataset because its persistent identifier has not been reserved." (screenshot below).

Screen Shot 2020-07-23 at 11 25 56 AM

To help explain what's going on, this pull request add a message to the top of the dataset page:

Screen Shot 2020-07-23 at 11 17 42 AM

Which issue(s) this PR closes:

Closes #7102

Special notes for your reviewer:

  • I copied and pasted the text that was given to me but I would prefer to use the word "reserved" rather than "registered" because we already use the former throughout our documentation and code. Fixed in fee1772.
  • I used "Dataset Locked" as the short message before the long explanation but we can certainly change this to whatever we want. Changed to "Dataset DOI Not Reserved" in fee1772.
  • I made use of the the "displayLockInfo" infrastructure even though this message isn't a true DatasetLock.

Suggestions on how to test this:

The message should only appear for DataCite installations. In addition, the message should only appear for datasets with a null value for GlobalIdCreateTime (dvobject table), which is what we use to indicate if a DOI is reserved. It's the time the PID was created on the remote system.

Does this PR introduce a user interface change? If mockups are available, please link/include them here:

Yes, please see screenshots, above.

Is there a release notes update needed for this change?:

No, I think it falls under the umbrella of Dataverse 5 allowing DOIs to be reserved.

Additional documentation:

None.

@coveralls
Copy link

coveralls commented Jul 23, 2020

Coverage Status

Coverage decreased (-0.007%) to 19.603% when pulling 1c1ae2c on 7102-unreserved-doi into 941d17d on develop.

@djbrooke djbrooke added this to the Dataverse 5 milestone Jul 24, 2020
@@ -1322,6 +1322,8 @@ dataset.locked.ingest.message=The tabular data files uploaded are being processe
dataset.unlocked.ingest.message=The tabular files have been ingested.
dataset.locked.editInProgress.message=Edit In Progress
dataset.locked.editInProgress.message.details=Additional edits cannot be made at this time. Contact {0} if this status persists.
dataset.locked.pidNotReserved.message=Dataset Locked
dataset.locked.pidNotReserved.message.details=The DOI displayed in the citation for this dataset has not yet been registered with DataCite. Please do not share this DOI until it has been registered.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know we don't want to keep going back and forth on this, but... this msg reads like we need additional success and warning issues if the DOI was finally registered or ultimately changed. This came to mind reading the comment from @landreev in Slack in regards to issue #6980.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't feel strongly about the wording and don't mind if someone changes it.

@@ -1322,6 +1322,8 @@ dataset.locked.ingest.message=The tabular data files uploaded are being processe
dataset.unlocked.ingest.message=The tabular files have been ingested.
dataset.locked.editInProgress.message=Edit In Progress
dataset.locked.editInProgress.message.details=Additional edits cannot be made at this time. Contact {0} if this status persists.
dataset.locked.pidNotReserved.message=Dataset Locked
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we need to add another "Dataset Locked" bundle value here. There is already dataset.locked.message.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I put the key in as a placeholder but just changed it to "Dataset DOI Not Reserved" in fee1772.

@pdurbin pdurbin moved this from Code Review 🦁 to IQSS Team - In Progress 💻 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Jul 27, 2020
@pdurbin pdurbin self-assigned this Jul 27, 2020
@pdurbin
Copy link
Member Author

pdurbin commented Jul 27, 2020

In design standup I got some guidance from @TaniaSchlatter and @djbrooke on wording. Fixed in fee1772.

@pdurbin pdurbin moved this from IQSS Team - In Progress 💻 to Code Review 🦁 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Jul 27, 2020
@pdurbin pdurbin removed their assignment Jul 27, 2020
@djbrooke
Copy link
Contributor

Wording as of fee1772 looks good, thanks @pdurbin

@sekmiller sekmiller self-assigned this Jul 29, 2020
IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) automation moved this from Code Review 🦁 to QA 🔎✅ Jul 29, 2020
@sekmiller sekmiller removed their assignment Jul 29, 2020
@kcondon kcondon self-assigned this Jul 29, 2020
@kcondon
Copy link
Contributor

kcondon commented Jul 29, 2020

@pdurbin I'm seeing the doi not reserved lock banner on the create dataset page. should it be there? a little confusing imho.

@pdurbin
Copy link
Member Author

pdurbin commented Jul 29, 2020

No, it shouldn't be on the create page.

@kcondon
Copy link
Contributor

kcondon commented Jul 29, 2020

Well you are checking on a null global create time, right? create page has null too. maybe needs to be excluded?

@pdurbin
Copy link
Member Author

pdurbin commented Jul 29, 2020

Yeah, there's probably some kind of MODE!=CREATE we can check.

@kcondon
Copy link
Contributor

kcondon commented Jul 29, 2020

Also, getting something weird happening:

  1. make incorrect datacite url in domain.xml
  2. create and attempt to publish dataset, fails to reserve, check.
  3. fix url, restart try to publish, persists in saying could not reserve. It should now be able to but it doesn't. Why not?
    log says:

[2020-07-29T19:48:00.263+0000] [Payara 5.201] [SEVERE] [] [edu.harvard.iq.dataverse.DatasetPage] [tid: _ThreadID=90 _ThreadName=http-thread-pool::jk-connector(3)] [timeMillis: 1596052080263] [levelValue: 1000] [[
  Cannot publish dataset because its persistent identifier has not been reserved.]]

@kcondon kcondon moved this from QA 🔎✅ to IQSS Team - In Progress 💻 in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Jul 29, 2020
@kcondon kcondon assigned pdurbin and unassigned kcondon Jul 29, 2020
@pdurbin
Copy link
Member Author

pdurbin commented Jul 29, 2020

In 1c1ae2c I just added the logic to not show the "DOI not reserved" message on create.

For your other scenario, the plan reserve DOIs regularly and there's a new script in pull request #7142 for this. Basically, if DataCite is down, we simply can't reserve DOIs during that period. So maybe the script runs nightly or so to reserve them.

@pdurbin pdurbin moved this from IQSS Team - In Progress 💻 to QA 🔎✅ in IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) Jul 29, 2020
@pdurbin pdurbin removed their assignment Jul 29, 2020
@kcondon
Copy link
Contributor

kcondon commented Jul 30, 2020

@pdurbin Thanks for the info, will retest the message.
As for the other behavior, needing to run an API to reserve a failed DOI reservation that potentially and likely happened either due to a misconfiguration or simply the service was temporarily inaccessible, you and I have discussed it outside of this pr and also raised it with the group. It seems a little weird and impractical to me and not how our prior implementation of EZID worked. If it failed to reserve on create, it would just try again on publish, at which time, if a temporarily inaccessible issue is resolved, then it just works seemlessly without intervention or in my case, I've caught my config issue and corrected it. Folks in the group appeared to acknowledge this made sense but as there is an explicit rationale for the current behavior, ie more control over when things are and are not reserved, then will leave up to practical, real world experience to inform future adjustments. One potential concern is a rise in support issues from this and may/will require intervention by an admin but experience will serve as a guide.

@pdurbin
Copy link
Member Author

pdurbin commented Jul 30, 2020

@kcondon yes, thanks for the discussion. I have very little practical experience with EZID and have only glanced at that code, so I'll take your word for it as to how it behaved.

It looks like there's a new issue and pull request where the discussion can continue:

(Or we can keep talking here if that's better.)

@kcondon
Copy link
Contributor

kcondon commented Jul 30, 2020

@pdurbin Fair enough, though your old officemate Stephen created the EZID implementation and several others on the team were familiar with that functionality and I'd thought the original discussion about implementing DataCite's version was to copy what EZID did and that was my expectation going into this. I really just want a clear idea of what things do and that are logical so I have that for now and hopefully future discussions will proceed on that basis. Thanks.

@kcondon kcondon self-assigned this Jul 30, 2020
@kcondon kcondon merged commit 1ad8647 into develop Jul 30, 2020
IQSS/dataverse (TO BE RETIRED / DELETED in favor of project 34) automation moved this from QA 🔎✅ to Done 🚀 Jul 30, 2020
@kcondon kcondon deleted the 7102-unreserved-doi branch July 30, 2020 15:12
@Fernand0S
Copy link

Fernand0S commented Aug 13, 2020

Hello, i have problem publications article in Dataverse. The configurations /usr/local/glassfish4/glassfish/domain/domain1/config/domain.xml

<jvm-options>-Ddoi.username=</jvm-options> and <jvm-options>-Ddoi.password=</jvm-options> for use of Handle is not Doi, modified strings but error persistent.

image

@pdurbin
Copy link
Member Author

pdurbin commented Aug 24, 2020

@Fernand0S hi, please email support@dataverse.org about your problem to open a support ticket. Thanks.

@Fernand0S
Copy link

Philip, I solved problem. reply you with email.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

DOI registration is not confirmed by Datacite
7 participants