feat(release): automate mcp/engine releases with release-please - #4162
Conversation
|
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 #4162 +/- ##
=======================================
Coverage 93.72% 93.72%
=======================================
Files 387 387
Lines 36309 36309
Branches 13300 13300
=======================================
Hits 34032 34032
Misses 1621 1621
Partials 656 656 🚀 New features to boost your workflow:
|
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 Gittensory review result - fixes requiredReview updated: 2026-07-08 09:05:20 UTC
🛑 Suggested Action - Manual Review
Review summary Nits — 7 non-blocking
Why this is blocked
CI checks failing
Review context
Contributor next steps
Signal definitions
🟩 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 Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Adds release-please-config.json + .release-please-manifest.json (two components: packages/gittensory-mcp -> mcp-v<semver>, matching the existing tag convention exactly; packages/gittensory-engine -> engine-v<semver>) and .github/workflows/mcp-release-please.yml, modeled on metagraphed's release-please.yml: scheduled every other day, maintains a Release PR per component from conventional commits, and explicitly dispatches npm-publish.yml / publish-engine.yml on release (a GITHUB_TOKEN-created tag doesn't fire push-triggered workflows -- both publish workflows already support released_by_release_please from their earlier hardening). separate-pull-requests: true, unlike metagraphed's combined-PR default -- these two packages have independent release cadences and separate publish targets, and bundling them fights this repo's small-focused-PR convention. package-lock.json's two workspace version fields get release-please's documented JSON-path extra-files updater, not a shell `npm install --package-lock-only` call (proven destructive to this monorepo's lockfile earlier this session). Retires changelog:check:mcp from test:release:mcp and the changelog section check from mcp:release-candidate: release-please is now the authority on changelog freshness for its own PRs, and its output format differs from the custom generator's -- keeping both active would immediately conflict. checkChangelog/changelogHasVersionSection stay in mcp-release-candidate-core.mjs (still tested, still correct) as an available utility for the manual-override path; only the automated report's call site is removed. scripts/generate-mcp-changelog.mjs and mcp-release-watch.yml are untouched -- the watch issue remains the broader-coverage audit signal (release-please only scans each component's own subtree), and the custom generator stays available as a manual fallback.
f411e0a to
a19ace4
Compare
Summary
Rollout (not done in this PR)
Per the plan: trigger this workflow manually (`workflow_dispatch`, not the cron) once, watch the Release PR(s) it opens, confirm changelog/version-pin correctness by eye before approving the merge — only let the cron run unattended after that first cycle completes cleanly through publish.
Test plan