Release contract and production gates
The release lifecycle follows an explicit verification gate model recorded in releases.yaml.
Lifecycle validation states
Every release and documentation document carries one of two validation statuses:
| Status | Definition | Criteria |
|---|---|---|
source-validated | Source-consistent state | All markdown manifests, examples, and schemas parse cleanly, pass schema validation against vendored CRDs, reference approved images, and pass link checks. Does not assert that artifacts have been published to the external registry or tested on live clusters. |
release-validated | Production-ready state | In addition to source validation, external artifacts have been confirmed published on artifacts.altair.com, and full end-to-end deployment tests have succeeded on disposable test clusters. |
Production gates
In releases.yaml, a release transition from source-validated to release-validated requires both production gates to be marked true:
productionGate:
publicArtifactsVerified: false
disposableClusterValidated: false
note: Set both fields to true only after release engineering records evidence.
The validation harness (scripts/validate-content.mjs) automatically enforces that when the active currentDocumentationRelease declares status: release-validated, it must have both publicArtifactsVerified: true and disposableClusterValidated: true.
Registry and artifact conventions
Artifacts are governed by artifacts.yaml:
- Container images:
artifacts.altair.com/graph-docker/<image>:<version> - Helm charts:
oci://artifacts.altair.com/graph-helmoci/<chart> - Never use mutable tags such as
latestor development build numbers in public documentation.
Schema provenance
Vendored schemas kept as repository validation assets in schemas/ have cryptographic SHA-256 hashes registered in schemas/sources.yaml:
schemas/anzo-v2.schema.jsonschemas/anzograph-v2.schema.json
Modifications to schemas must update schemas/sources.yaml with the new SHA-256 checksum, verified during npm run validate:content.