Skip to content

How to handle release branches, backports etc #16

@rickynils

Description

@rickynils

It is not uncommon for a project to have release branches for continued development of older releases. For example, your main branch might contain the tags 1.0.0, 1.0.1, 1.1.0 and 2.0.0, representing stable releases of your project. But you also have the branches 1.x and 2.x, where 1.x could contain the additional tags 1.0.2 and 1.1.1, for example. Those releases could have been published after 2.0.0 and will not have their commits on the main branch.

You touch on this subject in this section:

Subsequent Markdown content must be zero or more releases, also referred to as changelog entries. Releases must be sorted latest-first according to Semantic Versioning rules, even if a release with a smaller version was published at a later time. This means that the semantically latest (and hence most important and frequently sought) release is at the top of the changelog. There must be an entry for every new stable release.

So you can sort of imagine a "unified" changelog with all of the releases that has happened, no matter from which branch they originated. This is fully reasonable to me. But I wonder how to handle this in practice? There will be different versions of CHANGELOG.md in the main, 1.x and 2.x branches. Should I make sure that the CHANGELOG.md in main always is the "unified" version of all CHANGELOG.md files, or should such merging happen outside the repository?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions