<div dir="ltr"><div><div><div><div><div>I can try to explain what happened. For instance, here&#39;s a git tree. Each alphabet represents a commit.<br><br></div>A -&gt; B -&gt; C -&gt; D -&gt; E -&gt; F (F is the HEAD of master. green builds)<br><br></div>Change X branched off at B<br></div>A -&gt; B -&gt; X (green builds)<br><br></div>Change Y branched off at D<br>A -&gt; B -&gt; C -&gt; D -&gt; Y (green builds)<br></div><div><br></div><div>Now if change X and Y do not work together, for instance, if change X introduced a new parameter for a function. They also do not conflict with each other. First change Y lands.</div><div><br></div><div>So history now looks like this:</div><div><br></div><div>A -&gt; B -&gt; C -&gt; D -&gt; E -&gt; F -&gt; Y (green builds)<br></div><div><br></div><div>Now change X lands:</div><div><br></div><div>A -&gt; B -&gt; C -&gt; D -&gt; E -&gt; F -&gt; Y -&gt; Z (red builds)</div><div><br></div><div>Because change Z touched a function whose signature had changed in change Y. If this doesn&#39;t make sense, please have a look at this: <a href="https://docs.openstack.org/infra/zuul/user/gating.html">https://docs.openstack.org/infra/zuul/user/gating.html</a></div><div><br></div><div>Using a gating system is the most likely solution to our problem. Right now, adding a gating solution without reducing how much time our tests take is pointless.<br></div><div><br></div><br><div class="gmail_extra">-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">nigelb<br></div></div>
</div></div>