Release branching and backporting

Luke Chen
3 min readJul 12, 2022

This is one of the articles from the Software Release Engineering series that I have been working on. Suggestions on topics to cover are very welcomed.

Release branching

Release branching is a way to isolate a separate code merging path, usually from the main branch, in order to service release cutting and patching.

Continuous releases on a single main branch

Is branching necessary for all the releases? In an ideal and relatively simple case, every single change (new feature or bug fix) is merged into the main branch, and any given commit of choice can be tagged with a release version. When some new features or bug fixes are merged in, a newer version can be tagged on the same main branch. This single long-running branch and release approach is a continuous release model that is straightforward to understand.

Multi-stream releases on several release branches

When you get some serious Enterprise customers who plan to stay on a version of your software application for a relatively longer time, and value stability over new features, you may find it’s necessary to have a dedicated release branch created and maintained. On the release branch you may only allow critical bug fixes to land, and avoid new feature code change, in order to achieve the stability requirement. New patch versions will be cut on the release branch to get those fixes into customer’s hand…

--

--

Luke Chen

OpenSource & Automation make me excited. Release engineering @MongoDB