chore(release): prepare 1.5.0 - #77
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #77 +/- ##
=======================================
Coverage 81.05% 81.05%
=======================================
Files 43 43
Lines 3151 3151
Branches 523 523
=======================================
Hits 2554 2554
Misses 191 191
Partials 406 406 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Bump version to 1.5.0 across the plugin header, block.json, and the package manifests, and move the readme stable tag. Promote the CHANGELOG [Unreleased] section to [1.5.0]. Minor rather than patch: the Block Accessibility Checks integration now requires BAC 4.0, so on BAC 3.x the bibliography checks silently stop appearing. That is a behavior change for existing users, not a fix. Port the security entries into readme.txt, which had none. CHANGELOG.md documented six, but readme.txt is what installed users and WordPress.org readers actually see. Separate them by severity rather than listing six equal Security: bullets. Only the two from #75 were exploitable, and the read-path half shipped in 1.4.2 -- unauthenticated, free, repeatable, ~12s of CPU per request. The three from #76 were never exploitable; that commit says so in its first line. Flattening all six would have made three hardening changes read as live vulnerabilities while burying the one that justifies the upgrade, which is the opposite of what a changelog is for. The U+2028/U+2029 escaping loses the Security label entirely: ld+json is never executed, and the commit that made the change calls it not a security issue. Upgrade Notice retargeted at the denial-of-service fix alone and kept under the 300-character wp.org guidance. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Version bump and changelog prep for 1.5.0. No functional code changes — every source change in this release already landed on
main.Why minor, not patch
The Block Accessibility Checks integration now requires BAC 4.0. On BAC 3.x the v4 registration function is absent, so the integration stays dormant and the four bibliography checks silently stop appearing. That's a behavior change for existing users, not a fix, and
1.4.3would undersell it. Borges itself is unaffected whether BAC is outdated or absent.Version bumped in five places
bibliography-builder.phpheader,block.json,package.json,package-lock.json(both the top-level andpackages.""entries), and the readmeStable tag. Verified stamped correctly inside the built zip, not just in source.readme.txt had no security entries
CHANGELOG.mddocumented six;readme.txtlisted none of them. That file is what installed users and WordPress.org readers actually see, and this is substantially a security release. All six are now there in user-facing language, with the section flagged at the top and the unauthenticated issue leading:GET /posts/{id}/bibliographies?format=textstripped stored citation text with no length bound. Past ~600 KB core's script/style regex degrades to catastrophic backtracking — ~12s of pinned CPU per read, on a route requiring no authentication and repeatable at no cost to the caller.http/https.wp_safe_remote_get()for PMID lookups, and U+2028/U+2029 escaping.I kept the changelog's framing that the U+2028/U+2029 fix is not an XSS issue —
ld+jsonis never executed. Worth a second look, since aSecurity:prefix on wp.org gets read with more alarm than that one warrants.Added the missing Upgrade Notice at 291 characters, under wp.org's 300 guidance.
Verification
Jest 678 passing, PHPUnit 190 passing, Psalm and PHPCS exit 0,
lint:js/lint:css/lint:i18nclean,composer verify:metricsmatching,npm audit --omit=devandcomposer audit --no-devboth clean,npm run buildandnpm run package:releaseproducing a 463K zip with no dev metadata.One local-only snag worth recording:
composer test:phpinitially failed 6StyleYearRenderingTestcases, but only against thevendor/copies of Chicago-notes, MLA, and OSCOLA — never the committedpackages/sources. A stale June 14 vendor mirror still carried the unrenderablevariable="issued" form="text". Reinstalling the path package cleared it. Nothing in the repo was wrong; that test's dual source/rendered provider did its job.Dependabot #73
Checked against the typescript pin from 8945eeb. No conflict: #73 touches only
package-lock.json, leaving thetypescript: ~5.3.3override inpackage.jsonintact, and its regenerated lockfile resolves typescript to 5.3.3 with zero@typescript/*platform binaries — exactly what the pin was meant to enforce.websocket-driverstays at 0.7.5. It also merges cleanly against this branch. Safe either before or after this release.Not covered here
The manual sections of
docs/release-readiness-checklist.md— editor QA, frontend/output QA, accessibility, data integrity, and the Studio sample pages (post=12/14/15). The http/https allowlist changes link rendering, so the frontend output checks are more load-bearing than usual this time.🤖 Generated with Claude Code