RunnerΒΆ

reprotrail run wraps a command and records a v1 provenance sidecar.

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

The runner records:

  • command, start/end time, return code, and signal failures

  • project repository Git state in project_repo

  • active external editable/path dependency Git states in software_repos

  • diagnostic configured repository Git states in configured_repos

  • dirty working tree policy and tracked dirty patches

  • Pixi lockfile and environment summary, including runtime_packages, when pixi.lock is present

  • dependency snapshot and accepted epoch when a contract exists

  • product metadata when --product-output or wrapped --output is available

  • product package README/license/RO-Crate sidecars when finalization succeeds

Dirty trusted runtime repositories fail before execution unless --allow-dirty is set. Trusted runtime repositories are the project repo and active external editable/path dependencies. Repos listed only in [tool.reprotrail].repos or --repo are diagnostic candidates and do not block execution when inactive. External editable/path Pixi dependencies fail unless --allow-editable is set and the dependency resolves to a Git repository.

Product package finalization reads reprotrail.products.toml from the project root. Use --allow-partial-metadata to keep the run successful when optional RO-Crate/SPDX product metadata tools are unavailable; reprotrail will write a README warning instead of full license-aware metadata.