Skip to content

Conformance statement

This page is the entry point to the conformance statement APM publishes for OpenAPM v0.1. Per req-cf-002, a conformance statement MUST cite the test invocation per requirement. APM’s statement is regenerated by the spec-conformance CI gate when relevant spec, fixture, test, implementation, or statement files change.

Two artifacts ship at the repository root and update when the conformance inputs change:

  • CONFORMANCE.md — human-readable per-requirement table (pass / skip / fail), with a link to the pytest source for each row. Read this first.
  • CONFORMANCE.json — machine-readable equivalent for tooling and downstream conformance aggregators. The fields are stable across patch versions of the spec.

The CI workflow that emits both is .github/workflows/spec-conformance.yml. The gate fails the build if the generated statement drifts from the committed copy, so the version of CONFORMANCE.md you see on main is exactly what CI produced from the matching spec commit.

The conformance suite is shipped in-tree and runs against the published spec text. To reproduce the statement locally:

Terminal window
git clone https://github.com/microsoft/apm.git
cd apm
uv run --extra dev pytest tests/spec_conformance
uv run --extra dev python -m tests.spec_conformance.gen_statement
diff CONFORMANCE.md # compare to the in-repo copy

The first command runs every requirement-bound test and reports per-requirement results. The second regenerates the statement from those results.

Per req-cf-001, a conformance statement covers the normative statements declared in the spec; it does not certify implementation quality, performance, or operational fitness. The statement currently records req-mf-016 as skipped, with rationale in the statement itself — an explicit, audited decision rather than silent drift.

For the broader drift-detection story (how the spec authors prevent the spec from rotting relative to the only implementation), see CONTRIBUTING.md — Spec amendment workflow.