<story><title>Keeping master green at scale</title><url>https://eng.uber.com/research/keeping-master-green-at-scale/</url></story><parent_chain></parent_chain><comment><author>underrun</author><text>Adrian Colyer dug into this a little further on the morning paper:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;blog.acolyer.org&amp;#x2F;2019&amp;#x2F;04&amp;#x2F;18&amp;#x2F;keeping-master-green-at-scale&amp;#x2F;&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;blog.acolyer.org&amp;#x2F;2019&amp;#x2F;04&amp;#x2F;18&amp;#x2F;keeping-master-green-at-...&lt;/a&gt;&lt;p&gt;His analysis indicates that what uber does as part of its build pipeline is to break up the monorepo into &amp;quot;targets&amp;quot; and for each target create something like a merkle tree (which is basically what git uses to represent commits) and use that information to detect potential conflicts (for multiple commits that would change the same target).&lt;p&gt;what it sounds like to me is that they end up simulating multirepo to enable tests to run on a batch of most likely independent commits in their build system. For multirepo users this is explicit in that this comes for free :-)&lt;p&gt;which is super interesting to me as it seems to indicate that an optimizing CI&amp;#x2F;CD systems requires dealing with all the same issues whether it&amp;#x27;s mono- or multi- repo, and problems solved by your layout result in a different set of problems that need to be resolved in your build system.</text></comment>
<story><title>Keeping master green at scale</title><url>https://eng.uber.com/research/keeping-master-green-at-scale/</url></story><parent_chain></parent_chain><comment><author>huac</author><text>&amp;quot;Based on all possible outcomes of pending changes, SubmitQueue constructs, and continuously updates a speculation graph that uses a probabilistic model, powered by logistic regression. The speculation graph allows SubmitQueue to select builds that are most likely to succeed, and speculatively execute them in parallel&amp;quot;&lt;p&gt;This is either brilliant or just something built for a promotion packet</text></comment>