ci(release): align beta branch config with main's canonical form - #209
Conversation
.releaserc.json and .releaserc-npm.json on production/beta still list
{name: "main", channel: "next", prerelease: "next"} as the prerelease
branch entry, while main's own config already reads
{name: "beta", channel: "beta", prerelease: "beta"}. Because
semantic-release reads the *triggered* branch's config, beta was
structurally unable to publish (confirmed via run 29759934202:
"configured to only publish from production, main").
Aligns beta's config with main's already-correct form (Option A from
plan-npm-beta-config-restructure.md, user-approved 2026-07-24). No
workflow trigger changes needed.
Signed-off-by: DrumRobot <drumrobot43@gmail.com>
AI Review SummaryReviewer matrix: CodeRabbit (review disabled for this base branch — repo policy) + Copilot (no active subscription on the acting account, no existing review) → Internal Code Review (auto-fallback, code-reviewer subagent). Internal Code Review findings
On finding #5: this is Verdict0 Critical / 0 Important (diff-correctness) / 0 Minor. The 2-line config change is correct, minimal, and isolated. Real CI signal (a semantic-release dry-run against this branch's actual config) requires an actual push to Formal Review: not posted. Self-authored PR (author = acting account |
Summary
betais structurally unable to publish. semantic-release reads the triggered branch's own.releaserc.json/.releaserc-npm.json, and bothproductionandbetastill list{name: "main", channel: "next", prerelease: "next"}as the prerelease entry — whilemain's own config already reads{name: "beta", channel: "beta", prerelease: "beta"}. Evidence: release job run29759934202loggedconfigured to only publish from production, main.This is Phase 1 of
plan-npm-beta-config-restructure.md(Option A, user-approved). Alignsproduction/beta's config withmain's already-correct form. No workflow trigger changes needed (push: branches: [beta, production]stays as-is).This PR is opened as a draft against
betafirst (notproduction) per the "beta before production, always" rule — using this PR's CI preview job as the Phase 0 dry-run verification, since localnpx semantic-release --dry-runrepeatedly failed on an unresolved npm/pnpm environment issue (see plan Progress Checklist for the failed local repro attempts).What to check in the preview job
npm-semantic-release.ymlpreview job output no longer says "configured to only publish from production, main"-beta.Nsuffixvsx-semantic-release.ymlpreview shows the equivalent for the vscode lineDo not merge without explicit approval — merging triggers the
beta-vscode/beta-npmenvironment gate, which is a real publish path.Test plan
git show origin/{main,production,beta}:.releaserc*.jsonthat the asymmetry described above is real (not stale-doc confusion — cross-checked against.claude/rules/branch-source-matrix.md, which is a known-stale doc already tracked in Issue.claude/rules/branch-source-matrix.mddescribes a superseded release-branch model #208)-beta.Nversion (post-push, pending CI)