Prep CI for enablement: green gate, fleet labels, unified MSRV #45

Merged
dcharlot merged 3 commits from ci-enable into main 2026-07-23 10:18:14 -04:00
Owner

Three prerequisites so that turning Actions on lands on a green, dispatchable main — not a wall of failures on day one. Requested together with the "enable Actions" decision.

1. Clear the no-vanity-metrics failures (red on main already)

The gate has been failing on main independent of any feature work — so the very first thing Actions would report is a red that predates this branch. Three hits:

  • jouledesk/README.md — "8 tests", a genuine codebase-count. Removed; the sentence stands without it.
  • jcp-efficiency/MAPPING.md ×2 — false positives: the scanner's regex reads "509 adapter" out of "X.509 adapter" as a count. X.509 is the ITU-T certificate standard's name, so these get the scanner's own <!-- allow-vanity: … --> opt-out, which is exactly its purpose.

Scanner now exits 0 across every Markdown file.

2. Point the workflows at the fleet's runner labels

Every workflow was authored for GitHub-hosted images — ubuntu-latest, macos-latest, macos-13, windows-latest, ubuntu-24.04-arm. This fleet's Forgejo runners register different labels (linux, linux-arm64, macos, windows), confirmed against the live runner registry. As written, enabling Actions would queue every job against a label no runner answers, and they would hang indefinitely rather than fail.

  • ubuntu-latest / ubuntu-24.04-armlinux / linux-arm64
  • macos-latestmacos, windows-latestwindows
  • macos-13 (Intel Mac) dropped — the fleet has no Intel-Mac runner, and by the matrices' own comments it adds no arch coverage (x86_64 held by linux+windows, arm64 by linux-arm64 + the macos reference).
  • macOS is a launchd host executor whose PATH omits ~/.cargo/bin; wai-conformance calls rustup raw, so it now prepends ~/.cargo/bin to $GITHUB_PATH first (harmless where cargo is already on PATH).

10 jobs across 7 workflows now resolve to fleet labels. This makes them dispatchable — the per-job conformance logic (ONNX fixtures, cross-arch byte goldens) is what the first real runs will actually exercise.

3. Raise the MSRV floor to 1.97

The declared rust-version had drifted into three tiers — 1.85, 1.96, one 1.96.0 — none of them the compiler the code is pinned against (1.97.1). Unified to 1.97 across 26 manifests, so the floor states the oldest compiler these standards are actually verified on. This is the deliberate MSRV bump that the toolchain PR (#38) explicitly left out as a separate support-policy decision; done here on request.

sandbox-rs (was 1.85) and eoc-rs (was 1.96) build + test clean under the pin. The floor is declarative; the 1.97.1 toolchain pin already governs what actually compiles.

After merge

Enabling Actions (has_actions: true) is the follow-on step, done once this is on main so Actions' first sight of the repo is already-fixed. I have verified the structural prerequisites — labels resolve, the gate is green, YAML is well-formed — but not run the conformance jobs themselves (they need ONNX runtime and cross-arch runners). Surfacing any per-job issues is what the first CI runs are for.


🤖 Generated with Claude Code

Three prerequisites so that turning Actions on lands on a green, dispatchable `main` — not a wall of failures on day one. Requested together with the "enable Actions" decision. ## 1. Clear the `no-vanity-metrics` failures (red on main already) The gate has been failing on `main` independent of any feature work — so the very first thing Actions would report is a red that predates this branch. Three hits: - `jouledesk/README.md` — "8 tests", a genuine codebase-count. Removed; the sentence stands without it. - `jcp-efficiency/MAPPING.md` ×2 — **false positives**: the scanner's regex reads "509 adapter" out of "X.509 adapter" as a count. X.509 is the ITU-T certificate standard's name, so these get the scanner's own `<!-- allow-vanity: … -->` opt-out, which is exactly its purpose. Scanner now exits 0 across every Markdown file. ## 2. Point the workflows at the fleet's runner labels Every workflow was authored for GitHub-hosted images — `ubuntu-latest`, `macos-latest`, `macos-13`, `windows-latest`, `ubuntu-24.04-arm`. **This fleet's Forgejo runners register different labels** (`linux`, `linux-arm64`, `macos`, `windows`), confirmed against the live runner registry. As written, enabling Actions would queue every job against a label no runner answers, and they would hang indefinitely rather than fail. - `ubuntu-latest` / `ubuntu-24.04-arm` → `linux` / `linux-arm64` - `macos-latest` → `macos`, `windows-latest` → `windows` - `macos-13` (Intel Mac) **dropped** — the fleet has no Intel-Mac runner, and by the matrices' own comments it adds no arch coverage (x86_64 held by linux+windows, arm64 by linux-arm64 + the macos reference). - macOS is a launchd `host` executor whose PATH omits `~/.cargo/bin`; `wai-conformance` calls `rustup` raw, so it now prepends `~/.cargo/bin` to `$GITHUB_PATH` first (harmless where cargo is already on PATH). 10 jobs across 7 workflows now resolve to fleet labels. This makes them **dispatchable** — the per-job conformance logic (ONNX fixtures, cross-arch byte goldens) is what the first real runs will actually exercise. ## 3. Raise the MSRV floor to 1.97 The declared `rust-version` had drifted into three tiers — 1.85, 1.96, one 1.96.0 — none of them the compiler the code is pinned against (1.97.1). Unified to **1.97** across 26 manifests, so the floor states the oldest compiler these standards are actually verified on. This is the deliberate MSRV bump that the toolchain PR (#38) explicitly left out as a separate support-policy decision; done here on request. `sandbox-rs` (was 1.85) and `eoc-rs` (was 1.96) build + test clean under the pin. The floor is declarative; the 1.97.1 toolchain pin already governs what actually compiles. ## After merge Enabling Actions (`has_actions: true`) is the follow-on step, done once this is on `main` so Actions' first sight of the repo is already-fixed. I have verified the structural prerequisites — labels resolve, the gate is green, YAML is well-formed — but not run the conformance jobs themselves (they need ONNX runtime and cross-arch runners). Surfacing any per-job issues is what the first CI runs are for. --- 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The gate has been red on main independent of any feature work. Three hits:

- jouledesk/README.md — "8 tests", a real codebase-count. Dropped; the
  sentence describes the teammate loop fine without it.
- jcp-efficiency/MAPPING.md ×2 — false positives. The scanner's regex reads
  "509 adapter" out of "X.509 adapter" as a count, but X.509 is the ITU-T
  certificate standard's name. Marked with the scanner's own
  `<!-- allow-vanity: ... -->` opt-out, which is exactly what it is for.

Scanner now passes clean across every Markdown file.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Every workflow was written for GitHub-hosted runners (ubuntu-latest,
macos-latest, macos-13, windows-latest, ubuntu-24.04-arm). This fleet's
Forgejo runners register different labels — `linux`, `linux-arm64`,
`macos`, `windows` — so as written, enabling Actions would queue every
job against a label no runner answers, and they would hang forever.

Mapping applied:
  ubuntu-latest / ubuntu-24.04-arm -> linux / linux-arm64
  macos-latest -> macos    windows-latest -> windows
  macos-13 (Intel Mac) -> dropped: the fleet has no Intel-Mac runner, and
    by the matrices' own stated logic it adds no arch coverage (x86_64 is
    held by linux + windows, arm64 by linux-arm64 + the macos reference).

Also: the macOS runner is a `host` executor launched from launchd, whose
PATH omits ~/.cargo/bin, so a raw `rustup` call is not found. wai-conformance
uses raw rustup across the matrix, so it now prepends ~/.cargo/bin to
$GITHUB_PATH first — a no-op on the platforms where cargo is already found.

All 10 jobs across 7 workflows parse and resolve to fleet labels. Note:
this makes the workflows *dispatchable*; the per-job conformance logic
(ONNX fixtures, cross-arch byte goldens) is what the first real runs verify.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The declared MSRV had drifted into three tiers — 1.85, 1.96, and one
1.96.0 — none of them the compiler the code is actually built and pinned
against (now 1.97.1, rust-toolchain.toml). Raising the floor to 1.97
makes the support commitment honest: it states the oldest compiler these
standards are actually verified on, rather than a floor no CI ever
exercises.

This is the deliberate MSRV bump that the 1.97.1 toolchain PR explicitly
left out, because raising a library's floor is a support-policy decision,
not an automatic consequence of moving a build box. Done here as its own
change, on request. 26 workspace manifests, minor-version precision to
match the repo's dominant style. sandbox-rs (was 1.85) and eoc-rs (was
1.96) build + test clean under the pin.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Transaction-Science/open-standards!45
No description provided.