Overview


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.

File at the root of the repo call .meta:

{
  "projects": {
    "path/to/module": "<https://github.com/insight-infrastructure/repo>",
....
    "path/to/module2": "<https://github.com/insight-infrastructure/repo2>",
	}
}

A meta repo is a repo consisting of many other nested sub repos. You can have meta repos inside other meta repos and to help with that, we built a little tooling to allow cross cutting changes to each repo when you make git pushes.

How it works under the hood is it clones the repo into your repo and then puts an entry into your gitignore to ignore the folder path. Pretty straight forward but what is nice is that you can then iterate over those directories and perform git actions for cross cutting changes.

Why we use it


How we use it