{ "schema": 1, "required_workflow": ".gitea/workflows/ci.yml", "release_workflow": ".gitea/workflows/release.yml", "hard_timeout_minutes": 15, "internal_target_seconds": 720, "required_checks": [ "format", "deterministic-generation", "api-semver", "workspace-tests", "compatibility-parity", "minimal-features", "jpeg2000", "rust-j2k", "skia-binary", "program-offline-smoke", "clippy", "documentation", "dependency-policy", "provenance-policy", "performance-evidence", "concurrency-regressions" ], "legacy_workflows": [ { "workflow": "api-surface.yml", "responsibility": "Generated API mappings, SemVer baseline and audit, downstream consumer compilation, and focused lint", "destination": "required", "checks": ["deterministic-generation", "api-semver", "clippy"], "rationale": "Public API drift must block every code-ready change." }, { "workflow": "artifact-audit.yml", "responsibility": "Source packages, release binaries, native linkage, and artifact/provenance inspection", "destination": "release", "checks": ["release-packaging", "native-artifact-audit"], "rationale": "Full packaging is expensive; routine provenance policy and package metadata validation remain required." }, { "workflow": "codegen.yml", "responsibility": "Deterministic generation, generated wire/catalog tests, API fixture, and clean generator artifact", "destination": "required", "checks": ["format", "deterministic-generation", "workspace-tests", "compatibility-parity"], "rationale": "Generated-source and translated compatibility drift must fail before compilation proceeds." }, { "workflow": "concurrency-audit.yml", "responsibility": "Focused race regressions and bounded resource soak", "destination": "split", "checks": ["concurrency-regressions", "long-resource-soak"], "rationale": "Focused regressions remain required; the 16-cycle resource soak runs in the non-routine release gate." }, { "workflow": "documentation.yml", "responsibility": "Documentation audit, warning-free docs, doctests, examples, and documented program tests", "destination": "required", "checks": ["documentation", "program-offline-smoke"], "rationale": "Documentation and documented offline behavior are part of the public release surface." }, { "workflow": "imaging-meshing.yml", "responsibility": "Imaging and meshing tests, parity cases, benchmark compilation, lint, and docs", "destination": "split", "checks": ["workspace-tests", "compatibility-parity", "clippy", "documentation", "benchmark-compilation"], "rationale": "Tests, parity, lint, and docs remain required; redundant benchmark compilation moves to the release gate." }, { "workflow": "jpeg2000.yml", "responsibility": "Independent OpenJPEG and pure-Rust JPEG 2000 feature builds, tests, and interoperability", "destination": "required", "checks": ["jpeg2000", "rust-j2k"], "rationale": "The optional native codec is tested with exact OpenJPEG 2.5.4 and the pure-Rust codec is tested independently and together with it." }, { "workflow": "performance.yml", "responsibility": "Pinned C# comparison harness and committed performance evidence audit", "destination": "split", "checks": ["performance-evidence", "performance-regeneration"], "rationale": "Committed evidence validation remains required; C# checkout and evidence regeneration are manual release work." }, { "workflow": "release-candidate.yml", "responsibility": "Aggregate release-readiness gate and evidence", "destination": "release", "checks": ["release-candidate-audit"], "rationale": "The aggregate release decision is non-routine and no longer recompiles the required gate." }, { "workflow": "release-matrix.yml", "responsibility": "MSRV, default, minimal, features, release profiles, and portable cross-target checks", "destination": "split", "checks": ["minimal-features", "jpeg2000", "rust-j2k", "skia-binary", "msrv", "portable-cross-targets", "release-profile"], "rationale": "Fast feature isolation remains required; clean MSRV, cross-target, and release-profile builds run non-routinely." }, { "workflow": "rust-workspace.yml", "responsibility": "Milestone checks, workspace compilation, program smoke, audio feature, extension lint, and docs", "destination": "required", "checks": ["workspace-tests", "compatibility-parity", "program-offline-smoke", "clippy", "documentation"], "rationale": "One all-feature test graph replaces overlapping compile and test invocations." }, { "workflow": "skia.yml", "responsibility": "Default and Skia feature tests plus package listing", "destination": "required", "checks": ["skia-binary", "workspace-tests"], "rationale": "The required gate proves the exact ARM64 GNU archive is installed and forbids source compilation." }, { "workflow": "supply-chain.yml", "responsibility": "Dependency graph, advisory, license, source, provenance, duplicate, and unused-dependency audits", "destination": "required", "checks": ["dependency-policy", "provenance-policy"], "rationale": "Pinned prebuilt audit tools and cached advisory data keep policy enforcement in the routine gate." } ] }