ci(release): let release-please bump server.json's version itself - #9880
Conversation
) check-server-manifest requires server.json's version and packages[0].version to equal @loopover/mcp's, and release-please bumped the package without touching server.json -- so every generated release PR failed CI until someone synced the file by hand. A manual fix does not hold: #9780 was fixed that way and release-please regenerated the branch and discarded the commit, putting server.json back to 3.15.2. That is the whole reason this belongs in the config rather than in a script someone runs. The leading slash is load-bearing. release-please joins an extra-file path to the package directory UNLESS it starts with "/" (strategies/base.js addPath), so plain "server.json" would have resolved to packages/loopover-mcp/server.json and silently updated nothing. Verified against the installed release-please 17.10.4: "/server.json" resolves to the repo root, and the GenericJson updater rewrites both jsonpaths in the real file.
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-29 18:35:50 UTC
Review summary Nits — 5 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #9880 +/- ##
==========================================
- Coverage 91.75% 90.87% -0.88%
==========================================
Files 919 919
Lines 112987 112987
Branches 27193 27193
==========================================
- Hits 103667 102676 -991
- Misses 8034 9223 +1189
+ Partials 1286 1088 -198
Flags with carried forward coverage won't be shown. Click here to find out more. |
Closes #9874. Unblocks #9780 (and every release PR after it).
Problem
check-server-manifestrequiresserver.json'sversionandpackages[0].versionto equal@loopover/mcp's, and it runs intest:ci. release-please bumps the package but never touchesserver.json, so every generated release PR fails CI:A manual fix provably does not hold
I fixed #9780 by hand first. release-please then regenerated the branch and discarded the commit —
server.jsonis back to3.15.2there now. That is the whole reason this belongs in the config and not in a script a human runs: the branch that needs the fix is the one the bot rewrites.It also rules out the repo's existing
sync-release-manifest.tsidiom, which is a fine pattern but only ever runs when a human runs it.The leading slash is load-bearing
release-please joins an extra-file path to the package directory unless it starts with
/—strategies/base.js:So a plain
"server.json"would have resolved topackages/loopover-mcp/server.jsonand silently updated nothing — the failure mode being fixed, but harder to spot. I flagged this as the open question on #9874 rather than guessing; this PR lands it only because it is now verified.Verified, not assumed
Against the installed release-please 17.10.4, exercising its real
addPathlogic and its realGenericJsonupdater on this repo's actualserver.json:Both jsonpaths resolve and rewrite;
jsonpath-plushandles$.packages[0].version, and both targets are strings (the updater skips non-strings with a warning).Effect
Once this is on
main, release-please regenerates #9780 withserver.jsonalready carrying the new version, andserver-manifest:checkpasses unaided. No human step between the bot opening a release PR and CI going green.Config-only, 5 lines. Nothing to test locally beyond the verification above — the real confirmation is the next generated release PR, which is what #9874's acceptance asks for.