Monorepo

In version-control systems, a monorepo ("mono" meaning 'single' and "repo" being short for 'repository') is a software-development strategy in which the code for a number of projects is stored in the same repository.[1] This practice dates back to at least the early 2000s,[2] when it was commonly called a shared codebase.[2] Google,[3] Meta,[4] Microsoft,[5] Uber,[6] Airbnb, and Twitter[7] all employ very large monorepos with varying strategies to scale build systems and version control software with a large volume of code and daily changes.

A related concept is a monolithic application, but whereas a monolith combines its sub-projects into one large project, a monorepo may contain multiple independent projects.[8][9][10]

  1. ^ "Infrastructure as Code | Second edition". Thoughtworks. 2021-02-25. Retrieved 2022-12-01.
  2. ^ a b Mark "Nurgle." Collins (2001). Linux Game Programming. Prima Tech. ISBN 978-0-7615-3255-2. OCLC 1044194694.
  3. ^ Cite error: The named reference levenberg was invoked but never defined (see the help page).
  4. ^ Cite error: The named reference scaling_mercurial was invoked but never defined (see the help page).
  5. ^ Cite error: The named reference tc_ms_git was invoked but never defined (see the help page).
  6. ^ Cite error: The named reference uber_technology_day was invoked but never defined (see the help page).
  7. ^ Cite error: The named reference pants_monorepos was invoked but never defined (see the help page).
  8. ^ Reece, Brock (November 7, 2017). "From Monolith to Monorepo". From Monolith to Monorepo. Since starting at Croud. Retrieved March 19, 2019.
  9. ^ Savkin, Victor (August 14, 2019). "Misconceptions about Monorepos: Monorepo != Monolith". blog.nrwl.io. Retrieved June 16, 2020.
  10. ^ Oberlehner, Markus (Jun 12, 2017). "Monorepos in the Wild". Retrieved July 25, 2018.