Book · Chapter 22

20. Reproductibilité et builds

20. Reproductibilité et builds

Un build reproductible est un build fiable. Si le même code produit des binaires différents, vous perdez votre base de confiance.

Principe

Fixer les versions d’outils. Réduire les sources d’entropie (timestamps, chemins, etc.). Comparer les artefacts.

Pourquoi c’est important

La reproductibilité est une base de sécurité et de débogage. Elle facilite aussi la collaboration.

Technique simple

Commencez par comparer des hashes et comprendre chaque différence. La reproductibilité est une discipline, pas un bouton magique.

Erreurs courantes

Compiler sur deux machines sans aligner les outils. Comparer des binaires signés sans enlever les signatures. Ne pas documenter le pipeline de build.

À retenir

Un build reproductible est un build explicable.

Exemple guidé : build reproductible

Construisez un binaire deux fois, comparez les hashes. Puis identifiez la source de divergence (timestamp, chemin, signature). C’est un exercice fondamental.

Checklist repro

Outils alignés. Sources d’entropie réduites. Comparaison systématique.

Exercice : identifier l’entropie

Construisez deux fois, comparez les hashes, puis identifiez la source d’entropie. Documentez‑la dans le README du projet.

Code complet (API actuelle)

make repro

API idéale (future)

Un vitte repro --explain qui liste toutes les sources d’entropie détectées.