You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Write the Architecture Decision Record capturing the release-branch + multi-channel CD decision, the alternatives considered, and the reasoning. Lives under docs/adr/ (create the directory if it doesn't exist; this may be the first ADR).
Acceptance criteria
docs/adr/0001-release-branch-model.md (or numbered per existing convention if there is one) exists.
Context explains the trigger: auto-release on every main merge was generating ≈20 patch versions in recent days and Dependabot fatigue across the userbase.
Decision matches what landed:
main = integration trunk, doesn't auto-publish.
release/vN = release channel, tag-triggered.
Hotfixes via cherry-pick from main.
Three GitHub Environments keyed by channel (nuget-org/github-packages/github-releases), with nuget-org gated by approval.
Alternatives considered captures: keep main-triggered + reduce noise via path filters; release-per-merge to release/vN; manual-only via workflow_dispatch as the permanent shape.
Consequences notes: more deliberate cadence; cherry-pick mental overhead; old majors stay supportable; the consumer-pain-first principle this validates (see memory note).
Status: Accepted once the implementation ships; Proposed until then.
Depends on
Implementation shipped (so the ADR describes reality, not aspiration).
Notes
If docs/adr/ doesn't exist, this is the seed for it. Worth setting the pattern now — future architectural decisions get ADRs filed under the same directory using the MADR format (or whatever Chris prefers).
Sibling of milestone #13. RFC #267.
What
Write the Architecture Decision Record capturing the release-branch + multi-channel CD decision, the alternatives considered, and the reasoning. Lives under
docs/adr/(create the directory if it doesn't exist; this may be the first ADR).Acceptance criteria
docs/adr/0001-release-branch-model.md(or numbered per existing convention if there is one) exists.main= integration trunk, doesn't auto-publish.release/vN= release channel, tag-triggered.main.nuget-org/github-packages/github-releases), withnuget-orggated by approval.Acceptedonce the implementation ships;Proposeduntil then.Depends on
Notes
If
docs/adr/doesn't exist, this is the seed for it. Worth setting the pattern now — future architectural decisions get ADRs filed under the same directory using the MADR format (or whatever Chris prefers).