feat: per-channel e2e CI jobs + composite action + 03-lang-edge journey - #19
Merged
Conversation
…eta edge)
Replace the single {os × channel × journey} matrix with one job per channel,
each an {os × journey} matrix:
- stable: a comprehensive pass over every journey (edge journeys whose
#@ min-tx3c exceeds stable's tx3c install+skip, and auto-run once the feature
graduates to stable);
- beta: cherry-picked edge-feature journeys only (e.g. 02-lang-tour's tuples),
since stable already covers everything broadly.
Compat still lives solely in the journey's #@ min-tx3c header via the runner's
skip gate, so the workflow needs no per-cell compat config. The two jobs are
intentional parallel copies — if a third channel is added, factor the shared
steps into a composite action.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The stable and beta jobs were parallel copies of the same per-cell steps (install channel via tx3up, cache, run one journey). Factor those into the local composite action .github/actions/dx-e2e-run (inputs: channel, journey, github-token); each job is now just checkout + the action with its channel and matrix journey. Removes the copy-paste, single maintenance point. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
An edge-feature coverage journey complementing 02-lang-tour's breadth — it focuses on the latest lang additions: user-defined functions (fn + let), the * and / operators, parametric tuples (literals + indexing), and /// doc-comments. It scaffolds, swaps in a feature-dense main.tx3, and runs check -> build -> inspect tir, asserting the constructs lowered (Mul/Div/Tuple on settle, tuple indexing -> Property on redeem). These features need tx3c >= 0.22, so the journey declares #@ min-tx3c: 0.22.0: the runner skips it on stable (0.21) and runs it on beta. Wired into CI as an edge journey — stable's comprehensive list (skips) and beta's cherry-pick list (runs). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
scarmuega
added a commit
that referenced
this pull request
Jul 15, 2026
Submodules advanced to latest main (merged PRs fast-forwarded): - backends/dolos (#1051 merged), sdks/rust-sdk (#46 merged) - backends/protocol-gateway (#7), backends/tx3-hydra (#31), services/registry (#43), tooling/cshell (#57), tooling/trix (#127), tooling/tx3-lift (#19), tooling/tx3-lsp (#28), tooling/tx3-mcp (#5), tooling/tx3up (#24) — open CI hardening PRs - core/tir (reverted to clean main) Adds plans/feedback-cba-01..07 (user feedback triage docs).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Two changes that go together:
{os × channel × journey}matrix with one job perchannel, each an
{os × journey}matrix; shared per-cell steps live in a composite action.03-lang-edgejourney — the first real "edge-feature" journey, which is the concretepayoff of the beta cherry-pick design.
Per-channel jobs
stable— comprehensive pass over every journey. Edge journeys whose#@ min-tx3cexceeds stable's
tx3cinstall + skip (green via the runner's gate), and auto-run once thefeature graduates to stable.
beta— cherry-picked edge-feature journeys only. Stable already covers the broad surface..github/actions/dx-e2e-runholds the shared steps (install channel viatx3up → cache
~/.tx3/<channel>→ run one journey → upload artifacts). Each job is justcheckout+ the action.Compat lives in one place — the journey's
#@ min-tx3cheader, enforced by the runner's skip gate.03-lang-edge journey
Complements
02-lang-tour's breadth by focusing on the newest language additions: user-definedfunctions (
fn+let), the*//operators, parametric tuples (literals + indexing), and///doc-comments. It scaffolds, swaps in a feature-densemain.tx3, and runscheck → build → inspect tir, asserting the constructs lowered (Mul/Div/Tupleonsettle,tuple indexing →
Propertyonredeem). Declares#@ min-tx3c: 0.22.0, so it runs on beta andskips on stable (tx3c 0.21). Wired into both job lists (stable comprehensive / beta cherry-pick).
Test plan
Validated locally on macOS against the beta toolchain:
01-basic-init,02-lang-tour,03-lang-edge→ 3 passed, 0 skipped.--local@ stable:03-lang-edgeskipped ("needs tx3c >= 0.22.0, have 0.21.0"), exit 0.03-lang-edgefixture passes the tx3 diagnostics hook (ok: true) and its TIR shows theexpected
Mul/Div/Tuple/Propertynodes.stable= {01,02,03} × 3 OS,beta= {02,03} × 3 OS.🤖 Generated with Claude Code