Skip to content

Instantly share code, notes, and snippets.

@rotty3000
Last active September 16, 2017 03:58
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rotty3000/a33bee4acd5b71481dfa to your computer and use it in GitHub Desktop.
Save rotty3000/a33bee4acd5b71481dfa to your computer and use it in GitHub Desktop.
Litmus Test for VCS Repository Separation

Litmus Test for VCS Repository Separation

How do you or should you break a monolithic repository into smaller pieces?

The question of whether separation should take place and how granular it should be is a debate that happens in very significantly large project I've been involved with to date.

If the goal is to make developers lives easier, then the split must certainly not cause more harm than good. There can't be a hard and fast rule such as "each module should have it's own repository" because the day to day impact of a project maintained by a single individual could be horrendous if the project contains hundreds of modules. On the other hand, a project with thoudsands of developers and thoudsands of modules likely will struggle equaly with such a rule.

Therefore I'm working on a initial litmus test to determine the criteria for breaking a large repository into several smaller repositories.

Rules

  1. a repo's build is stable and reproducible
  2. a repo's dependencies are stable
  3. a repo provides stable dependencies
  4. a repo should have more than 1 active maintainer
  5. any artifact released from the repo can be traced back to the exact source
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment