Workspace e monorepo
Vários pacotes numa árvore só — e a checagem de faixas que acusa antes de instalar.
Um projeto com uma aplicação e quatro bibliotecas internas não deveria publicar as quatro para poder usá-las. O workspace é a árvore inteira vista de uma vez.
text
minha-empresa/
forge.toml [workspace] members = ["apps/*", "libs/*"]
apps/
loja/forge.toml
admin/forge.toml
libs/
validacao/forge.toml
relatorios/forge.tomlbash
dataforge workspace # o grafo, e os conflitos de faixa
dataforge workspace --json # para o CI lerO que ele acusa, e o que ele cala#
A interseção de faixas sai da mesma classe `Requisito` que o resolver usa. Uma segunda noção de “estas faixas se cruzam?” divergiria da instalação — e o relatório aprovaria o que o add recusa.
| Acusa | Cala |
|---|---|
| um pino exato recusado pelo outro lado | faixas que se cruzam, mesmo sem serem iguais |
| duas faixas sem interseção | o que ele não consegue provar |
| ciclo entre membros | — |
O pino por projeto#
project.dataforge no forge.toml diz de que versão da linguagem aquele projeto precisa — e ele é cobrado, não apenas mostrado.
toml
[project]
nome = "loja"
dataforge = ">=1.1"
# 'dataforge run' troca para a versao pinada quando ela esta
# instalada, e RECUSA quando nao esta. Um pino que nao e cobrado e
# um comentario com sintaxe — e era exatamente o que ele era: o
# unico lugar que o lia era o 'dataforge info', para mostrar na
# tela.
Continue em Versões lado a lado e Workspace.