O Que É um Build Determinístico?
Um build determinístico é aquele cuja saída depende apenas de suas entradas, de modo que repeti-lo com entradas idênticas produz uma saída idêntica. Alcançá-lo significa eliminar fontes de não determinismo como timestamps de build embutidos, ordenação de arquivos não determinística, caminhos absolutos e paralelismo descontrolado. O determinismo é o que torna o caching e a verificação confiáveis.
Por que isso importa
Se um build varia de execução para execução, um cache não pode reutilizar sua saída com segurança e uma verificação de reproducible build falhará mesmo em builds honestos. O determinismo é a propriedade prática que permite confiar em caches de build, builds incrementais e verificações de proveniência.
Conceitos relacionados
- Pré-requisito para reproducible builds e caching seguro
- Remova o não determinismo de timestamps, caminho e ordenação
- Fortemente ligado a hermetic builds
Guias relacionados
What Is a Reproducible Build?A reproducible build produces bit-for-bit identical output every time from the same source, letting anyone in…
What Is a Hermetic Build?A hermetic build depends only on explicitly declared, pinned inputs and is isolated from the host, so it prod…
What Is an Incremental Build?An incremental build recompiles only the parts of a project affected by a change, reusing prior outputs for e…