
Dave Abrahams wrote:
The release managers (or a continuous integration script) assembles a release candidate that references, by default, the latest commits to the "master" branch of all submodules. Test failures may result in rolling back to earlier commits on that branch in a given submodule.
In other words, library authors release their code on whatever schedule they like, and Boost release managers assemble a combination of library releases into a Boost release.
I'm a proponent of the use of Git and GitFlow in boost (in fact I *might* have been the first to suggest GitFlow [1]) as well as of modularization, but I can't help seeing a potential problem with this approach. What do you do if module releases conflict? For example, if the latest release of module A is only compatible with older releases of module B, or if one module depends on the latest version of B while another depends on the previous? When such effects propagate you might have to be very conservative with the global update even though most modules have updated several times in the meanwhile. In my opinion it would be better to make hotfixes in the offending modules (using standard gitflow hotfix branches) so that every Boost release can include the latest versions of all modules. Of course, that requires more coordination between the release managers and the library maintainers. -Julian ----------- [1] http://lists.boost.org/Archives/boost/2012/02/190200.php