Skip to content

ci(release): align beta branch config with main's canonical form - #209

Merged
DrumRobot merged 1 commit into
betafrom
fix/beta-releaserc-branches-alignment
Aug 11, 2026
Merged

DrumRobot merged 1 commit into
betafrom
fix/beta-releaserc-branches-alignment

Conversation

@DrumRobot

Copy link
Copy Markdown
Member

Summary

beta is structurally unable to publish. semantic-release reads the triggered branch's own .releaserc.json/.releaserc-npm.json, and both production and beta still list {name: "main", channel: "next", prerelease: "next"} as the prerelease entry — while main's own config already reads {name: "beta", channel: "beta", prerelease: "beta"}. Evidence: release job run 29759934202 logged configured to only publish from production, main.

This is Phase 1 of plan-npm-beta-config-restructure.md (Option A, user-approved). Aligns production/beta's config with main's already-correct form. No workflow trigger changes needed (push: branches: [beta, production] stays as-is).

This PR is opened as a draft against beta first (not production) per the "beta before production, always" rule — using this PR's CI preview job as the Phase 0 dry-run verification, since local npx semantic-release --dry-run repeatedly 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.yml preview job output no longer says "configured to only publish from production, main"
  • Preview reports a computed next version with a -beta.N suffix
  • vsx-semantic-release.yml preview shows the equivalent for the vscode line

Do not merge without explicit approval — merging triggers the beta-vscode/beta-npm environment gate, which is a real publish path.

Test plan

.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>
@DrumRobot
DrumRobot marked this pull request as ready for review July 25, 2026 10:13
@DrumRobot

Copy link
Copy Markdown
Member Author

AI Review Summary

Reviewer 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

# Severity Finding Verdict
1 JSON syntax/structure preserved in both files, diff confined to the single branches line ✅ Verified — no issue
2 No side effect on the production entry in either config (byte-identical before/after) ✅ Verified — no issue
3 tagFormat / plugin config / asset lists untouched in both files ✅ Verified — no issue
4 No risk to the production stable-release path; workflow trigger unchanged ✅ Verified — no issue
5 Important (context, not a diff bug) .claude/rules/branch-source-matrix.md describes beta as retired, contradicting this PR's premise Acknowledged — see below

On finding #5: this is .claude/rules/branch-source-matrix.md, already confirmed stale in a prior investigation — it was written 2026-07-19 and superseded by PR #205 (merged 2026-07-20, "restructure release branch strategy to separate release commits"). Primary-source verification (git show origin/{main,production,beta}:.releaserc*.json) confirms the asymmetry this PR fixes is real: main's config already reads {name:"beta",channel:"beta",prerelease:"beta"}, while production/beta still read the stale {name:"main",channel:"next",prerelease:"next"}. The doc itself is tracked separately for correction: #208.

Verdict

0 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 beta — the workflow triggers only on push, not pull_request. Recommend merging to get that signal, with the understanding that the preview job runs unconstrained (no environment gate) and only the separate beta-npm/beta-vscode environment approval can trigger an actual publish.

Formal Review: not posted. Self-authored PR (author = acting account DrumRobot); the es6kr org's review-account counterpart (daegunjhy) shares the same commit-author email (drumrobot43@gmail.com), which GitHub treats as a self-approval attempt regardless of which account posts it — per self-review-account-switch.md condition 4, this falls back to issue-comment Summary only.

@DrumRobot
DrumRobot merged commit da0e0ae into beta Aug 11, 2026
1 check passed
@DrumRobot
DrumRobot deleted the fix/beta-releaserc-branches-alignment branch August 11, 2026 01:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant