hadoop-general mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Konstantin Boudnik <...@yahoo-inc.com>
Subject Re: Branching and testing strategy for 0.22
Date Tue, 24 Aug 2010 20:31:13 GMT
As we have briefly discussed off-line I'll try to reiterate the assumptions
you have expressed:

 - testing cycle on a qa branch won't be reset after a blocker (B1) is fixed.
   The validation is continued from the point where the B1 has been
   discovered. In the real cluster test env. it means that only fresh
   deployment needs to be done.
 - in some cases a judgment call has to be made on whether or not testing
   cycle needs to be reset (e.g. in cases of massive fixes and so on). The
   chances are, however, that critical fixes are usually isolated and don't
   affect the rest of the code base.

It isn't like I disagree with the assumptions above. They are valid... under
two conditions:
 - a test harness in use (i.e. a team of test engineers running on manual
   testing errand or an automated solution similar to Herriot) supports the
   notion of interrupted test cycle
 - there's a sound regression tests suite which can guarantee the a fix B2
   doesn't invalidate fix B1 from before.


On Tue, Aug 24, 2010 at 12:08AM, Owen O'Malley wrote:
> On Aug 23, 2010, at 4:17 PM, Konstantin Boudnik wrote:
> > If I may... why QA need source code branches rather than a  
> > sequential builds
> > from the trunk (as it usually done)?
> For QA to be effective, they can't handle a different artifact every  
> day with a new set of features. So the plan is to take a snapshot and  
> test that. However, if bugs are found that block testing they need  
> precisely those bugs fixed with out any additional features. So you  
> need branches to support that. So a sample cycle would look like:
> 1. create build-1 and test it, discovering bugs B1, B2, and B3. Only  
> B1 is blocking further testing.
> 2. meanwhile, someone has checked in feature F1 into trunk
> 3. B1 is fixed in the branch and trunk. B2 and B3 are just fixed in  
> trunk
> 4. when build-2 is built it only has B1's fix
> 5. at the end of the cycle, we rebase the branch to trunk and pickup  
> B1, B2, B3 and F1 into build-3.
> If you don't have a branch, you would get F1 whether you want it or not.
> -- Owen

View raw message