O que é monorepo
Monorepo é a organização que mantém vários projetos no mesmo repositório. O site, os pacotes e a documentação compartilham o histórico e as ferramentas.
O modelo facilita a mudança que atravessa projetos. Uma alteração no componente e no site entra na mesma pull request e é revisada em conjunto.
O que ele compartilha
O histórico, as dependências e o pipeline ficam no mesmo lugar. A versão do pacote interno pode ser referenciada pelo caminho, e a alteração chega ao consumidor na mesma execução.
As ferramentas precisam enxergar o grafo de dependências. O build identifica o que mudou e executa apenas os projetos afetados.
O custo de manter
O repositório cresce, e o clone e o build ficam mais pesados. O pipeline precisa de cache e de execução seletiva para não repetir o trabalho.
A permissão também exige cuidado. Um acesso amplo ao repositório alcança todos os projetos, e a revisão precisa saber qual parte foi alterada.
Exemplo
Como conferir
Confira o grafo de dependências, o tempo de build e a execução seletiva. Leia o histórico de uma mudança que atravessou projetos e verifique a permissão de cada área.
O Git mantém o histórico, e o build precisa reconhecer o que mudou. A dependência entre pacotes define o alcance da alteração.
Dúvidas frequentes
Perguntas frequentes sobre Monorepo
- Monorepo é a mesma coisa que um repositório grande?
- Não. O monorepo reúne projetos com relação entre si e ferramentas que enxergam o conjunto. Um repositório grande sem essa organização apenas acumula pastas.
- Monorepo obriga a publicar tudo junto?
- Não. A publicação pode ser seletiva, por projeto alterado. O pipeline precisa identificar o que mudou e executar apenas as etapas afetadas.
- Como evitar que o build fique lento?
- Use cache, execute apenas os projetos alterados e separe as etapas por dependência. O tempo do build cresce quando todo commit reconstrói o conjunto.
- Quando separar em vários repositórios?
- Quando os projetos têm ciclos de publicação independentes e pouca relação técnica. A separação reduz o acoplamento e aumenta o custo de coordenação.
Para continuar
Recursos relacionados
Site de referência
monorepo.tools
Reúne conceitos e ferramentas para repositórios com vários projetos.
Abrir recursoSite de referência
Wikipedia: monorepo
Define o modelo e compara com a separação em vários repositórios.
Abrir recursoAplicação na formação
Developer Workspace
No Developer Workspace, o monorepo aparece na organização de site, pacotes e documentação no mesmo histórico.
Conhecer a formação
Fontes consultadas
Referências deste verbete
Este verbete ajudou você?
Obrigado pela resposta. Ela fica salva apenas neste navegador.