Decisões
ORG-0010 — Versões fixas
- Status: aceita
- Data: 2026-10-18
- Decide: toda ferramenta, biblioteca, imagem, action e CLI com versão exata, numa fonte única
Contexto
Versão flutuante (@latest, ubuntu-latest, uma tag sem patch) faz o mesmo commit construir
coisas diferentes em dias diferentes. Quando quebra, ninguém mudou nada.
Decisão
- Toda ferramenta, biblioteca, imagem de container, action e CLI tem versão exata.
- Cada versão mora numa fonte única (o catálogo de versões, o lockfile, a tag no
compose.yaml,eng/tools.versions), e os outros lugares a leem dela. - Imagens de runtime levam também o digest.
eng/pinned-versions.shprocura versões flutuantes e roda na CI quebrando o build.
Alternativas consideradas
| Alternativa | Por que não |
|---|---|
| Faixas de versão com atualização automática | Por que não: builds não reproduzíveis; a mudança chega sem change |
| Versões exatas sem fonte única | Por que não: a mesma ferramenta com duas versões em dois lugares |
Consequências
- Atualizar uma versão é um ato explícito, revisável no diff.
- O script de versões fixas também confere que a mesma imagem tem a mesma tag em todo lugar.
Mais
O detalhe está na documentação da arquitetura.