Skip to content

Milestone 0.11 — Demonstrated Redland parity

Status: complete

Outcome: deliver reproducible full parity with the pinned Redland baseline, including safe workflow equivalence, C source compatibility, binary ABI interchange, and observable behavioral compatibility

Depends on: 0.10 (complete as a qualification scaffold)

Progress report: docs/reports/0.11.md

The 0.10 inventory, implementation, and qualification artifacts are useful inputs, but they are not accepted as proof for this milestone. In particular, an allowlisted symbol, a lifecycle smoke test, or a copied pass declaration for an unexecuted target does not verify Redland behavior.

Frozen scope

  • Baseline: Redland librdf 1.0.17, manual 1.0.18, plus the exact Raptor and Rasqal versions and build options used by the reference artifacts.
  • Public denominator: installed Redland headers, exported functions and data, public types, enums, constants, macros, ownership rules, callbacks, factory behavior, error behavior, and rdfproc workflows. Independent Raptor/Rasqal APIs and third-party plug-ins absent from the frozen Redland build remain out of scope.
  • Targets: Linux x86-64, macOS Apple Silicon, and Windows x86-64. A target counts only when its evidence was produced on that target by the exact tested revision and artifact set.
  • Build profiles: release default and release all-storage. The frozen profile manifest records compiler, linker, allocator, dependencies, features, and Redland configuration.
  • Defined behavior: Oxiland need not reproduce Redland memory corruption or other undefined behavior. All valid-input behavior and all documented error, ownership, callback, and lifecycle behavior are mandatory.

Changing this denominator requires a reviewed compatibility-contract change; it cannot be narrowed to turn a failing result green.

Required proof

Native differential behavior

Every behavioral obligation is a stable fixture executed through both native Redland and Oxiland release artifacts. The harness captures return values, output bytes or normalized RDF, errors, logs, callbacks, ownership transitions, persistent state, and resource outcomes as applicable. A result passes only when both executions complete and the declared comparison is equal. Missing Redland, skips, timeouts, crashes, generated expectations, and unexecuted profiles are failures.

Each public inventory item links to one or more obligations covering its positive, boundary, failure, and lifecycle behavior. Inventory state is derived from passing raw results; generators may not assign verified or differential_passed merely from symbol presence.

C source and binary compatibility

Source compatibility requires the frozen C corpus and selected downstream consumers to compile without source changes against both Redland and Oxiland headers under warnings-as-errors.

Binary ABI compatibility requires programs and shared objects built and linked against Redland to run against the Oxiland compatibility library without recompilation or relinking. Evidence covers library names and SONAME/install names, symbol names and versions, calling conventions, public layouts and constants, ownership, callbacks, loader behavior, and allocator boundaries on each supported target. Header or export-list similarity alone is insufficient.

Evidence provenance

Every raw result records and cryptographically binds:

  • the exact source tree and commit, with a clean-worktree assertion;
  • hashes of the inventory, fixtures, harnesses, headers, libraries, executables, packages, and Redland oracle artifacts;
  • target, host, toolchain, dependency, feature, and environment metadata;
  • command, exit status, timestamps, and complete machine-readable observations.

The 0.11 release checker recomputes results from raw artifacts, rejects stale or cross-revision evidence, rejects profile fan-out from a single execution, and fails closed when any required artifact or provenance field is absent.

Work packages

ID Package Exit signal
WP-11-01 Freeze complete baseline and denominator Checksummed headers, exports, public declarations, build metadata, CLI surface, and behavior-obligation inventory
WP-11-02 Build the two-sided oracle harness The same data-driven fixtures execute native Redland and Oxiland and emit comparable raw observations
WP-11-03 Replace asserted evidence No generator can synthesize passes; inventory and reports derive only from raw executions
WP-11-04 Close safe workflow gaps Every applicable Redland workflow has a tested safe Rust equivalent; only ownership mechanics may be Rust N/A
WP-11-05 Complete C source compatibility Frozen corpus and selected consumers compile unchanged on every required profile
WP-11-06 Complete binary ABI interchange Redland-built binaries load and pass against Oxiland without rebuild on every supported target
WP-11-07 Close behavioral gaps Every obligation passes with zero skip, mismatch, deviation, quarantine, or capability substitute
WP-11-08 Prove factories, storage, and callbacks Registration, plug-in-facing contracts in the baseline, persistence, errors, logging, re-entry, and concurrency match
WP-11-09 Requalify safety and standards W3C, ASan/LSan, fuzz, crash, and downstream suites pass on the exact candidate artifacts
WP-11-10 Rebuild signed cross-platform evidence Each host produces its own revision-bound raw bundle; independent verification reproduces the report
WP-11-11 Refresh performance and package proof The exact parity-qualified artifacts retain the frozen performance wins and clean install/uninstall results
WP-11-12 Release decision and soak No blocker, evidence reset, ABI reset, or documentation contradiction remains

Exit checklist

  • The complete baseline and behavior-obligation denominator are frozen and checksummed.
  • Every inventory row is traceable to raw implementation and differential evidence.
  • Every required target/profile was actually executed; none was inferred or copied.
  • Safe Rust mappings are verified, except genuine ownership mechanics marked N/A.
  • The unchanged-source C corpus and selected downstream consumers pass.
  • Redland-built binaries pass against Oxiland without rebuild or relink.
  • Native differential behavior has zero skips, mismatches, deviations, quarantines, or capability substitutes.
  • Factory, callback, logging, error, storage, and concurrency obligations pass.
  • Sanitizer, fuzz, W3C, crash, packaging, and downstream evidence is bound to the candidate revision.
  • The 0.11 checker rejects stale, synthetic, incomplete, or wrong-profile evidence and passes the final bundle.
  • User-facing documentation makes no compatibility claim broader than the verified matrix.
  • The parity-qualified artifacts retain the required performance and resource gates.
  • An independent clean environment reproduces the report and the release-candidate soak completes without reset.
  • docs/reports/0.11.0-release.md records the tip release preflight.

Milestone 0.11 is complete: every checkbox is backed by linked raw evidence under compatibility/qualification/ and a green scripts/check-0.11-release.py run.