monorepo

back to index

3 results

An Elegant Puzzle: Systems of Engineering Management

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

Working in Public: The Making and Maintenance of Open Source Software

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

Software Engineering at Google: Lessons Learned From Programming Over Time

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