[Development] Allow to do parallel integration (was: Proposal: New branch model)

Jedrzej Nowacki Jedrzej.Nowacki at qt.io
Wed Jan 30 13:23:35 CET 2019


On Wednesday, January 30, 2019 11:19:07 AM CET Edward Welbourne wrote:
> > Mårten pointed out that we can check for conflicts up front. Not only
> > against HEAD of the target branch, but also against all build branches.
> > That is even nicer as there is no need to start a job that would likely
> > to be rejected at the end.
> 
> That'll only find VC-level conflicts.
> It's no help in finding the kinds of breakage that only testing reveals.

Of course. That is exactly what I'm proposing. 

Cost: CI would allow breakages caused by patches that are being integrated in 
parallel. 
Gain: CI would allow running many parallel integrations. 

> It'll also sometimes lead to rejecting a change needlessly, because the
> already-integrating branch it conflicts with is about to fail its testing.

We have that already, you can not stage if your change conflicts with changes 
that are being integrated. Gerrit gives you a nice and complex message. Maybe 
it will work out of the box, with multiple build branches. I do not know. Some 
research is needed.

> Still, I guess restaging a little later can fix that ...
Exactly. Hopefully less restaging. As cherry on top it may increases chances 
that the content sha1(*) optimization kicks in, so re-staging may be faster.

Cheers,
  Jędrek

(*) Coin works on the content sha1 level not on the commit sha1. That way 
commit message change or different commit order is irrelevant from it's 
perspective and it can re-use caches. 




More information about the Development mailing list