How does the release branching strategy work?

Nicola Sergio 60 Reputation points
2025-04-19T15:07:02.77+00:00

Hi everyone, I would like to ask a question about how the release branching strategy works, due to some confusion in the official Microsoft Learn documentation.

Here refers to the fact that release branches are long-lived branches intended to support different versions of an application at the same time, instead here, in the section Release Branch Workflow, it is made explicit that release branches are only used to "fine-tune"(stabilize the code, address any last-minute bugs or issues, as reported in learn module) the release and finally merge into main. This is contradictory.

I thank anyone who will help me.

Azure DevOps
0 comments No comments
{count} votes

Accepted answer
  1. Marcin Policht 46,285 Reputation points MVP Moderator
    2025-04-19T15:49:35.5033333+00:00

    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, not main, 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 possibly hotfix or support 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

    1 person found this answer helpful.

0 additional answers

Sort by: Most helpful

Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.