intermediate 2 min answer

A build produced a different artefact from the same commit two weeks apart. Why does that matter, and what makes builds reproducible?

postmanreproducibilityprovenancedependenciessupply-chain
Show the full answer Hide the answer

Why it matters

  • Debugging. If the artefact in production cannot be reproduced from its commit, investigating a defect means investigating something you cannot recreate.
  • Security. "Was this artefact built from our source" is unanswerable without reproducibility, which means a compromised build cannot be distinguished from a legitimate one.
  • Rollback. Rolling back to a previous commit and rebuilding may produce a different artefact from the one that was known good — which converts a rollback into an unknown.
  • Incident attribution. A dependency that changed silently between builds is a cause that no code diff reveals.

What makes builds reproducible

  • Pinned, hashed dependencies. Lock files with integrity hashes, so a compromised or changed registry cannot silently substitute. A version range is a reproducibility hole.
  • Pinned build tooling and base images by digest, not by tag — tags move.
  • A hermetic build environment with no network access to unpinned sources during the build.
  • Deterministic outputs: no timestamps, no build hostnames, no non-deterministic ordering embedded in the artefact.
  • Build provenance: a signed attestation of what source produced which artefact, on which builder. This is what makes the security question answerable, and it addresses build-system compromise rather than dependency compromise.

The practical intermediate position

Full bit-for-bit reproducibility is expensive and is not the point for most organisations. What matters is dependency reproducibility — that the same commit pulls the same dependencies — which delivers most of the value for a fraction of the effort and is achieved by lock files with hashes plus digest-pinned base images.

No ambient credentials in the build environment. A build executes untrusted code from dependencies and build scripts, and a build that can reach production secrets turns any dependency into a path to them.

That is the single highest-value hardening step in most pipelines, and it is independent of reproducibility while being motivated by the same threat.