Install ProofPack
Requirements
Section titled “Requirements”- Python 3.12. The engine is developed and tested on 3.12;
proofpack doctorreports the interpreter it finds. - numpy. scipy is an optional extra used only by some statistics modules;
import proofpacknever requires it. - Write access to the directory you pass as
--out. No document is written anywhere else. - No network. Nothing in the install or in a run needs one; see
Egress and
--offline.
pip (primary)
Section titled “pip (primary)”python3.12 -m venv .venvsource .venv/bin/activatepip install proofpackproofpack doctorproofpack doctor checks the interpreter version, the dependency set, the
schema files and write access, and exits non-zero if anything it needs is
missing. With --offline it also skips the network reachability line.
Docker (reference platform)
Section titled “Docker (reference platform)”The reference platform for determinism is linux/amd64 on the published image.
Two runs of the same input on that image produce an identical manifest hash.
docker run --rm -v "$PWD":/work ghcr.io/globalphoenix/proofpack:1.0 \ run --input /work/test.csv --criteria /work/criteria.yaml --offlineWindows
Section titled “Windows”Docker Desktop on Windows is the usual first blocker on a first run: a corporate laptop often cannot run it, and a bind mount of a Windows path into the Linux image needs the path spelled the Docker way. If either applies, take the pip path instead — it is the primary install, not a fallback:
py -3.12 -m venv .venv.\.venv\Scripts\Activate.ps1pip install proofpackproofpack doctorThe engine is the same package on every platform. The manifest hash of a pack rendered on Windows is compared against the reference platform within the documented tolerance rather than expected to be byte-identical; the T12 pack records which platform a run was made on.
Verify the install
Section titled “Verify the install”proofpack --versionproofpack doctor --offlinedoctor prints one row per check, [ok ] or [FAIL], and exits 0 only when
every check it needs passes. Then go to the quickstart.
--offline
Section titled “--offline”--offline opens zero sockets: no licence check, no telemetry, no narrative
call. A continuous-integration job is specified to run the reference image
under network capture on every release and publish the capture summary on
the trust page; that job and the engine test that runs the suite
with the network namespace removed do not exist yet, and the trust page says so.