by Will Larson · 19 May 2019 · 227pp · 63,186 words
stay one step ahead of our users. This paper is particularly impressive when you consider the difficulties that companies run into as they scale Git monorepos (talk to an ex-Twitter employee near you for war stories). “Large-Scale Automated Refactoring Using ClangMR” Large codebases tend to age poorly, especially in
…
the case of monorepos storing hundreds or thousands of different teams collaborating on different projects. This paper covers one of Google’s attempts to reduce the burden of maintaining
…
their large monorepo through tooling that makes it easy to rewrite abstract syntax trees (ASTs) across the entire codebase. From the abstract: In this paper, we present a
by Nadia Eghbal · 3 Aug 2020 · 1,136pp · 73,489 words
many repositories, each of which contains a smaller amount of code. These repositories can all live under a single GitHub organization. Other projects adopt the monorepo philosophy, managing large amounts of code under a single repository. GitHub repository for CPython.79 At minimum, open source projects hosted on GitHub can be
…
.github.com/en/github/administering-a-repository/about-required-status-checks. 223 Alan Zeino, “Faster Together: Uber Engineering’s IOS Monorepo,” Uber Engineering (blog), March 6, 2017, https://eng.uber.com/ios-monorepo/ 224 Steve Klabnik (@steveklabnik), “Today I glanced at some numbers . . .,” Twitter, June 14, 2019, 11:17 a.m., https
by Titus Winters, Tom Manshreck and Hyrum Wright · 17 Mar 2020 · 214pp · 31,751 words
will already be on that same version, so they can happily coexist. The one-version rule is discussed further in the context of a large monorepo in “Dependency Management.” Transitive External Dependencies Dealing with the transitive dependencies of an external dependency can be particularly difficult. Many artifact repositories such as Maven
…
of Google’s source tree. However, this works at Google only because Google’s source control system is custom-built to handle an extremely large monorepo, so vendoring might not be an option for other organizations. Conclusion A build system is one of the most important parts of an engineering organization