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

Support publications/versioning for DOIs and verify depositing #4867

Closed
9 tasks
NateWr opened this issue Jul 3, 2019 · 13 comments
Closed
9 tasks

Support publications/versioning for DOIs and verify depositing #4867

NateWr opened this issue Jul 3, 2019 · 13 comments
Assignees
Projects
Milestone

Comments

@NateWr
Copy link
Contributor

NateWr commented Jul 3, 2019

Support for specifying a DOI needs to be added to the new publication UI. We also need to check that DOIs are getting deposited correctly.

Also, when a new version is created, DOIs should not be copied over. A new one should be created and deposited when a new version is published, probably? We should seek some advice from the Crossref/DOI people in the team.

Acceptance Criteria

This acceptance criteria presumes that you have the DOI plugin installed and activated.

  • I can assign a DOI to a publication when using the default DOI pattern setting.
  • I can assign a DOI when set to enter a custom DOI each time.
  • When set to enter a custom DOI, if I enter a DOI that doesn't match the DOI prefix, I get an error message.
  • When a custom DOI pattern is set, I can assign a DOI to a publication if all of the pattern requirements are met (ie - if %x is used, a publisher-id must be set).
  • When a custom DOI pattern is set and one or more pattern requirements are not met, I receive an error message.
  • With either of the three DOI pattern settings (default, custom pattern, or custom entry), I can still add a DOI to issues, galleys, chapters, publication formats and files when enabled.

The acceptance criteria below presumes that you have the Crossref and DataCite plugins installed and activated.

  • When a DOI is saved to a published publication, I can export it from the Crossref and DataCite import/export tools.
  • When a DOI is saved to a published publication, I can register it from the Crossref and DataCite import/export tools.

The acceptance criteria below presumes that you are upgrading a site that has enabled DOIs for submissions and uses a custom DOI suffix pattern.

  • After upgrading the site, DOIs are enabled for publications and my custom DOI suffix pattern for submissions is now used for publications.
@NateWr NateWr added this to the OJS/OMP 3.2 milestone Jul 3, 2019
@NateWr NateWr added this to To do in Versioning via automation Jul 3, 2019
@NateWr NateWr moved this from To do to Needs specification in Versioning Jul 3, 2019
@AhemNason
Copy link

I feel like I need to know a little more about what we mean by versioning when we talk about this. Once something is published, any changes to the metadata or content are covered by Crossref (and specifically using CrossMark). You'd keep the same DOI.

But, with pre-prints that's not the case. https://www.crossref.org/blog/included-registered-available-let-the-preprint-linking-commence./

We've been working increasingly closely with Crossref so I might suggest that we could tap them for some advice on the execution here. I'm happy to reach out to our working group and pull someone into this conversation.

@NateWr
Copy link
Contributor Author

NateWr commented Jul 9, 2019

what we mean by versioning

For now, our primary use-case is to track changes after something is published. But as a distributed platform we should expect that others will move ahead before we fully embrace other use cases, such as:

  • Pre-prints
  • Early access
  • Public peer review
  • 2nd Editions (OMP)

Regarding our primary use-case, there are still some things that need to be worked out. If we think that all post-publication versions should have the same DOI, we should:

@AhemNason
Copy link

AhemNason commented Jul 11, 2019

Addressing the primary, this sounds a lot like what Crossmark is for. I know @jnugent was working on a Crossmark plugin for a client so maybe he could chime in. I think Crossmark integration in our own Crossref plugin would be excellent.

https://www.crossref.org/services/crossmark/

I'll address each...

  • Currently, if we have an article assigned a DOI on publication and anything changes, the URL is to the article itself, not a specific version.
  • DOIs do not currently (I think) automatically update if there's a change to record metadata, but users can push any changes. Anytime a URL changes, DOIs need to be updated. The URL really doesn't matter much in the long run so long as there is one that works and the registered DOI gets updated.
  • Disallowing a change to a DOI is good generally. I think from the UI-side we should only allow very, very limited DOI suffix options anyway. A surprising amount of DOI issues are due to human error and nothing about them needs to be machine readable. Crossref themselves may be limiting the ways in which DOI suffixes can be minted in the future, but Crossref are not the only DOI registration agency.
  • I'm very much into handling more publication "types". This is part of the crossref preprint service. We'd have to flag preprints specifically for their DOIs to be linked to the final published DOIs. Crossref has different schema for different content (conference proceedings, datasets, articles, preprints)... the relationship between a preprint and a final article should be handled on the Crossref side if things are done properly.

James is away but we've identified interest in working together with Crossref here. I'll check with Kevin just to make sure there's no objections but I might pull Geoffrey in just to see if he has opinions and insights. We're hoping to have Crossref review the way the plugin functions anyway, and if we can get in front of issues with the versioning stuff, all the better.

Edit: just acknowledging here too that our current DOI plugin only handles the minting and that any registration-side stuff would be different for every service provider (be they medra, datacite, or Crossref)

@jnugent
Copy link
Member

jnugent commented Jul 11, 2019

@AhemNason - the crossmark plugin was shelved, the client didn't want to pursue the custom development it would have required.

@AhemNason
Copy link

@AhemNason - the crossmark plugin was shelved, the client didn't want to pursue the custom development it would have required.

That's a bummer.

@NateWr
Copy link
Contributor Author

NateWr commented Aug 27, 2019

Ok, so my understanding is that we don't need to do lots of new work related to versioning and DOIs. Once a DOI is set, new versions will not need to generate a new DOI and should be encouraged to keep the same DOI. It would be good, if possible, to automatically update a DOI record when metadata changes with a new version. But this is not offered right now and it can be done manually if desired.

As far as I can see, we need the following:

  • Restore ability to assign a DOI to a publication.
  • Create a custom input field with a button that can generate a DOI matching a pattern. Require the user to click a button to "enable" editing the DOI manually, and include a warning message to discourage this.
  • DOIs copied when a new version is entered.
  • (Maybe) notify the depositing plugin when a new version is published, so that it can automatically update the metadata records.
  • The URL to galleys will change when a new version is released, so if they receive DOIs the URL needs to be updated in the deposit record.
  • A DOI gets automatically generated when something is published, even if the user has not visited the identifiers tab, unless they’ve selected the “I’ll write in my suffix” option in the DOI plugin

@AhemNason if you have a moment can you let me know if I've forgotten anything?

@AhemNason
Copy link

* [ ]  Restore ability to assign a DOI to a publication.

Restore? I'm not sure what you mean by restore here.

* [ ]  Create a custom input field with a button that can generate a DOI matching a pattern. Require the user to click a button to "enable" editing the DOI manually, and include a warning message to discourage this.

Yeah, I think a warning is a good call. I think we ought to broadly discourage people from really touching DOIs manually in any way whenever we can.

* [ ]  DOIs copied when a new version is entered.

Mmm hmm.

* [ ]  (Maybe) notify the depositing plugin when a new version is published, so that it can automatically update the metadata records.

Yeah, both Crossref and Datacite plugins will probably need this. My recommendation is that, if a user has "automatic registration" enabled in the Crossref settings, it should also automatically update that DOI's registered metadata any time the metadata in OJS changes.

* [ ]  The URL to galleys will change when a new version is released, so DOI records need to be updated.

Same as above.

* [ ]  A DOI gets automatically generated when something is published, even if the user has not visited the identifiers tab, unless they’ve selected the “I’ll write in my suffix” option in the DOI plugin

Yup. Most users do not want to think about DOIs. It would be nice, if users had to review the DOIs that were about to be minted when they publish, though. I get the sense that 3.2 has some intervention for metadata related to a publication and users seeing what DOIs are about to be minted for a whole issue would likely be good for both literacy and pre-empting registration headaches.

@AhemNason if you have a moment can you let me know if I've forgotten anything?

We should be as clear as we can possibly be that pre-prints are not yet supported. I suspect lots of people will try to put a square peg in this round hole and, if they do, it means they'll have the same DOI for both a pre-print and a final version. Crossref expects pre-print DOIs to be different from the DOIs of a published version.

@NateWr NateWr moved this from To do to In progress in Versioning Oct 7, 2019
NateWr added a commit to NateWr/ui-library that referenced this issue Oct 9, 2019
NateWr added a commit to NateWr/pkp-lib that referenced this issue Oct 9, 2019
NateWr added a commit to NateWr/ojs that referenced this issue Oct 9, 2019
NateWr added a commit to NateWr/omp that referenced this issue Oct 9, 2019
NateWr added a commit to NateWr/pkp-lib that referenced this issue Oct 9, 2019
NateWr added a commit to NateWr/ui-library that referenced this issue Oct 9, 2019
NateWr added a commit to NateWr/ui-library that referenced this issue Oct 10, 2019
NateWr added a commit to NateWr/pkp-lib that referenced this issue Oct 10, 2019
NateWr added a commit to NateWr/omp that referenced this issue Oct 10, 2019
NateWr added a commit to NateWr/ojs that referenced this issue Oct 10, 2019
NateWr added a commit to NateWr/pkp-lib that referenced this issue Oct 14, 2019
NateWr added a commit to NateWr/pkp-lib that referenced this issue Oct 14, 2019
NateWr added a commit to NateWr/pkp-lib that referenced this issue Oct 14, 2019
NateWr added a commit to NateWr/ojs that referenced this issue Oct 14, 2019
NateWr added a commit to NateWr/ojs that referenced this issue Oct 14, 2019
NateWr added a commit to NateWr/omp that referenced this issue Oct 14, 2019
NateWr added a commit to NateWr/omp that referenced this issue Oct 14, 2019
@NateWr
Copy link
Contributor Author

NateWr commented Oct 14, 2019

PRs:
#5153
pkp/ui-library#43
pkp/ojs#2496
pkp/omp#715

(These PRs also address #4905 and #4876).

NateWr added a commit that referenced this issue Oct 15, 2019
#4867 / #4905 Restore DOI handling and export tools
@NateWr
Copy link
Contributor Author

NateWr commented Oct 15, 2019

Merged

@NateWr NateWr moved this from In progress to Ready for review/testing in Versioning Oct 15, 2019
@NateWr
Copy link
Contributor Author

NateWr commented Oct 15, 2019

@jmacgreg and @AhemNason I took the liberty of assigning this one to you two for testing. In addition to the specified criteria, please give it a real stress test. I was able to test the exports but not the registering or automatic depositing because I don't have the test setup that I need.

NateWr added a commit to pkp/ojs that referenced this issue Oct 22, 2019
NateWr added a commit to pkp/omp that referenced this issue Oct 22, 2019
yammut added a commit to yammut/ojs that referenced this issue Oct 29, 2019
* pkp/pkp-lib#5021 Restore subscription grid search options

* Complete es_ES locale for CrossRef plugin

Added missing translations for es_ES locale.

* pkp/pkp-lib#5023 Fix obsolete constant name

* Address Github security warnings

* pkp/pkp-lib#5015 Changed lang attribute for local keys

* pkp/pkp-lib#5015 Removed extra quotation mark

* Update copyright date

* fix typo in ru_RU locale

* Submodule update

* pkp/pkp-lib#5029 Bump PHP baseline to PHP7.2

* Bump citationStyleLanguage baseline to PHP7.2

* pkp/pkp-lib#5029 Submodule update ##asmecher/i5029-fix##

* pkp/pkp-lib#5029 Disable PHP7.1 Travis tests

* Complete API es_ES locales

Added all missing texts for es_ES in api.xml

* Submodule update

* Minor fixes (proposals)

Updated to september 4, 2019

* sl_SI-3_1_2_update

* Correct XML path for validation

* pkp/pkp-lib#2072 Working prototype of versioning based on new publication entity

This commit includes all of the initial work done to support versioning based on a split between submissions and publications. All submission data related to publication, such as title, abstract, citations, authors and galleys, has been moved to a new publication entity.

Submissions have a "one to many" relationship to Publications. Each Submission may have one or more Publications attached to it. Each Publication is treated as a new version. Published version data can not be modified.

- New publication entity split from submissions
- New API endpoints for publications
- Workflow UI changes to support versions (publications)
- Pre-publication validation checks
- New STATUS_SCHEDULED for publications scheduled for publication in a future issue
- Deprecated many methods on the Submission object
- Upgrade scripts written from 3.1.x.
- Tests updated to work, except for issue import.

Some code is commented out or has not been updated yet. Progress on remaining support for versioning will be tracked in Github.

See: https://github.com/pkp/pkp-lib/projects/15

* pkp/pkp-lib#2072 Fix whitespace and typo errors

* pkp/pkp-lib#2072 Fix conflict with citation style language in template variable name

* pkp/pkp-lib#2072 Fix tests

* pkp/pkp-lib#2072 Drop temporary table during upgrade

* Submodule update ##NateWr/i2072_versioning##

* pkp/pkp-lib#2072 Fix fatal error when previewing article not assigned to issue

* Submodule update

* pkp/pkp-lib#5057 Update MEDRA dev endpoint URL

* pkp/pkp-lib#5055 Fix author dashboard

* Submodule update

* Submodule update

* pkp/pkp-lib#5068 Cast sequences to integers

* Submodule update

* Submodule update

* Submodule update

* Update ru_RU locale after pkp#2457

* allow gateway plugins to add authorization policies

* Permit correct storage of section ID on initial insert

* Submodule update

* pkp/pkp-lib#5017 Include submission subtitle in Crossref XML

* Submodule update

* pkp/pkp-lib#4325 include affiliations for all authors

* Remove unused variable

* Recompile JS

* pkp/pkp-lib#4989 Add defaultReviewMode setting on upgrade

* Remove dead code

* Submodule update

* pkp/pkp-lib#5047 Don't allow galleys to be added or edited in published publications

* Submodule update ##NateWr/i5047_galley_edit##

* pkp/pkp-lib#5045 Restore keywords variables to article details template

* Update pt_BR REVISED_VERSION_NOTIFY email template

* pkp/pkp-lib#5089 fix variable test for section editor count

* pkp/pkp-lib#4870 Support versioning on article landing page

* Submodule update ##NateWr/i4870_reader_versioning##

* pkp/pkp-lib#5087 Don't show category selection if no categories exist

* pkp/pkp-lib#3386 Add new EditorialActionsHandler to minified scripts

* Submodule update ##NateWr/i3386_editorial_actions##

* Code syntax tweak

* pkp/pkp-lib#4906 Remove OAI dependency on published_submissions

* Revert 979337f

* pkp/pkp-lib#5103 Remove sexist language

* pkp/immersion#25 Move language-specific text into locale files

* pkp/immersion#25 Fix test language (on disabled test)

* pkp/immersion#25 Fix test language

* Correct typo

* pkp/pkp-lib#5044 Add date published field to journal entry form

- Change date_published column from datetime to date
- Remove unused publicationType and publicationDateType properties

* Submodule update ##NateWr/i5044_date_published##

* pkp/pkp-lib#5046 Add unpublish button to versions

* pkp/pkp-lib#4779 Move to using XLIFF files for translation (work in progress)

* pkp/pkp-lib#4779 Remove translator plugin

* pkp/pkp-lib#4779 Adapt to PO files instead of XLIFF

* pkp/pkp-lib#4779 Convert selected locales to PO

* pkp/pkp-lib#4779 Submodule update ##asmecher/po##

* pkp/pkp-lib#4779 Convert selected plugin locale files to PO

* pkp/pkp-lib#4779 Submodule update

* pkp/pkp-lib#4779 Convert pt_BR to PO format

* Submodule update

* Submodule update

* pkp/pkp-lib#5045 Indicate publishing schedule in publish confirmation message

* pkp/pkp-lib#5045 Use correct phrase for pre-publication tests

* Submodule update ##NateWr/i5045_publish_message##

* pkp/pkp-lib#5043 Add upgrade script to fix bad submission status

* pkp/pkp-lib#4857 Fix schedule for publication button and move locale string to shared library

* Submodule update ##NateWr/i4857_open_tab##

* pkp/pkp-lib#4873 Fix dependent file handling for versioning

- Deletes dependent files when galley deleted
- Checks if file is used by a previous version before deleting

* Submodule update ##NateWr/i4873_files##

* Update ru_RU locale after PR pkp#2478

* Update ru_RU locale after PR pkp#2481

* pkp/pkp-lib#4859 Fix searching with addition of versioning

* Submodule update

* pkp/pkp-lib#5098 Update workflow template with changes to data

* pkp/pkp-lib#5098 Update workflow handler with changes from pkp-lib

* pkp/pkp-lib#5098 Fix tests

* Submodule update ##NateWr/i5098_performance##

* pkp/pkp-lib#5044 Use locale string from shared library

* Submodule update ##NateWr/i5044_scheduled##

* pkp/pkp-lib#4861 Migrates cover images to support versioning

- Combines coverImage and coverImageAltText settings into one
- Migrates settings to publication_settings table
- Updates article landing page to show correct publication cover image

* Submodule update ##NateWr/i4861_covers##

* pkp/pkp-lib#5138 Fix capitalization of class name

* pkp/pkp-lib#5139 Fix custom block manager plugin; remove extraneous code

* Submodule update

* Submodule update

* pkp/pkp-lib#1375 Permit null issue Number and Year values

* Clean up PHP warnings

* Resolve count erroroneous call on DAOResultFactory

* pkp/pkp-lib#5122 Support Iterator pattern for DAOResultFactories

* pkp/pkp-lib#5122 Use Iterator pattern in search indexing

* pkp/pkp-lib#4880 Properly skip XML import test (to avoid missing publication database inconsistency from broken import code)

* pkp/pkp-lib#5122 Code review tweak

* pkp/pkp-lib#5122 Scrutinizer tweaks

* Submodule update

* Submodule update

* Submodule update

* pkp/pkp-lib#5122 Facilitate the use of Iterators in service classes

* pkp/pkp-lib#4859 Add metadata indexing to publication service

* pkp/immersion#25 Tweak for fr_FR abbreviation

* pkp/pkp-lib#4867 Initial work adding DOIs to publications

* pkp/pkp-lib#4867 Add DOI preview to publish form

* pkp/pkp-lib#4905 Restore support for exporting pub ids and metadata

* Submodule update ##NateWr/i4867_dois##

* Forward-port ae7c745 to master branch

* Submodule update

* pkp/pkp-lib#4804 Fix self-join problem on CrossRef upgrade SQL

* pkp/pkp-lib#4924 Properly display access status for pay-per-view purchases

* Fix filename typo

* pkp/pkp-lib#4593 Fix incorrect access indications in category listing

* Submodule update

* Update ru_RU locale after PR pkp#2496

* Submodule update

* Forward-port fr_CA emailTemplates.xml to master

* pkp/pkp-lib#4168 Migrate submission date_status_modified to last_activity

* pkp/pkp-lib#4168 Document new daysInactive API param

* Submodule update ##NateWr/i4168_last_activity##

* include two new email templates

* two new email templates

* two new email templates

* two new email templates

* two new email templates

* two new email templates

* two new email templates

* two new email templates

* pkp/pkp-lib#4867 Migrate DOI settings on upgrade

* Add issue querybuilder filter for issue ids to support browsebysection plugin

* Fix filter by section parameters in querybuilder

* Fix conditional check on empty array in issue query builder

* Submodule update

* pkp/pkp-lib#5122 Fix check for empty DAOResultIterator and change naming pattern

* pkp/pkp-lib#5122 Use Countable interface in DAOResultIterator

* Submodule update

* Fix PHP warnings/errors

* pkp/pkp-lib#5216 Update links to in-app help

* Add missing ID fetch

* updated fr_CA translation

* pkp/pkp-lib#5122 Update naming pattern when returning an iterator

* Submodule update ##NateWr/i5122_iterator##

* Submodule update: in-app help

* pkp/pkp-lib#5526 Add missing templates in other languages during upgrade

* pkp/pkp-lib#4705 Put code back to fix cover image issue

* pkp/pkp-lib#5208 Update URN plugin to support publications

- Adds FieldUrn component
- Makes the check number generation available in more places
- Updates plugin setting names

* pkp/pkp-lib#5208 Remove extra whitespace

* Submodule update ##NateWr/i5208_urn##

* pkp/pkp-lib#4705 Fixed spacing

* pkp/pkp-lib#4705 Removed spaces

* pkp/pkp-lib#5011 Forward-port to master

* Update ru_RU locale after PR pkp#2519

* Fix subject search

* pkp/pkp-lib#4684 Added mobile nav menu for smaller screens

* Replaced pkp_site_name in body.less to remove default 100% width

* pkp/pkp-lib#4684 HTML adjustments for default theme mobile nav menu

* pkp/pkp-lib#4684 Added close symbol to open mobile nav menu

* pkp/pkp-lib#4684 Renamed classes

* pkp/pkp-lib#4684 Toggle nav menu dropdowns on small/large screens

* pkp/pkp-lib#4684 Moved .pkp_nav_list class to a media query

* Moved .pkp_nav_list out of helpers, so deleting it

* pkp/pkp-lib#4684 Fixed mobile nav styles, added two search bars

* pkp/pkp-lib#4684 CSS for two menu bars WIP

* pkp/pkp-lib#4684 Fixed what is showing and what is not in search bars

* pkp/pkp-lib#4684 Styling mobile search bar

* pkp/pkp-lib#4684 Added separate search form for mobile

* pkp/pkp-lib#4684 Work out layout/design issues with mobile nav in default theme

* pkp/pkp-lib#4684 Remove unused search form template

* pkp/pkp-lib#4684 Improve style of task count in nav menus

* pkp/pkp-lib#4684 Fix inaccessible user nav item due to lost hover

* pkp/pkp-lib#4684 Fix mobile nav menu widths from phone to tablet size

* pkp/pkp-lib#4684 Remove mobile user nav styles on large screens

* pkp/pkp-lib#4684 Restore animated search styles in default theme header

* pkp/pkp-lib#4684 Fix search form class and mobile nav padding

* Submodule update ##NateWr/i4684_nav_menu##
ajnyga pushed a commit to ajnyga/ojs that referenced this issue Nov 17, 2019
ajnyga pushed a commit to ajnyga/ojs that referenced this issue Nov 17, 2019
@NateWr NateWr closed this as completed Feb 10, 2020
Versioning automation moved this from Ready for review/testing to Done Feb 10, 2020
@navotera
Copy link

navotera commented Feb 8, 2021

Dear @NateWr
We just upgrade our journal from OJS 2 to OJS 3.2.1-4. We have upgrade it on other server and migrate it to the real server after we finish the upgrade, unfortunately the DOI record URL is mistakenly updated to the staging server location.

Is there any mechanism on the OJS such as on its cron or when the upgrade process is being process connecting the DOI server to update the article URL ?

@AhemNason
Copy link

Hi @navotera

The current OJS plugin has no method for batch updating of DOI metadata. At the moment, the best method is to update the records issues-by-issue. If you submit too many at a time, the plugin will time out. To speed things up, I recommend turning off the validation check.

It's worth noting that our crossref plugin is in the process of getting overhauled so this functionality (which would be appreciated by many users) will hopefully make it into the next iteration of the plugin when it is released. It's in development but yet to be scheduled.

Mike

@navotera
Copy link

navotera commented Feb 9, 2021

Thank you so much @AhemNason for your detailed explanation.

JackBlackLight pushed a commit to cul/ojs-plugin-doi that referenced this issue Sep 15, 2021
JackBlackLight pushed a commit to cul/ojs-plugin-doi that referenced this issue Sep 15, 2021
henriqueramos pushed a commit to henriqueramos/ui-library that referenced this issue Jan 20, 2022
henriqueramos pushed a commit to henriqueramos/ui-library that referenced this issue Jan 20, 2022
henriqueramos pushed a commit to henriqueramos/ui-library that referenced this issue Jan 20, 2022
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
Versioning
  
Done
Development

No branches or pull requests

5 participants