Add Reviewer Certificate plugin (generic)#473
Conversation
Generates personalized PDF certificates for peer reviewers after completing reviews. Compatible with OJS 3.3, 3.4, and 3.5. Homepage: https://github.com/ssemerikov/reviewerCertificate
|
@ssemerikov, thanks for the PR! I have a few notes to consider...
|
Split single multi-version release into three separate packages (OJS 3.3, 3.4, 3.5) per reviewer recommendation. v1.4.0 adds context isolation, HTML title sanitization, and input validation.
|
Thanks for the review, @asmecher! All three items addressed in v1.4.0:
Details: 596402b |
|
Thanks, @ssemerikov! I have some more recommendations...
It looks like a fair amount of the plugin is AI-coded; there's no problem with that in theory, but we do ask that devs who work with AI take extra care to make sure the results are written with the level of care and brevity the developer would themselves take. The speed of using AI to generate code -- and lots of it! -- can easily overwhelm our capacity to review it. |
- TCPDF now installed via Composer instead of bundled (27MB reduction) - Removed dangerous root-level PHP utility scripts - Eliminated code duplication across plugin classes - Each stable branch contains only version-specific code paths - All packages tested with Playwright E2E on OJS 3.3, 3.4, 3.5 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Thank you for the detailed feedback, @asmecher. All four items have been addressed in v1.5.0: 1. Composer for TCPDFTCPDF is now declared as a Composer dependency (
Commit: 2. Removed dangerous utility filesAll 9 root-level PHP scripts removed from git tracking: 3. Trimmed stable branchesEach stable branch now contains only the code paths for its target OJS version:
4. Code brevityEliminated 5 duplicated methods across the codebase:
Testing
Updated releases
Plugin gallery XML updated in this PR to reference v1.5.0 releases. |
|
@ssemerikov, just to confirm -- has a human reviewed all of this thoroughly before it gets sent to me? |
|
@asmecher, honestly, not as thoroughly as I should have. Claude generated much of the code and the PR responses. I tested the basic functionality, and the automated tests pass, but I haven't reviewed every line. |
|
Thanks, @ssemerikov, and actually this will be helpful in setting an AI policy, which we don't have yet. (I've started a discussion on that. Feel free to join in! I picked this among several examples.) I would like to see this plugin move ahead, but need to reduce the burden on us as the reviewer. We now have 4 branches to consider; each should be tuned to the application it's compatible with, and there should be minimal changes between them -- just what's required to ensure compatibility. If it helps, my process in reviewing these is typically...
As you can see, it's important for the volume of code to be kept low, clarity high, and for the branches to be closely synchronized. This will be easier for you in the long run too. This is a valuable contribution -- but it's one of many, and we have to balance time spent on reviews carefully against dev work! Your human stewardship of what you send, before you send it, is critical to keeping it manageable. |
Summary
Adds the Reviewer Certificate plugin to the Plugin Gallery.
The plugin generates personalized PDF certificates for peer reviewers after completing review assignments. Features include customizable templates with background images, QR code verification, batch generation, download tracking, and 32 language translations.
Release details (v1.4.0)
Three version-specific packages per reviewer recommendation:
5101e4cba8f77da3106297bd05c12ab090b8fd33b000f741e7f1a00de0df45bac2881550df8064a57949c357566a7206Changes in v1.4.0 (addressing review feedback):
stable-3_3_0,stable-3_4_0,stable-3_5_0)context_idto prevent cross-journal accessstrip_tags()for PDF, Smarty|escapefor templates/^[A-F0-9]{16}$/Checklist
.tar.gzwith correct root folder (reviewerCertificate/)version.xmlpresent at top level with matching<application>name<certification>element (community plugin, not PKP-reviewed)~wildcard notation<release>blocks per OJS major version