...
Date: 2023-06-16
## Status
Open
## Context
For OpenSCD/next we currently have a couple of components in different repositories. We will have more components like this in the future.
It's good to know that a monorepo is not the same as a monolith.
...
* Integrated Repos
* Package-based Repos
* Standalone Apps##
Solution
For OSCD-Components, we should make use of the Package-based Repo.
Each component has it's own `package.json` File and can be individually developed, tested, compiled and published.
...
- Material (https://github.com/material-components/material-components-web)
- Shoelace (https://github.com/shoelace-style/shoelace)
- Helsinki Design System (https://github.com/City-of-Helsinki/helsinki-design-system)
- NL Design System (https://github.com/nl-design-system/example)
- Etc.
Decision
T.B.D.
Disadvantages for combining different packages into a monorepo
- A monorepo has less authorization rules.
- If you can access one package in the monorepo, you can access them all
- Git history will become more cluttered in a monorepo
- Maintainership on a single package in a monorepo can become more of a hassle
Consequences
=> disadvantages
=> less control on permissions
It turns out that putting everything in a seperate repositories has too many disadvantages.
Advantages for creating a monorepo