Skip to contentSkip to Content
ConventionsReproducibility

Reproducibility

Stable

The standard

A number in this archive is reproducible when a competent person with the repository and no access to the author can obtain it again. Not “the author could probably redo it”. That distinction is the whole content of this page.

What every reported number requires

RequirementRecorded in
An experiment record/experiments/EXP-nnn
A full configuration filearchive/experiments/EXP-nnn/
A pinned environmentThe experiment’s environment page
Identified input dataA DATA- record with a version
Pinned analysis codeA CODE- record with a commit
A regeneration commandThe experiment’s reproduction page
A success checkThe same page

The success check is the one most often missing, and the one that matters most. Without it, a reproduction attempt that completes and produces nonsense is indistinguishable from one that worked.

Pinning

ThingPinned by
CodeCommit hash
ContainerImage digest
DependenciesLockfile
DataVersion and checksum
RandomnessSeed

A version range is not a pin. >=2.1 reproduces differently in a year.

What is allowed to be irreproducible

Some things genuinely are: a measurement on hardware that no longer exists, an external service that has changed, a model that is no longer served. These are recorded as such on the experiment’s limitations page, with what was pinned and what was not. An honestly labelled irreproducible result is usable; an unlabelled one poisons everything built on it.

Checking

Reproduce one result at random each month, from a clean checkout, without consulting memory. The failures found this way are always in the steps that felt too obvious to write down.

Last updated on