![]() ![]() Google is famous for its enormous monorepo, early Google employees decided to work with a shared codebase managed through a centralized source control system. Use a build languages like Starlark or Python DSL.Highly scalable, can handle any codebase size, especially enterprise huge monorepos.Support incremental builds with local and distributed caching, optimized dependency analysis, and parallel execution.Support a wide variety of language platforms (Python, Java, Javascript, C++, Android, iOS, Go, etc.).These tools are great for enterprise-level projects but seem a bit overkill for individuals or small teams, following are main characteristics: To manage a multi-language monorepo, you have to use powerful and complicated monorepo-oriented build systems like Buck, Bazel, Pants, or Please. However monorepo does increase the codebase complexity, build time, and effort invested in both code health and tooling. Monorepo has many benefits like single source of truth (unified versions,simplified dependency managers), large-scale refactoring (atomic changes), better collaboration (less boundaries, wide code visibility, clear tree structure, flexible ownership), and fluid continuous integration and delivery. You literally can throw any kinds of projects into one monorepo, loosely connected or tightly coupled, one or multiple languages, one or multiple dependency management tools. Monorepo is a software development strategy where code for many projects is stored in the same repository, the repository is large in content size and number of files, commits, or branches. So why mass adoption now? I believe it depends a lot on the maturity of build systems and tools. Monorepo is not new, Google and Facebook have been using it for years. There is a trend that many companies and open-source projects are moving from multi-repo into monorepo.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |