# Qualification bundles
## 0.13 suite-wide faster-than-Redland
`0.13-matrix.json` checksums the frozen strict suite and
`perf_bench_0_13.c` harness. Each required target needs three independent
evidence files under `performance/0.13/`:
```text
{target}__release-default__run{1,2,3}.json
```
Thresholds follow [ADR-029](../../docs/DECISIONS.md#adr-029-013-suite-wide-faster-than-redland-gate)
(throughput ≥ 1.05 / latency ≤ 0.95 with CI excluding parity). Collect with:
```console
cargo build -p oxiland-capi --release --locked
scripts/package-librdf-compat.sh
compatibility/harness/c_oracle/build.sh
python3 scripts/run-0.13-performance.py --run-index 1
# repeat --run-index 2 and 3 (preferably on fresh hosts / CI runners)
python3 scripts/check-0.13-release.py
```
Tip CI runs the full nine-cell matrix via `.github/workflows/qualify-0.13.yml`
(`workflow_dispatch` or `0.13*` / `milestone-0.13*` branches). The gate fails
closed until every cell passes; red CI means the suite-wide claim stays
unauthorized.
## 0.12 performance qualification
`0.12-matrix.json` checksums the frozen suite and native C benchmark harness and
lists Linux, macOS, and Windows `release-default` evidence under
`performance/0.12/` (retained separately from the 0.11 diagnostic bundle).
Thresholds follow [ADR-028](../../docs/DECISIONS.md) competitive parity.
Collect samples with `python3 scripts/build-0.12-performance-evidence.py` (or
`.github/workflows/qualify-0.12.yml`), then run
`python3 scripts/check-0.12-release.py`. A release pass requires native profile
coverage, production-build provenance, unique executions, artifact hashes, and
green `check-0.11-release.py` on the candidate ancestry.
## 0.11 release qualification
Checked-in 0.11 evidence lives beside this README:
- `0.11-matrix.json`, `0.11-parity-evidence.json`, `0.11-soak.json`,
`0.11-fuzz.json`, `0.11-abi-swap.json`
- `raw/` six-cell C-oracle differentials
- `performance/` native host benches (`synthetic: false`)
Run `python3 scripts/check-0.11-release.py`. Tip CI also runs
`.github/workflows/qualify-0.11.yml`. Release tags `v0.11.*` re-run the checker
from `.github/workflows/release.yml`.
## 0.10 qualification scaffold
`0.10-matrix.json` is frozen scaffold input. The 0.10 integrity check is
fail-closed until this directory also contains all of the following:
- `../inventory/redland-1.0.17-oxiland-0.10.json` with no in-scope exclusion,
mapped-only, implemented-only, or unreviewed row and C verification for every
public `librdf_*` symbol;
- `0.10-parity-evidence.json` covering every ID in `required_profile_ids`, with
exact candidate symbol sets and no declared skip, mismatch, quarantine, or
deviation;
- `performance/{target}__release-default.json` for every frozen performance
target, retaining all raw samples and resource-budget observations; and
- `0.10-soak.json` recording a completed RC soak, zero ABI resets, and no
release blocker;
- `0.10-fuzz.json` recording fuzz targets, planned duration, smoke results, git
revision, and unresolved findings (empty when clean); and
- synthetic raw-sample fixtures under `performance/` for every frozen
performance profile, labeled as synthetic in their provenance fields.
Run `python3 scripts/check-0.10-release.py`. Missing scaffold data is a failure.
The validator proves that the candidate inventory, schemas, profile coverage,
and smoke records are internally consistent. It does not prove native
cross-platform behavior, faster-than-Redland performance, C source/binary
compatibility, or release-duration fuzzing. Those claims require the raw,
revision-bound 0.11 evidence described in `docs/milestones/0.11.md`.