Skip to content

Add Blind Review Guard 1.0.2.0 for OJS 3.5 - #524

Open
edersotto wants to merge 1 commit into
pkp:mainfrom
OJSBR:blindReviewGuard-1.0.0.0
Open

edersotto wants to merge 1 commit into
pkp:mainfrom
OJSBR:blindReviewGuard-1.0.0.0

Conversation

@edersotto

@edersotto edersotto commented Aug 29, 2026

Copy link
Copy Markdown

Adds Blind Review Guard 1.0.2.0, a generic plugin that checks the files a reviewer is about to receive for anything that identifies the authors, and can remove the identifying metadata. This update replaces the 1.0.0.0 entry.

What it does

  • Checks document properties, tracked changes, comments, the text and the file name against the submission's own contributors (names, e-mail addresses, ORCID iDs, affiliations).
  • Records the findings in the submission's activity log and warns the editor; can remove the identifying metadata of Office files.
  • Works on the copy the editorial decision creates in the review stage. The identified version in the submission stage is never touched: the cleaned package is stored as a new file for the review copy only.
  • Stays inactive in open review, never edits the text of a manuscript and never rewrites a PDF. Reading is bounded (file, stream and zip part size limits).

How it plugs in

Core hooks only — SubmissionFile::add and ReviewAssignment::add — with files stored through the core file service and Repo::submissionFile(). The hooks are registered unconditionally and each callback checks whether the plugin is enabled in the submission's journal, following pkp/pkp-lib#11793, so files created from the command line or a queued job are covered. Settings use the standard plugin settings form with POST and CSRF validation; at site level there is nothing to configure.

Tests

  • PHPUnit tests on PKPTestCase (75: matching rules, cleaning that never writes the source, PDF and OOXML size limits, plugin classes against the installed PKP, site level, 38 locales).
  • Cypress spec run by pkp/pkp-github-actions on OJS 3.5 (PHP 8.2/8.3, MySQL/PostgreSQL) — green; with a prepared submission it also sends a file to review and checks that the author's upload keeps its stored file.
  • Tests stay in the repository; the release package contains only the plugin.

Checks run before updating this

  • xmllint --schema ./plugins.xsd ./plugins.xml --noout — validates.
  • Each package URL resolves, unpacks as a single plugin directory without tests or CI files, and matches the md5 in the entry:
    • 1.0.2.0: fc10d13275b3b1cc8ab305ecffaf3ffd

Use of generative AI

Generative AI (Claude, by Anthropic) was used to write and run tests, improve the code and bring it in line with PKP standards. Every change was reviewed and tested by OJSBR, which maintains the plugin and is responsible for its releases.

GPL-3.0 · https://github.com/OJSBR/blindReviewGuard

@edersotto

Copy link
Copy Markdown
Author

Updated the entry to release 1.0.1.0, which replaces 1.0.0.0: the cleaned file is now stored as a new file for the review copy, so the author's original upload is never modified. The entry also carries en alongside en_US. The XML validates against plugins.xsd.

@edersotto
edersotto force-pushed the blindReviewGuard-1.0.0.0 branch from 59d2ee3 to ad51d60 Compare September 15, 2026 18:18
@edersotto edersotto changed the title Add blindReviewGuard 1.0.0.0 for OJS 3.5 Add Blind Review Guard 1.0.2.0 for OJS 3.5 Sep 15, 2026
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.

1 participant