Repository navigation
ReproCheck 0.11.0b1
Pre-release
Pre-release
·
13 commits
to main
since this release
ReproCheck 0.11.0b1
This is the first public beta of ReproCheck.
ReproCheck audits a Python project for reproducibility problems that are cheap to
fix and expensive to discover later: an untracked data path, a floating action
tag, a dependency pinned in one file and missing from another. It reads the
project, writes a report, and can apply one safe fix with an audit trail.
What it does
- Deterministic static audit. One rule per problem, each with a stable id
(RC002,RC140, ...), a severity, a confidence and the evidence it fired on.
The same tree always produces the same findings: no model, no heuristics that
change between runs, no network calls. - Python and dependency consistency checks. A single version declaration
where there should be one, dependencies declared in one place and used in
another, unpinned or conflicting requirements acrosspyproject.toml,
requirements*.txtand lock files. - GitHub Actions reference checks. Floating action tags, and a
version
declared by one file and required by another. - Reproduction attempt in an isolated working copy.
reprocheck reproduce
builds an environment for the project in a temporary workspace. The analysed
project is never modified, and a fresh baseline is compared against the saved
one so any difference is visible. - Optional runtime checks.
--runtime-checksimports the project and runs
pytest collection. It never executes test functions. - Human-readable reports. JSON for machines, Markdown for people, plus a
terminal summary. - Baselines and diffs. Save a report as a reference and compare the next one
against it, so "what changed since the last run" is an answer, not a diff of
two JSON files by hand. - Deterministic fix suggestions. The suggestion engine reads the same facts
as the checks, so a proposal can never contain a pattern the check did not
prove was missing. - Safe fix application and rollback.
--applywrites a backup and a JSON
audit record for every change;--rollbackrestores the original bytes.
Install
pip install reprocheck==0.11.0b1Requires Python 3.11 or newer. One runtime dependency, packaging.
reprocheck scan .
reprocheck suggest .Beta limitations
Please read these before trusting a report.
environment.ymland Conda are not analysed. Dependencies are read from
pyproject.tomlandrequirements*.txt.- CI that does not run on GitHub Actions is not analysed.
setup.pyandsetup.cfghave limited coverage.- A project whose version is derived from
.gitcan fail to reproduce from a
copy, because the copy is not a repository. - A virtual environment is not a security sandbox.
reproduceruns the
analysed project's build backend, and--runtime-checksimports its code,
with your privileges. See SECURITY.md
before pointing it at code you do not trust, and use a container or a VM. - Only
RC140has an applicable fix at the moment, one suggestion at a time.
There is no "apply all" and no interactive prompt. PASSmeans only that the checks which ran succeeded. Anything under
Not verified — the full test suite, external datasets, remote URLs, index
state — remains unknown.- ReproCheck reports facts about a repository. It is not proof that a
scientific study is reproducible, and it does not attempt to establish that.
Verified
- Python 3.11.16, 3.12.3 and 3.13.15: full suite green locally, and green in
GitHub Actions on the same matrix. - Wheel and sdist installed and smoke-tested in clean environments, from this
release and from the TestPyPI index. pint,astropyandnapariproduce identical findings from an installed
release, a locally built wheel and the published artifact.
Assets
reprocheck-0.11.0b1-py3-none-any.whl |
171.713 bytes, sha256 3186b8a2… |
reprocheck-0.11.0b1.tar.gz |
272.613 bytes, sha256 190cd8e7… |
The sha256 digests of these files are identical to the ones computed locally
before upload, on both PyPI and TestPyPI.
Reporting
Bugs and feature requests: https://github.com/RafaelMoreiraDev/ReproCheck/issues
Support scope: SUPPORT.md
Security: SECURITY.md