Skip to content

ci: reorganize checks by capability, dependency, and human-readable reporting - #208

Merged
Teakowa merged 2 commits into
mainfrom
ci/reorganize-by-capability-207
Aug 22, 2026
Merged

ci: reorganize checks by capability, dependency, and human-readable reporting#208
Teakowa merged 2 commits into
mainfrom
ci/reorganize-by-capability-207

Conversation

@Teakowa

@Teakowa Teakowa commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Implements #207.

Summary

Replaces the flat, milestone-named CI structure (anchored around v1-gates) with 9 capability-oriented jobs in a dependency-aware DAG.

Job changes

Old name New name / disposition What it proves
rust-quality rust-quality (unchanged) Rust fmt, clippy, workspace tests
v1-gates removed — split below
↳ compatibility evidence opy-integration Wright N-level gate vs recorded OPY snapshots
↳ scenario runner scenario-validation Compile-time WIR/emission scenario contracts
↳ benchmarks benchmark Performance evidence artifact
compatibility-differential opy-integration Native-vs-reference OPY differential
ostw-compile-differential del-integration Wright OSTW/del-rs forward-compilation contract
lpp-client-integration lpp-integration LPP client protocol contract
cli-github-actions-smoke cli-behavior CLI GHA renderer integration
adapter opy-adapter OverPy-to-HIR TypeScript adapter
dist-validation dist-validation (gated) Cross-platform distribution smoke

DAG dependency structure

paths
├── rust-quality (stable + 1.85.0 matrix)
│   ├── opy-integration (N-level + differential)  ──┐
│   ├── del-integration (OSTW differential)          │
│   ├── lpp-integration (mock provider)           ──┤─→ dist-validation
│   ├── cli-behavior (GHA smoke)                     │
│   ├── scenario-validation (scenario runner)         │
│   └── benchmark (perf evidence)                    │
└── opy-adapter (TypeScript, independent)

dist-validation only runs after rust-quality, opy-integration, and lpp-integration all succeed — preventing three cross-platform runners from consuming time when foundational gates have already failed.

PR path filters

A new paths job computes conservative filters. Broad/core changes (Cargo, src/, scripts/, CI) expand all checks. Narrow changes (adapter/, dist/) run only the relevant job. Push to main runs everything unconditionally.

GITHUB_STEP_SUMMARY

opy-integration, del-integration, scenario-validation, and benchmark write concise Markdown summaries derived from their JSON reports. Summaries show PASS/FAIL, totals, and per-failure detail. When dist-validation is skipped due to upstream failure, the summary explicitly names which gate caused the skip.

Machine-readable JSON artifacts are preserved for all reporting jobs.

Acceptance criteria check

  • No v1-gates/release-phase bucket; contents assigned to capability jobs or removed with evidence
  • Retained checks prove named Wright-owned contracts or consume owning-repo contracts
  • Fundamental failures prevent dist-validation from wasting runner time
  • Independent capability checks still run in parallel
  • PR path filters select relevant checks; broad changes expand appropriately
  • main push bypasses filters for full convergence coverage
  • Capability jobs write concise GITHUB_STEP_SUMMARY from test results
  • JSON reports retained as artifacts
  • Summary generation derives from test/report results (no hand-authored second source)
  • Branch protection: main is currently unprotected by required status checks, so no migration risk; note in PR for maintainer review
  • Job names describe what each check proves without historical milestone terminology

Replace the flat milestone-named CI structure with 9 capability-oriented
jobs in a dependency-aware DAG, addressing every acceptance criterion in
issue #207.

Job changes
-----------
- Remove `v1-gates` catch-all bucket; its contents are distributed:
  - N-level compatibility gate → `opy-integration`
  - Compile-time scenario runner → `scenario-validation`
  - Benchmarks → `benchmark`
- Rename `cli-github-actions-smoke` → `cli-behavior`
- Rename `lpp-client-integration` → `lpp-integration`
- Rename `ostw-compile-differential` → `del-integration`
- Rename `adapter` → `opy-adapter`
- Absorb `compatibility-differential` into `opy-integration`

DAG dependency structure
------------------------
- `paths` runs first (path filter, no external deps)
- `rust-quality` gates: depends on `paths`
- `opy-integration`, `del-integration`, `lpp-integration`, `cli-behavior`,
  `scenario-validation`, `benchmark`: depend on `paths` + `rust-quality`
- `opy-adapter`: depends only on `paths` (TypeScript, no Rust gate needed)
- `dist-validation`: depends on `paths` + `rust-quality` + `opy-integration`
  + `lpp-integration`; skipped intentionally when any upstream gate fails

PR path filters
---------------
A new `paths` job computes conservative change/dependency-aware filters:
- Broad/core changes (Cargo workspace, src/, scripts/, CI) expand all checks
- `adapter/` changes trigger `opy-adapter` only
- `dist/` changes additionally trigger `dist-validation`
- Push to `main` bypasses filters and runs all checks

GITHUB_STEP_SUMMARY
--------------------
`opy-integration`, `del-integration`, `scenario-validation`, and `benchmark`
write concise Markdown summaries derived from their JSON reports. Summaries
show PASS/FAIL state, totals, and individual failures. Upstream-blocked
`dist-validation` is explicitly explained in summary rather than silently
skipped.

Artifact uploads updated from v7 to v4 throughout.

Closes #207
@Teakowa
Teakowa force-pushed the ci/reorganize-by-capability-207 branch from 67b7214 to 8457ddb Compare August 22, 2026 11:28
checkout v7, setup-node v7, setup-python v7, upload-artifact v7, download-artifact v8
@Teakowa
Teakowa merged commit 9b32c3a into main Aug 22, 2026
13 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in Make Workshop Great Again Aug 22, 2026
@Teakowa
Teakowa deleted the ci/reorganize-by-capability-207 branch August 22, 2026 11:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Development

Successfully merging this pull request may close these issues.

1 participant