Version 6 (modified by 9 years ago) ( diff ) | ,
---|
* Modular Boost Library Workflow Overview
=
Workflow is the term used to describe the steps a Boost library developer follows to create and maintain a library. The workflow model Boost recommends is nowadays called Git Flow. It was introduced as a simple blog posting by Vincent Driessen on January 5th, 2010, that went viral and has become a widely used software engineering practice.
This workflow has arguably become so successful because it scales well from very small to very large projects, and that's one of the reasons it is recommended (but not required) for Boost libraries.
- An unusually simple, single developer library would have only the permanent develop and master branches that are required for all Boost libraries.
- A more typical library would occasionally add temporary feature branches, either private or public. Feature branch names follow the
feature/x
model, wherex
names the specific feature being developed. - A larger library, particularly if it has multiple developers, would always have some active public feature branches, and at least occasionally employ release staging branches and hotfix branches. Individual developers would often use private branches.
The Git Flow model diagram is available as a PDF file - print it out and hang it on your wall!
For those who use Git from the command line, git-flow command line tools are available to automate common operations. See git-flow wiki for more information.
Aside: Deleting merged branches
The usual culture with Git is to delete feature branches as soon as they are merged to some other branch. This approach is also recommended for Boost developers. After all, the merged-to branch keeps the commit history alive and there's no longer any need to keep the old label around. If you delete a branch without merging it, of course, any commit history exclusively referenced by that branch is lost.