Skip to content

feat(framework): rolling weekly release model (main/next)#308

Merged
blafourcade merged 2 commits into
mainfrom
feat/rolling-weekly-releases
Jun 19, 2026
Merged

feat(framework): rolling weekly release model (main/next)#308
blafourcade merged 2 commits into
mainfrom
feat/rolling-weekly-releases

Conversation

@blafourcade

@blafourcade blafourcade commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

🎯 What & why

Weekly rolling releases on main/next: work integrates on next, promotes to main, release-please opens a Release PR that is auto-merged, then main back-merges into next. Stops new users from pulling merged-but-unreleased code from main HEAD under an old version number.

🛠️ How it works

  • .github/workflows/ci.yml — after release-please opens the Release PR, a step auto-merges it with the App token. --admin is required: a plain gh pr merge is refused by branch policy even for a bypass actor (verified end-to-end in a throwaway sandbox), and --admin performs the override the ruleset bypass permits. An App-token merge also re-fires the downstream push/release workflows a GITHUB_TOKEN merge would not.
  • .github/workflows/back-merge.yml — on release: published, merges main into next; on conflict opens a PR instead of pushing silently.
  • .github/rulesets/next.json — protects next; the App gets always bypass so the back-merge can push.
  • .claude-plugin/marketplace.json — drop the stale per-entry version (schema-optional; plugin.json is the source of truth).
  • Docs, no duplication: RELEASE.md owns the flow; aidd_docs/memory/vcs.md the mechanics; GOVERNANCE.md the branch protection; CONTRIBUTING.md points to both.
  • Not --auto: a bot can never satisfy the required review, so it would wait forever (repo also had auto-merge off).

🧪 How to verify

Validated end-to-end on a throwaway sandbox: release-please → App --admin auto-merge of the Release PR → tag → back-merge.yml made mainnext (ahead 0 / behind 0). Local + static checks:

  • jq '.plugins[]|has("version")' .claude-plugin/marketplace.json → all false
  • actionlint .github/workflows/ci.yml .github/workflows/back-merge.yml → clean
  • back-merge git-logic sim (clean / conflict / hotfix) in aidd_docs/tasks/2026_06/sandbox-test-runbook.md

⚠️ Heads-up

Rollout order on this repo: next branch created ✓, next ruleset applied ✓ — merging this PR makes the auto-merge + back-merge live. After merge, target next for new work (not main). The body-length release-publish quirk seen in the sandbox was a first-mega-release artifact; this repo releases incrementally and is unaffected.

✅ I certify

  • I DO CERTIFY I READ EACH LINE OF THE PULL REQUEST BECAUSE I AM A SOFTWARE ENGINEER, NOT A AI PUPPY.

blafourcade and others added 2 commits June 19, 2026 11:59
Weekly rolling-release flow: work integrates on `next`, promotes to
`main` weekly, release-please opens a Release PR that is auto-merged,
then `main` back-merges into `next` automatically. Urgent fixes take a
hotfix fast lane straight to `main`.

- ci.yml: auto-merge the release-please Release PR (App token bypass)
- back-merge.yml: automated main -> next sync on release published
- rulesets/next.json: branch protection for the integration branch
- marketplace.json: drop stale per-entry version (plugin.json is source)
- RELEASE.md: the flow; vcs.md/GOVERNANCE.md/CONTRIBUTING.md aligned
- aidd_docs: brainstorm, plan, sandbox test runbook

Docs describe the target; next + auto-merge + back-merge must be wired
on the repo (create next, apply rulesets) before the flow is live.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sandbox probe: a plain `gh pr merge --squash` is refused by the branch policy
even for a bypass actor (unmet review + pending checks). `--admin` performs the
override merge the ruleset bypass permits. `--auto` is not viable (a bot cannot
satisfy the required review). Update the ci.yml step and the runbook.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@blafourcade blafourcade merged commit 2908b7a into main Jun 19, 2026
9 checks passed
@blafourcade blafourcade deleted the feat/rolling-weekly-releases branch June 19, 2026 11:10
@aidd-bot aidd-bot Bot mentioned this pull request Jun 19, 2026
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.

2 participants