Pular para o conteúdo

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.toml
bash
dataforge workspace          # o grafo, e os conflitos de faixa
dataforge workspace --json   # para o CI ler

O 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.

AcusaCala
um pino exato recusado pelo outro ladofaixas que se cruzam, mesmo sem serem iguais
duas faixas sem interseçãoo 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.