|
Boost : |
Subject: Re: [boost] [git help] Documenting common modular boost workflows
From: Julian Gonggrijp (j.gonggrijp_at_[hidden])
Date: 2013-10-23 10:45:58
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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk