@@ -77,20 +77,46 @@ Prefer semantic, symbol-level operations over file-level operations whenever pos
7777- See ` docs/development/branching-strategy.md ` for the full workflow.
7878
7979## Versioning strategy
80- - ** Milestone-driven versioning** : Major.Minor reflects capability level , not arbitrary breaking changes
80+ - ** Milestone-driven versioning** : Version reflects capability progression , not arbitrary changes
8181- ** Version format** : ` <Major>.<Minor>.<Patch>[-<PreRelease>] `
82- - ** Patch** : Bug fixes, CLI improvements, documentation updates within milestone scope
83- - ** Minor** : Milestone completion, new capabilities, API additions
84- - ** Major** : Reserved for fundamental architecture changes or major breaking changes
82+ - ** 0.x Phase (Pre-Production)** : API may change, 0.x can go beyond 0.9 (e.g., 0.10.0, 0.11.0, 0.50.0)
83+ - ** Patch (0.6.x)** : Small milestones, features, bug fixes within current major milestone series
84+ - ** Minor (0.x.0)** : Major milestone completions, new subsystems, significant capabilities
85+ - ** Major (1.0.0)** : Reserved for production-ready release with API stability commitment
8586 - ** PreRelease** : ` -preview ` , ` -rc ` during development cycles
86- - ** Pre-merge review** : Before merging to main (release), evaluate:
87- - Does this complete a milestone? → Minor bump
88- - Is this a bug fix or improvement within current milestone? → Patch bump
89- - Does this break existing APIs or fundamentally change architecture? → Major bump
90- - Is this work-in-progress toward next milestone? → PreRelease suffix
87+
88+ - ** Pre-merge review** : Before merging to main, evaluate:
89+ - Is this a major milestone (M3.0, M4.0, etc.)? → Minor bump (0.6.0 → 0.7.0)
90+ - Is this a small milestone or feature addition? → Patch bump (0.6.0 → 0.6.1)
91+ - Bug fix only? → Patch bump (0.6.0 → 0.6.1)
92+ - Production-ready with API stability? → Major bump (0.x.y → 1.0.0)
93+
94+ - ** Examples** : M2.10 → 0.6.1, M3.0 → 0.7.0, M4.0 → 0.8.0, M6.0 → 0.10.0, v1.0 → 1.0.0
9195- ** Version consistency** : Update ` <VersionPrefix> ` in all ` .csproj ` files together
9296- ** No hardcoded automation** : Version decisions made during merge review, not automated based on branch names
9397
98+ ## Post-merge ceremony (after merging to main)
99+ ** Complete ceremony required** - See ` docs/development/release-ceremony.md ` for full details
100+
101+ Quick checklist:
102+ 1 . ** Decide version** : Minor (major milestone M3.0+), Patch (small milestone/features), Major (1.0 stable)
103+ 2 . ** Update all .csproj files** : Change ` <VersionPrefix> ` in all 5 projects
104+ 3 . ** Commit version bump** : ` git commit -m "chore(release): bump version to X.Y.Z" `
105+ 4 . ** Create release doc** : ` docs/releases/M<X>.<Y>-vX.Y.Z.md ` (use template from ceremony doc)
106+ 5 . ** Commit release doc** : ` git commit -m "docs(release): add M<X>.<Y> release notes" `
107+ 6 . ** Create git tag** : ` git tag -a vX.Y.Z -m "Release vX.Y.Z - [description]" `
108+ 7 . ** Push tag** : ` git push origin vX.Y.Z `
109+ 8 . ** Push main** : ` git push origin main `
110+ 9 . ** Clean up branches** : Delete feature/milestone branches
111+ 10 . ** Verify** : Check tag exists, tests pass, version consistent
112+
113+ ** Files to update for version bump:**
114+ - ` src/FlowTime.API/FlowTime.API.csproj `
115+ - ` src/FlowTime.Core/FlowTime.Core.csproj `
116+ - ` src/FlowTime.Cli/FlowTime.Cli.csproj `
117+ - ` src/FlowTime.Contracts/FlowTime.Contracts.csproj `
118+ - ` src/FlowTime.Adapters.Synthetic/FlowTime.Adapters.Synthetic.csproj `
119+
94120## Documentation conventions
95121- ** Release documents** : Use milestone-based naming pattern ` M<X>.<Y>-v<major>.<minor>.<patch>.md ` (e.g., ` M2.0-v0.4.0.md ` )
96122 - Captures both milestone completion and semantic version
0 commit comments