返回排行榜

korfuri/awesome-monorepo

A curated list of awesome Monorepo tools, software and architectures.

awesomemonorepoawesome-list
Star 增长趋势
Star
5.8k
Forks
256
周增长
Issues
6
2k4k
2017年9月2020年8月2023年8月2026年7月
README

Awesome Monorepo Awesome

A curated list of awesome Monorepo tools, software and architectures. Monorepos, short for mono-repositories, are repositories that contain multiple projects, usually related to each other.

Inspired by vinta/awesome-python.

English | 简体中文

Contents

Build systems & dependency management tools

  • baur builds only changed applications in a monorepo branch and manages build artifacts
  • Bazel is Google's monorepo-oriented build system. More on Bazel: awesome-bazel
  • Bit is a tool for building and managing JavaScript projects with multiple components, and managing the dependency graph of components.
  • Bolt Pkg is a super-powered JavaScript project management.
  • Buck is Facebook's monorepo-oriented build system.
  • drkns is a simple and language agnostic monorepo build tool.
  • Garment is Farfetch's monorepo build system with centralized and customizable task management.
  • GitLab CI 11.4 supports running steps based on path changes.
  • Lerna is a tool for managing JavaScript projects with multiple packages, built on Yarn.
  • MBT is a build tool with differential build support.
  • Nix is a package and distribution build tool with remote caching, predominately used by NixOS.
  • Nx is a build system for TypeScript monorepos and a set of monorepo management tools.
  • OAO is a Yarn-based, opinionated JavaScript monorepo management tool.
  • Pants is a monorepo-oriented build system, used by Twitter, Foursquare and multiple other companies.
  • Please a cross-language build system with an emphasis on high performance, extensibility and reproduceability.
  • pnpm is a JavaScript dependency management tool that supports monorepos through a set of dedicated commands called pnpm multi.
  • Rush Stack is a family of tools geared towards large scale TypeScript monorepos, and based around the Rush build orchestrator
  • Spago is a PureScript package manager and build tool powered by Dhall and package-sets.
  • Symplify/MonorepoBuilder is a PHP monorepo management tool.
  • Tainted is a tool to determine which Go packages need to be rebuilt in a monorepo.
  • Versio updates all version numbers in monorepo projects based on conventional commits, and can generate changelogs and tags.
  • Yarn is a JavaScript dependency management tool that supports monorepos through workspaces.
  • Layer-pack is a Webpack plugin allowing monorepo structures via inheritable npm packages/code layers & es6 glob imports.
  • Turborepo is a high-performance build system for JavaScript and TypeScript codebases.

Repository management tools

  • Builder is a tool that makes it possible to ship the same scripts across projects in a Node.js monorepo. For example, share build and testing scripts across projects.
  • FBShipIt is a library written in Hack for copying commits from one repository to another.
  • adeira/shipit is a simplified JavaScript port of FBShipIt.
  • Lank is a tool that links packages together in a Node.js monorepo using automatic configuration of NODE_PATH instead of symlinks. Lank also allows you to run the same commands across all (or subsets of all) packages.
  • monorepo-run is a collection of helpers to run scripts in each package of a yarn monorepo with a separated pane per package.
  • oao
  • Syncpack ensures consistent dependency versions in large JavaScript Monorepos.
  • Ultra Runner is a smart script runner and build tool for Lerna, Pnpm, Rush and Yarn. Scripts run concurrently, using the dependency topology. Builds keep track of file changes and are skipped when possible.
  • wsrun allows running a command in each package of a Yarn workspaces monorepo.
  • meta is a tool for managing multi-project systems and libraries. It answers the conundrum of choosing between a mono repo or many repos by saying "both", with a meta repo.

Good reads

Version control systems & add-ons

Git

Tools

Scaling info

Mercurial

Tools

  • Watchman, replaced by fsmonitor trigger partial, incremental builds when your files change

Scaling info

Development process tools

Code reviews

  • Pull Review Hubot plugin to automate pull reviews with lots of configuration options.
  • Rietveld is a code review tool by Google used by Chromium.
  • API Extractor is used to detect and review API signatures for TypeScript libraries, and also for publishing a multi-package API reference.

CI tools

Code ownership

Notable public monorepos

Migration tools

Development Workflows

  • Trunk Based Development, a source-control branching model, where developers collaborate on code in a single branch called ‘trunk’, resist any pressure to create other long-lived development branches by employing documented techniques. They therefore avoid merge hell, do not break the build, and live happily ever after.
  • Branch By Abstraction, is a set-piece technique to effect a ‘longer to complete’ change in the trunk.

License

CC0

To the extent possible under law, Uriel Corfa has waived all copyright and related or neighboring rights to this work.

相关仓库
sindresorhus/awesome

😎 Awesome lists about all kinds of interesting topics

Creative Commons Zero v1.0 Universalawesomeawesome-list
487.5k36k
vinta/awesome-python

An opinionated list of Python frameworks, libraries, tools, and resources

PythonPyPIOtherawesomepython
awesome-python.com
309.6k28.4k
awesome-selfhosted/awesome-selfhosted

A list of Free Software network services and web applications which can be hosted on your own servers

Otherselfhostedawesome
awesome-selfhosted.net
307.3k14.4k
trimstray/the-book-of-secret-knowledge

A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.

MIT Licenseawesomeawesome-list
234.5k14k
avelino/awesome-go

A curated list of awesome Go frameworks, libraries and software

GoGo ModulesMIT Licensegolanggolang-library
awesome-go.com
178.8k13.4k
521xueweihan/HelloGitHub

:octocat: 分享 GitHub 上有趣、入门级的开源项目。Share interesting, entry-level open source projects on GitHub.

PythonPyPIgithubhellogithub
hellogithub.com
166.5k12.4k
Hack-with-Github/Awesome-Hacking

A collection of various awesome lists for hackers, pentesters and security researchers

Creative Commons Zero v1.0 Universalhackingsecurity
116.6k10.5k
jaywcjlove/awesome-mac

 This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

SwiftCreative Commons Zero v1.0 Universalmacossoftware
git.io/macx
108.4k8.2k
papers-we-love/papers-we-love

Papers from the computer science community to read and discuss.

Shellcomputer-scienceread-papers
paperswelove.org
108k6.4k
MunGell/awesome-for-beginners

A list of awesome beginners-friendly projects.

awesomebeginner-project
87.6k7.9k
DopplerHQ/awesome-interview-questions

:octocat: A curated awesome list of lists of interview questions. Feel free to contribute! :mortar_board:

awesome-listawesomeness
doppler.com
83.7k9.5k
ruvnet/RuView

π RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.

Rustcrates.ioMIT Licensedenseposewifi
cognitum.one/RuView
82.8k11.1k