Production and benchmark dependency boundary¶
ocpm-engine and pg_ocpm implement their production algorithms independently
from peer-reviewed publications. OCPA, Rust4PM, and PM4Py are comparison
systems, not implementation sources. OCPQ is named only in archived benchmark
results; no runnable OCPQ benchmark integration is supplied.
The production boundary is intentionally strict:
- the
ocpm-enginewheel has no Python runtime dependencies; - the production Rust workspace and
pg_ocpmextension do not depend on, import, link, vendor, or fetch any comparison project; - PM4Py and OCPA are installed only inside disposable, pinned benchmark client images;
- Rust4PM is an exact-version registry dependency only of its disposable benchmark adapter; and
- the archived OCPQ result contains no associated runner, checker, adapter, image builder, dataset loader, or reconstruction instructions.
Benchmark requirements and locks live below benchmarks/ and are never
exported as package extras. scripts/check-core-dependency-boundary.py enforces
this distinction in CI by inspecting production manifests, production imports,
and root lockfiles.
Algorithm changes remain governed by
academic-implementation-provenance.md.
An equivalent dependency gate in pg_ocpm prevents reference projects from
entering extension includes, link directives, extension dependencies, or
vendored paths.