Skip to content

docs: adopt calendar versioning + dual-pace edge/stable channels (ADR-0004) - #301

Merged
ChrisonSimtian merged 1 commit into
mainfrom
docs/adr-calendar-versioning-dual-pace
May 29, 2026
Merged

docs: adopt calendar versioning + dual-pace edge/stable channels (ADR-0004)#301
ChrisonSimtian merged 1 commit into
mainfrom
docs/adr-calendar-versioning-dual-pace

Conversation

@ChrisonSimtian

Copy link
Copy Markdown
Collaborator

⚠️Breaking change (versioning scheme). Fallout moves to calendar versioningYYYY.MINOR.PATCH and retires the v11 numbering. The headline work previously slated for "v11" now ships as 2026.0.0. The 11.0.x packages never shipped a clean stable release (all unlisted), so this strands no stable consumers; the legacy release/v10 line is unaffected (stays 10.x, security/critical fixes only). This PR is docs-only — it commits the project to the scheme; version.json flips in the follow-up PR.

What & why

Our contributor velocity is bimodal: an AI-assisted lane that ships fast, and a deliberate hand-coding lane. This establishes a release architecture that lets both paces run in parallel without divergent trunks — and is as much a social fix (nobody waits on anybody) as a technical one.

The keystone is ADR-0004. Highlights:

  • Calendar versioning YYYY.MINOR.PATCH — mechanically valid SemVer (major = year), so NB.GV/NuGet/ordering are unchanged. Reconciles the "yearly breaking majors" goal with the strict-semver camp.
  • mainis the edge channel — fast/AI lane, intentionally unstable, daily date-stamped prereleases (2026.2.0-edge.<YYYYMMDD>.<h>) to GitHub Packages only (no nuget.org fan-out — consistent with why ADR-0001 made main non-publishing).
  • release/YYYY stable trains — the slow crowd's domain; hardened deliberately; non-breaking minors/patches only after the cut. Breaking changes batch to the yearly major.
  • [Experimental("FALLOUT0xx")] for opt-in unstable APIs that ride any channel — so "experimental" needn't mean a divergent fork. Promoting to stable = removing the attribute.
  • Two-tier review — light/fast on edge, rigorous/unhurried on promotion to stable.
  • Legacy release/v10 (+ hotfix/v10.x) coexists unchanged as a semver maintenance line; release/v11 retired (kept for archaeology).

ADR-0004 supersedes the versioning section of ADR-0001 and extends its channel model; the release-branch + multi-channel CD machinery and ADR-0002's nuget.org-opt-in policy are retained.

Changes

  • docs/adr/0004-… — the decision (context, decision, consequences, alternatives incl. why not gitflow / separate experimental branch / date-as-core).
  • docs/adr/0001 — amendment note; docs/adr/README.md — index updated.
  • AGENTS.md — versioning/channels brief, critical-rules + PR-flow rewritten for target/YYYY + breaking-batched-to-year.
  • docs/agents/release-and-versioning.md — branching/versioning/policy/PR-flow/pipeline sections.
  • docs/branching-and-release.md — branch table, channel taxonomy, release/hotfix/cut runbooks (CalVer, v2026.x tags, v10 legacy paths).
  • CHANGELOG.md[Unreleased] heading → 2026.0 + lead entry.

Follow-ups (this is PR 1 of a sequence)

  • PR 2 — version.json → CalVer + edge prereleases + multi-release-branch publicReleaseRefSpec.
  • Cut release/2026; PR 3 — release.yml edge-from-main job + channel mapping; PR 4 — [Experimental] analyzer/convention.
  • A GitHub Discussion linking this ADR (to bring the wider contributor group in) + Projects/labels setup.

🤖 Generated with Claude Code

…-0004)
Establishes the release architecture that lets the fast/AI-assisted lane and
the deliberate/hand-coding lane run at different paces without divergent trunks.
- ADR-0004: calendar versioning (YYYY.MINOR.PATCH, valid semver, major = year),
main as the published edge channel, release/YYYY stable trains, breaking
changes batched to the yearly cut, [Experimental(FALLOUT0xx)] for opt-in
unstable APIs, two-tier review. Supersedes the versioning section of ADR-0001
and extends its channel model; ADR-0002 nuget.org-opt-in retained.
- release/v10 (+ hotfix/v10.x) coexists as a legacy semver maintenance line
(security/critical only); release/v11 retired (nothing clean shipped).
- Update AGENTS.md, docs/agents/release-and-versioning.md, and
docs/branching-and-release.md to the new model (target/YYYY labels, edge
channel, CalVer policy, hotfix/cut runbooks).
- CHANGELOG: rename [Unreleased] heading 11.0 → 2026.0 + lead breaking-change
entry documenting the versioning move and migration path.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationtarget/vCurrentTargets the current version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@ChrisonSimtian