-
-
Notifications
You must be signed in to change notification settings - Fork 6
Back to Milestones
Release-branch model & multi-channel CD
OpenJun 16, 2026
No due date
•Last updated Shift the project from "every merge to main = release" to a release-branch model with tag-triggered, multi-channel CD.
Driven by RFC #267 — design discussion, open questions, work breakdown.
What changes
mainbecomes the integration trunk — what's inmainis what's currently stable for the active major. Merging tomainno longer publishes.release/vNbranches are the release channels —release/v11cut frommainat the v11.0.0 ship point. Eventuallyrelease/vN.Mfor minor lines.- Tag-triggered publish — pushing
v11.0.4(or similar) torelease/v11fires the publish workflow. Merging to a release branch only stages commits. - Hotfix flow via cherry-pick — fixes land on
mainfirst, then cherry-pick torelease/vNand tag. - Multi-channel CD via GitHub Environments — three environments keyed by channel (
nuget-org,github-packages,github-releases), one publish workflow producing three deployment records. nuget-org gets an approval gate (irreversible). - Documentation in
CONTRIBUTING.mdanddocs/— contributors and AI agents both need to understand the new flow.
Why a separate milestone
This work cuts across all major versions — it's process/infrastructure, not feature work. Related to but distinct from:
- #4 CI roadmap — broader CI restructuring.
- #8 Continuous Delivery Vision — v13 long-horizon CD/release thinking.
- #263 CHANGELOG vs GitHub releases — auto-generated release notes question intersects here.
This milestone is the concrete first step toward a stable CD shape, scoped tightly to the branching + publish-trigger restructure.
95% complete
List view
0 of 1 selected 0 issues of 1 selected
Docker-based local NuGet server for pre-merge testing (Tier 3 channel)
enhancementNew feature or requestNew feature or requesttarget/2027Targets the 2027 calendar-version line. See ADR-0004.Targets the 2027 calendar-version line. See ADR-0004.Status: Open.#279 In Fallout-build/Fallout;