docs/guides/RELEASING.md
This repo uses a two-branch flow to keep main stable for users:
beta: integration branch where feature PRs landmain: stable branch that should match the latest release tagbeta to main via PRmainbetaRelease note quality depends on how you merge:
beta is OK.beta -> main promotion PR. Prefer a merge commit (or rebase merge) so GitHub can produce better auto-generated release notes.patch, minor, or majormainWhat the workflow does:
release/vX.Y.Z branch with the version bump commitmainvX.Y.Z on the merged commitmain back into beta (so beta gets the bump)vX.Y.ZX.Y.Zunity-mcp-X.Y.Z.mcpb attached to the GitHub ReleaseThe release workflow uses PRs instead of direct pushes, so it works with strict branch protection. No bypass actors are required.
Recommended ruleset for main:
merge, rebase (no squash for promotion PRs)0 (so automated PRs can merge without human review)Recommended ruleset for beta:
squash (for feature PRs)0 (so the sync PR can auto-merge)The workflow uses gh pr merge --auto to automatically merge PRs once checks pass.
To enable:
Without this setting, the workflow will fall back to direct merge attempts, which may fail if branch protection requires checks.
The workflow fails if the computed tag already exists. Pick a different bump type or investigate why a tag already exists for that version.
If the version bump PR cannot be merged (e.g., required checks fail):
release/vX.Y.Z branch, and re-run the workflow.main -> beta) failsIf the sync PR has merge conflicts:
If the workflow fails mid-run, a release/vX.Y.Z branch may remain. Delete it manually before re-running:
git push origin --delete release/vX.Y.Z