Skip to content

The Drift Log · Determinism and model independence

Locking Byte-for-Byte Reproducibility in Release Archives

2 September 2026 · 3 min read · 490 words · established

Two identical sealed archive crates with matching checksum plates

Compilers and archivers inject timestamps and host paths into binaries by default. Standardising build epochs and sorting yields byte-for-byte verifiable releases.

Check out a commit from three months ago. Run your build command. Compute the SHA-256 hash of the resulting binary or tarball, then compare it against the hash published in that version's release notes.

In most production pipelines, the hashes do not match.

Nothing in your code changed. The logic is identical. But the build artifact is legally and cryptographically a different file. If you cannot produce the exact binary twice from identical source trees, you cannot prove that what is running in production matches what you reviewed, tested, and signed.

Reproducible builds are not an aesthetic preference. They are the baseline requirement for supply chain verification. Without them, provenance is an assertion rather than a fact.

Where archive entropy originates

Compilers, packagers, and linkers inject environmental noise into the binary stream by default. Three common inputs corrupt reproducibility across builds:

  1. Timestamps. Compilers embed the current system time into object headers and debug sections. Archive utilities like tar and zip record the modified timestamp (mtime) of every file. A build executed at 10:00:00 will produce different bytes than one executed at 10:00:01.
  2. File ordering. Directory traversal order depends on the underlying filesystem and inode allocation. If your packaging step globs files without an explicit sort, the archive tool bundles them in whatever arbitrary order the operating system kernel returns.
  3. Build paths. Compilers frequently embed absolute paths from the host machine into debug symbols (such as DWARF or PDB tables). If developer A builds in /home/alice/src and CI builds in /builds/runner-1/src, the output bytes diverge.

Fixing this requires standardising build environments against a fixed epoch, stripping host paths, and enforcing deterministic sorting before packaging.

## Set a deterministic timestamp from the latest git commit
export SOURCE_DATE_EPOCH=$(git log -1 --pretty=%ct)

## Package with fixed metadata, explicit sorting, and static ownership
tar --sort=name \
    --mtime="@${SOURCE_DATE_EPOCH}" \
    --owner=0 --group=0 --numeric-owner \
    --pax-option=exthdr.name=%d/PaxHeaders/%f,delete=atime,delete=ctime \
    -czf release.tar.gz ./dist

Reproducibility versus runtime determinism

A byte-for-byte reproducible archive proves that a specific source tree yielded a specific artifact. It guarantees packaging integrity, but it does not guarantee that the software behaves deterministically once executed.

If an application depends on ambient runtime state, unpinned remote endpoints, or probabilistic model outputs, the artifact is fixed while the execution remains variable. True deterministic software requires both properties: a build pipeline that produces exact, verifiable bytes, and runtime logic that operates without stochastic variance. The archive checksum seals the packaging; model-independent code seals the behaviour.

How SHPBL seals releases

At SHPBL, model independence at runtime is matched by byte-for-byte archive reproducibility at release.

No AI model runs inside our software, and no component's behaviour depends on a model's output at runtime. That eliminates stochastic drift and hallucination surface at execution. To eliminate supply chain ambiguity at distribution, every release artifact in the engineered catalog is built in a pinned environment and sealed with a published SHA-256 checksum.

Before an artifact is distributed, our certification harness executes it and records a reproducible verdict: CERTIFIED, PROVISIONAL, INCONCLUSIVE, or FAILED. The published checksum guarantees that the archive you fetch matches the exact bytes evaluated by the harness. You receive owned, model-independent code with cryptographic proof of what was built.

This post supports the longer argument in Why Model Independence Is an Engineering Posture.

Keep reading

Next in the log

The Strategic Master Library · written and reviewed under the house's own epistemic rules: nothing claimed that we cannot show.