Subject: Re: [boost] A proposal for superproject structure and testing
From: Cox, Michael (mhcox_at_[hidden])
Date: 2013-12-12 02:15:40
On Tue, Dec 10, 2013 at 9:16 AM, Beman Dawes <bdawes_at_[hidden]> wrote:
> On Mon, Dec 9, 2013 at 6:42 PM, Peter Dimov <lists_at_[hidden]> wrote:
> > Cox, Michael wrote:
> > ...
> > I'm assuming the criteria to merge a feature branch to the develop
> >> is that it builds and the unit-tests all pass with the current HEADs of
> >> develop branches of all the other submodules.
> > That's very unlikely. One, nobody does a full Boost test cycle before
> > integrating work into develop, because a single compiler takes (I think)
> > hours or so, and you need at least two [platforms], if not more. Two,
> > tests don't just have to pass on a single compiler, and the test
> > infrastructure doesn't take "test my feature branch please" requests at
> > moment. So you have to merge to develop in order to have the change
> > on the full range of compilers.
> > In practice, our current workflow has been: you test locally on a few
> > compilers, merge (or push) into develop, wait three days to a week for
> > tests to cycle, and if everything looks fine and nobody politely informs
> > you that their library suddenly broke, merge into master. Or forget to
> > merge into master, as the case might often be with svn.
> In other words, Boost testing has complexity l*m*n where l is the number of
> libraries, m is the number of platforms, and n is the number of compilers
> for the platform.
I don't expect the criteria to merge changes from a feature branch to the
develop branch to be successful builds/tests for *all *supported
compilers/platforms (that sounds like a good criteria for merging the
develop branches into the master branches). I would expect something along
the lines of an incremental build of a freshly pulled set of repositories
and running the tests for your compiler/platform. If this merge criteria
isn't suitable, what is the merge criteria? Will it be consistent for all
libraries or will it vary depending on the nature of the library, e.g.,
whether the library is "small", "medium", or "large"? How would "small",
"medium", or "large" be defined?
> Unsubscribe & other changes:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk