Thanks to visit codestin.com
Credit goes to github.com

Skip to content

pkp/pkp-lib#11332 Add support for DOIs for peer reviews and author responses#5297

Merged
ewhanson merged 2 commits intopkp:mainfrom
ewhanson:i11332
Feb 12, 2026
Merged

pkp/pkp-lib#11332 Add support for DOIs for peer reviews and author responses#5297
ewhanson merged 2 commits intopkp:mainfrom
ewhanson:i11332

Conversation

@ewhanson
Copy link
Contributor

No description provided.

@ewhanson ewhanson changed the title Add support for DOIs for peer reviews and author responses pkp/pkp-lib#11332 Add support for DOIs for peer reviews and author responses Jan 28, 2026
@ewhanson ewhanson marked this pull request as ready for review February 9, 2026 00:42
Copy link
Contributor

@bozana bozana left a comment

Choose a reason for hiding this comment

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

Hi @ewhanson, great work!
Just a few comments/questions...


$q = DB::table($this->table, 'd')
->leftJoin('publications as p', 'd.doi_id', '=', 'p.doi_id')
->leftJoin('submissions as s', 'p.publication_id', '=', 's.current_publication_id')
Copy link
Contributor

Choose a reason for hiding this comment

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

here maybe as well, as below: I think this could work for Crossref, when all submission's objects have the same status, and given that the submission's current publication is the latest published... but it is mAYBE better to consider all, e.g. for DataCite where we save the status per sub-object (I think)...

Copy link
Contributor Author

Choose a reason for hiding this comment

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

By this do you mean it's better to consider all publications, not just the current publication? That's what I was wondering as well (and just asked you about below).

->leftJoin('review_rounds as rr', 'rrar.review_round_id', '=', 'rr.review_round_id')
->leftJoin('publications as p', 'rr.publication_id', '=', 'p.publication_id')
->whereNotNull('rrar.doi_id')
->where('p.status', '=', PKPPublication::STATUS_PUBLISHED);
Copy link
Contributor

Choose a reason for hiding this comment

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

Are author responses always publicly visible?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

They currently are, but this should probably not be the case. I think handling that might be a separate issue, though. Are you okay to keep this as is if I create another issue that addresses author response visibility?

Copy link
Contributor Author

@ewhanson ewhanson Feb 11, 2026

Choose a reason for hiding this comment

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

Updated this in a few different places so it only gets public ones. Can change the logic later if we find we need to.

$q->whereIn('d.doi_id', function (Builder $q) {
$q->select('p.doi_id')
->from('publications', 'p')
// PR_TODO: It doesn't look like this takes DOI versioning into consideration.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@bozana, I also meant to ask you thought about this and if this is a problem based on your work on DOI versioning. I'm not sure if I'm missing something here, but to me it looks like this and the PR_TODO line below both only consider the current publication? Is this intentional or do we need to consider how to update this to account for all publications? What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

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

I think this works right now, when we consider how we deposit to Crossref -- I believe that is why I have not changed it: There need to be a current publication that is published (and it is always the last published publication). This is correct. Also, because we submit all publications of a submission to Crossref in one XML, all publications have the same deposit status. So the check of the status only for the current publication here works too, I believe.
However, I need to see how is it for DataCite -- if we submit every Publication separately and have separate statuses, then this will probably not be correct. Thus, we could leave it so for now, and see then later, when working on DataCite. Or, we could immediately consider a different solution, that would also work for both cases (Crossref and DataCite).

@ewhanson ewhanson force-pushed the i11332 branch 2 times, most recently from 311a12a to 7e4e679 Compare February 11, 2026 19:37
@ewhanson ewhanson merged commit 06b5a96 into pkp:main Feb 12, 2026
3 of 8 checks passed
@ewhanson ewhanson deleted the i11332 branch February 12, 2026 18:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants