ADR 0284 — A promoção infere as dependências pela ordem dos repos
- Status: aceito (decisão do dono de 08/11/2026, AT-788)
- Data: 2026-11-08
- Tema:
git - Referencia: revê a decisão 7 do ADR 0276 (o
promoteescreveria oDepende-de), sem editá-lo, e usa o mapa dos repos do ADR 0281. RN-1071 e RN-1072, emscripts/ci/docs/business-rules/ci.mddobrabo-ci. A isenção dobrabo-cino pin (decisão 7) complementa o ADR 0280 sem editá-lo.
Contexto
O ADR 0276 previa que o promote escrevesse o Depende-de na PR de promoção. Na prática, ninguém chama o promote.yml: as promoções são abertas à mão, com corpo livre. A linha escrita só na abertura não cobre esse caso, e deixa o furo de "a promoção anterior ainda não foi aberta", em que não há número para citar.
Decisão
-
O check
Dependências de mergeinfere. Numa PR com basemaine headdev, ele soma às linhas declaradas as promoções abertas dos repos das camadas anteriores. -
A abertura automática (
promote.ymleabrir-pr-de-promocao.sh) TAMBÉM escreve a linhaDepende-de. -
Camada anterior com a
devà frente damaine nenhuma promoção aberta: o check fica amarelo e diz qual repo promover. -
As camadas. Só conta a aresta em que a
maindo consumidor usa um artefato final do produtor (o clone dadevde um irmão no CI não ordena promoção):Camada Repos 0 brabo-ci1 brabo-contracts,brabo-workspace2 brabo-api,brabo-engine,brabo-web,brabo-runner,brabo-broker3 brabo-infra4 brabo-qa5 brabo -
A ordem vive na constante
CAMADAS_DE_PROMOCAOdobrabo-ci, testada contra oREPOS. Quando houver teste com orepos.yml(ADR 0281), ele confere as duas listas. -
O merge de uma promoção e o cron horário reavaliam as camadas seguintes.
-
O
pins-do-brabo-cinão cobra o pin do brabo-ci quando o repo chamador é o próprioviralabs-dev/brabo-ci; isso complementa o ADR 0280 sem editá-lo. Ele roda o próprio código de qualquer forma, e a tag final só nasce no merge da promoção dele. Só esse repo é isento.
Consequências
- Vale também para a PR aberta à mão.
- Quem promove vê "esperando viralabs-dev/brabo-ci#N".
- Se a dependência for fechada sem merge, a linha escrita na abertura passa a dar "fechada sem merge" e tem de ser tirada.
- O check chega aos 11 repos pelo repin único da AT-817.
- O
runnerdesce para a camada 2 e oworkspacesobe para a 1, em relação à ordem de 07/11: nada consome amaindo runner antes dobrabo.
Referências
- RN-1071, RN-1072, ADR 0276 (decisão 7), ADR 0281.
- AT-788 (levantamento e decisões do dono), AT-787, AT-817.