Skip to content

release: server.json's version is not bumped by release automation, so every release PR fails server-manifest:check #9874

Description

@JSONbored

Problem

scripts/check-server-manifest.ts requires server.json's version and packages[0].version to equal @loopover/mcp's package.json version, and it runs in test:ci as server-manifest:check.

release-please bumps packages/loopover-mcp/package.json but never touches server.json. So every release PR for the engine-and-dependents group fails CI on:

server.json has 2 problem(s) (#9526):
  version: must equal @loopover/mcp's 3.17.0 (release automation owns it), got 3.15.2
  packages[0].version: must equal @loopover/mcp's 3.17.0, got 3.15.2

Confirmed live on #9780, and fixed there by hand — which is the point: it needs re-fixing by hand on every release, and a machine-generated branch is exactly where a manual step gets forgotten.

Why the existing sync pattern does not apply

scripts/sync-release-manifest.ts (+ its --check) is the repo's idiom for this shape, but it does not help here: release PRs are generated by the bot, so a script a human has to run never fires on the branch that needs it.

The fix

release-please should write server.json itself when it creates the release PR, via extra-files on the packages/loopover-mcp entry in release-please-config.json:

"extra-files": [
  { "type": "json", "path": "server.json", "jsonpath": "$.version" },
  { "type": "json", "path": "server.json", "jsonpath": "$.packages[0].version" }
]

The open question is path resolution. extra-files paths are documented as relative to the package's own directory, which would resolve to packages/loopover-mcp/server.json rather than the repo-root server.json. This needs to be confirmed against the release-please version actually in use (and the root-relative escape, if there is one) before landing — a wrong guess here silently breaks releases rather than failing loudly, which is why #9780 was fixed by hand instead.

Acceptance

A release PR for @loopover/mcp arrives with server.json already carrying the new version, server-manifest:check passes on it unaided, and no human step is required between release-please opening the PR and CI going green. Verify by watching the next generated release PR, not by running anything locally.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions