You're correct in spotting this confusion — MS Learn's documentation on release branching strategies can sometimes mix terminology or explain concepts in slightly different ways depending on context.
There are two common models where "release branches" are used, and Microsoft documentation sometimes blends these:
1. Long-lived release branches (Multi-version support model)
- Purpose: Support multiple live versions of a product (e.g., v1.0, v1.1, v2.0).
- Branches like:
release/1.0
,release/2.0
, etc. - Lifespan: Long-lived — used for ongoing patching, security fixes, and hotfixes.
- Workflow: New fixes go into
release/x
branches, notmain
, unless they also apply to future versions. - Common in: Enterprise software with on-premise customers or versioned SDKs.
2. Temporary/Stabilization release branches (Feature freeze & final QA model)
- Purpose: Final stabilization and QA before release — "fine-tuning" before going to production.
- Branches like:
release
,release/next
,release/YYYY-MM
, etc. - Lifespan: Short-lived — deleted after merge to
main
(and possiblyhotfix
orsupport
branches). - Workflow: Developers stop merging new features, only critical fixes allowed.
- The "Release Branch Workflow" section you're referring to aligns more with (2) Temporary/Stabilization model.
- But the general definition of "release branches" elsewhere in Microsoft Learn and Azure DevOps documentation often reflects (1) Long-lived model.
MS Learn isn't necessarily contradicting itself — it's just describing two different branching strategies that both happen to use the term release branch. To clarify, you can think of them as:
Model | Purpose | Lifespan | Used When |
---|---|---|---|
Long-lived release branches | Support multiple versions in production | Long | You maintain multiple versions or LTS releases |
Temporary release branches | Final stabilization before production | Short | You work in sprints and do feature freezing before deployment |
If you're building or managing a release process, pick one model based on your product lifecycle and team practices — and document your chosen approach clearly to avoid confusion.
If the above response helps answer your question, remember to "Accept Answer" so that others in the community facing similar issues can easily find the solution. Your contribution is highly appreciated.
hth
Marcin