031-public-api-and-release-family

Public API facade, compatibility policy and release family (amends 021)

Lifecycle approvedImplementation completeVerification unknownQualification unknown

Amends spec 021 so the first public release becomes a release family: the existing eight crates plus `rustev-pkg-lodging`, a facade crate `rustev` with no default features and one optional feature per adoptable slice, further integration crates as each lands, native and WebAssembly npm packages, a multi-arch service container image and prebuilt CLI binaries. Fixes one compatibility policy for every public surface (Rust API, documents, protocols, npm packages, service API, PlanId, MSRV), a supply chain of CycloneDX SBOMs, `cargo deny`, reproducible package checks, signed tags, signed artifacts with stated SLSA build provenance, npm provenance where the registry accepts it, a changelog generated from the governed corpus, and `cargo semver-checks` against the previous release. Narrowly amends spec 001 3.4.4, spec 010 I-2 and spec 008 for the facade and lodging. Approved (A-27) under R-39. Approval authorizes implementation and candidate evidence; publication of the first release is authorized only by the conditional owner act quoted in section 3.11, and no other release, yank, repair version, workflow change without the owner's environment approval, or availability claim is authorized.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "directory",
      "path": "integrations/rustev/"
    }
  • establishes
    {
      "kind": "directory",
      "path": "tools/rustev-release/"
    }
  • establishes
    {
      "kind": "file",
      "path": ".cargo/config.toml"
    }
  • extends
    {
      "nature": "amending",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Cargo.lock"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "file",
        "path": "Makefile"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "directory",
        "path": "scripts/acceptance/"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "001-boundaries-and-authority",
      "unit": {
        "kind": "directory",
        "path": "tools/rustev-boundaries/"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "002-decision-contract-and-pure-core",
      "unit": {
        "kind": "file",
        "path": "crates/rustev-contract/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "002-decision-contract-and-pure-core",
      "unit": {
        "kind": "file",
        "path": "crates/rustev-core/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "003-runtime-execution-and-evidence",
      "unit": {
        "kind": "file",
        "path": "crates/rustev-runtime/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "004-evaluation-and-replay",
      "unit": {
        "kind": "file",
        "path": "crates/rustev-eval/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "005-reference-backends",
      "unit": {
        "kind": "file",
        "path": "backends/rustev-backend-rules/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "006-cli-surface",
      "unit": {
        "kind": "file",
        "path": "crates/rustev-cli/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "007-support-routing-package",
      "unit": {
        "kind": "file",
        "path": "packages/rustev-pkg-support-routing/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "008-reference-package-lodging",
      "unit": {
        "kind": "file",
        "path": "packages/rustev-pkg-lodging/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "008-reference-package-lodging",
      "unit": {
        "kind": "file",
        "path": "packages/rustev-pkg-lodging/LICENSE"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "009-remote-adapter-protocol",
      "unit": {
        "kind": "file",
        "path": "integrations/rustev-remote-http/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "amending",
      "spec": "028-opentelemetry-evidence-sink",
      "unit": {
        "kind": "file",
        "path": "integrations/rustev-otel/Cargo.toml"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "028-opentelemetry-evidence-sink",
      "unit": {
        "kind": "file",
        "path": "integrations/rustev-otel/LICENSE"
      }
    }

Source headings

  1. 031: Public API facade, compatibility policy and release family (amends 021)
  2. 1. Purpose
  3. 2. Territory
  4. 2.1 Current state (observed 2026-10-16)
  5. 2.2 What changes
  6. 2.3 What does not change
  7. 3. Behavior
  8. 3.1 Release family and layer order
  9. 3.2 The facade crate `rustev`
  10. 3.3 Boundary amendment for the facade
  11. 3.4 Feature map and staged features
  12. 3.5 Partial-adoption subsets
  13. 3.6 Compatibility policy
  14. 3.7 Plan identity stability
  15. 3.8 API compatibility checks
  16. 3.9 Supply chain
  17. 3.10 Changelog from implementation records
  18. 3.11 Publication authority
  19. 3.12 CI and release workflows
  20. 3.13 Binding principles of #76
  21. 4. Out of scope
  22. 5. Observable negative cases
  23. Acceptance
  24. Verification
  25. Implementation record
  26. Decisions at approval

Frozen anchors

No frozen anchors declared.