Skip to main content

reprotrail

Trace a data product back to the command, code, inputs, and environment that made it.

CI Documentation Python 3.11+ License: MIT Status: alpha

reprotrail is a Python command-line tool and library for recording the practical evidence behind data-processing runs. Wrap an existing command and it writes a readable, machine-checkable trail: what ran, which Git revision and inputs it used, available Pixi environment state, and which files belong to the resulting product.

command + inputs + Git + pixi.lock
                  │
           reprotrail run
                  │
                  ▼
       result + log + provenance
             + product metadata
Capture Guard Package Reproduce
Record commands, inputs, Git state, and the locked runtime. Stop on dirty code or unacknowledged dependency drift. Add checksums, attribution, licensing, and RO-Crate sidecars. Restore recorded commits and prepare the locked Pixi workspace.

Reprotrail is workflow-agnostic: use it from a shell, Snakemake, another workflow system, or Python. It records reproducibility evidence around your domain logic instead of replacing it.

See it in one command

From a clean Git project, wrap a product-producing command:

reprotrail run \
  --log results/output.log \
  --provenance-json results/output.prov.json \
  --product-output results/output.zarr \
  --input data/source.nc \
  -- python -m my_project.step --output results/output.zarr

The workflow still creates results/output.zarr. Reprotrail adds:

  • output.log — combined standard output and error from the command;
  • output.prov.json — versioned command, input, software, runtime, and status metadata;
  • output.prov.json.sha256 — an integrity checksum for the provenance record;
  • README.md and ro-crate-metadata.json — a human summary and structured product relationships; and
  • LICENSE.md — only when the product has an explicit configured license.

If the command fails, the provenance record still explains what was attempted and how it ended.

Install

Reprotrail requires Python 3.11 or newer and Git. The recommended installation includes product metadata support:

python -m pip install "reprotrail[products]"

For command and provenance capture without RO-Crate, SPDX, xarray, and Zarr support, install the minimal package:

python -m pip install reprotrail

Pixi is an external executable, not a Python dependency. Basic provenance capture works without it; runtime snapshots, dependency epochs, Git dependency freshness checks, and the complete reproduction workflow expect a Pixi project and lockfile.

After the conda-forge recipe is accepted, the full Pixi-first installation will be available with:

conda install -c conda-forge reprotrail

What reprotrail helps answer

  • What made this file? Inspect the recorded command, timestamps, inputs, Git commits, and runtime packages.
  • Did the software change between runs? Use dependency epochs to reject or explicitly accept a new runtime snapshot.
  • Can someone understand this product without the original workflow? Ship a README, checksum, attribution, license evidence, and RO-Crate metadata beside it.
  • Can I rebuild it later? Prepare a fresh workspace from the recorded repositories and Pixi lockfile, validate the evidence, then choose whether to execute the command.

Deliberate limits

Reprotrail records and checks evidence; it does not make a non-deterministic program deterministic, archive remote repositories or input data, or guess a license for a generated product. Reproduction still depends on recorded commits, package sources, and inputs remaining accessible.

Review provenance before publishing it. Records can contain command arguments, repository URLs, input paths, dirty-file information, and explicitly whitelisted environment values. Portable “public” helpers remove selected local roots; they are not secret scanners or anonymizers.

Documentation

Reprotrail is currently alpha software. Module-level Python APIs may change during the 0.x series; the CLI and explicitly versioned provenance schemas are the clearer compatibility contracts. See the changelog before upgrading.

Contributions are welcome; start with the contributor guide.

Metadata

Release files for reprotrail 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for reprotrail 0.1.0
File Size Uploaded
reprotrail-0.1.0.tar.gz 42.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for reprotrail 0.1.0
File Interpreter ABI Platform
reprotrail-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 92.3 kB

Release files / reprotrail-0.1.0.tar.gz

Download URL reprotrail-0.1.0.tar.gz
Size 42.2 kB
Tags Source
SHA-256 checksum
How to use checksums
64ad62e010b5f8c4946ef5608c9a4260b73491f7f5eb140c3e7d4e051c5d80f0
BLAKE2b-256 checksum
How to use checksums
419de1b09171ff1da544e59f0cddbf7a6cf9db847845dcfc7dbad55b0728a378
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release files / reprotrail-0.1.0-py3-none-any.whl

Download URL reprotrail-0.1.0-py3-none-any.whl
Size 50.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ab512b60539761064a2eb53fb1bcf0f5ef34c9ea8bb19d03f7499de045cd593b
BLAKE2b-256 checksum
How to use checksums
5d4ab87d1e385d5d13a3aac195c9cb8e4eeeb6221219e5d3679790d041c61f0d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 21, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page