Environment and reproducibility
repro-manifest
A portable receipt per run to explain why two runs differ.
Install
pip install repro-manifestIf you use uv, also as an isolated CLI:
uv tool install repro-manifestWhat it does
Almost no ad-hoc run leaves a reproducibility receipt, and they are launched from a dirty git tree, so the commit hash is not enough. repro-manifest captures environment, code, config and seeds, and diffs two manifests.
In action
A real recorded session of the CLI running.
Read it as text
runtime key value python 3.12.3 implementation CPython platform Linux-6.17.0-35-generic-x86_64-with-glibc2.39 executable /home/delcenjo/jmweb-org/repro-manifest/.venv/bin/python3 git key value commit daa6bf5a9d4b363337963c6054bdd353b55d342a branch main dirty false command key value argv /home/delcenjo/jmweb-org/repro-manifest/.venv/bin/repro-manifest show cwd /home/delcenjo/jmweb-org/splitcheck packages key value annotated-doc 0.0.4 coverage 7.14.3 iniconfig 2.3.0 markdown-it-py 4.2.0 mdurl 0.1.2 packaging 26.2 pluggy 1.6.0 pygments 2.20.0 pytest 9.1.1 pytest-cov 7.1.0 repro-manifest 0.2.0 rich 15.0.0 ruff 0.15.20 shellingham 1.5.4 typer 0.26.8
$ repro-manifest show
runtime
key value
python 3.12.3
implementation CPython
platform Linux-6.17.0-35-generic-x86_64
git
key value
commit 25ca4ae3932c9be07cbba03f09caeb07c34403f8
branch main
dirty falseFeatures
- —Commit, branch, dirty state and a patch of uncommitted changes.
- —Argv, config hashes and RNG seeds.
- —Risk-ranked diff to explain the difference.
- —CI gate and JSON output.