Skip to content

feat: per-channel e2e CI jobs + composite action + 03-lang-edge journey - #19

Merged
scarmuega merged 3 commits into
mainfrom
dx-e2e-channel-jobs
Jun 16, 2026
Merged

feat: per-channel e2e CI jobs + composite action + 03-lang-edge journey#19
scarmuega merged 3 commits into
mainfrom
dx-e2e-channel-jobs

Conversation

@scarmuega

@scarmuega scarmuega commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

What

Two changes that go together:

  1. Per-channel CI jobs — replace the single {os × channel × journey} matrix with one job per
    channel, each an {os × journey} matrix; shared per-cell steps live in a composite action.
  2. A new 03-lang-edge journey — the first real "edge-feature" journey, which is the concrete
    payoff of the beta cherry-pick design.

Per-channel jobs

  • stable — comprehensive pass over every journey. Edge journeys whose #@ min-tx3c
    exceeds stable's tx3c install + skip (green via the runner's gate), and auto-run once the
    feature graduates to stable.
  • beta — cherry-picked edge-feature journeys only. Stable already covers the broad surface.
  • Composite action .github/actions/dx-e2e-run holds the shared steps (install channel via
    tx3up → cache ~/.tx3/<channel> → run one journey → upload artifacts). Each job is just
    checkout + the action.

Compat lives in one place — the journey's #@ min-tx3c header, 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-defined
functions (fn + let), the * / / 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). Declares #@ min-tx3c: 0.22.0, so it runs on beta and
skips 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:

  • Full suite (default/beta): 01-basic-init, 02-lang-tour, 03-lang-edge3 passed, 0 skipped.
  • --local @ stable: 03-lang-edge skipped ("needs tx3c >= 0.22.0, have 0.21.0"), exit 0.
  • The 03-lang-edge fixture passes the tx3 diagnostics hook (ok: true) and its TIR shows the
    expected Mul/Div/Tuple/Property nodes.
  • Workflow + composite-action YAML lint; matrices: stable = {01,02,03} × 3 OS, beta = {02,03} × 3 OS.

🤖 Generated with Claude Code

scarmuega and others added 2 commits June 16, 2026 15:18
…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>
@scarmuega scarmuega changed the title refactor: per-channel e2e CI jobs (stable comprehensive, beta edge) refactor: per-channel e2e CI jobs + composite action Jun 16, 2026
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 scarmuega changed the title refactor: per-channel e2e CI jobs + composite action feat: per-channel e2e CI jobs + composite action + 03-lang-edge journey Jun 16, 2026
@scarmuega
scarmuega merged commit f3327ca into main Jun 16, 2026
@scarmuega
scarmuega deleted the dx-e2e-channel-jobs branch June 16, 2026 18:36
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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant