On Mon, 1 Mar 2021 at 15:31, Lars Knoll <lars.kn...@qt.io> wrote:
> To fix this, we have now added a new feature (called parallel staging 
> branches), where CI rounds are not serialised anymore. Instead, COIN will 
> start a new CI run 15 minutes after a change (or a set of changes) got 
> staged. It will start that run independently of whether another CI run is 
> currently happening. If a staging branch passes, all the changes contained in 
> that branch will be merged into the target branch (can be a fast-forward 
> merge). If the merge produces a conflict, the staging branch will get 
> rejected even if it passed CI.
>
> This means that COIN will usually only test changes that are being staged 
> together. The advantages are that you can more easily pin down a change that 
> caused a CI failure, and that your changes will not get rejected because a 
> buggy change got staged in the same CI run (at least it’s a lot less likely).
>
> The one drawback is that we can in some rare cases end up with a repository 
> in a state where two staging branches passed CI and didn’t conflict when 
> merging them, but the merged state does not pass CI anymore for some reason.
>
> In that case the branch will be blocked until someone stages a fix for the 
> problem. But we do expect this to happen rather seldom, so I do believe that 
> the benefits far outweigh the drawback.
>
> For now this feature is only enabled in qtbase/dev, but if it works out well, 
> we will most likely enable it for further repositories and branches.

Hallelujah.
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to