open-standards/.github/workflows/joule-code-conformance.yml
Transaction Science 8d2ff334d2 Move the toolchain pin to Rust 1.97.1
The repo was pinned to 1.96.0 while 1.97.1 is current and installed on
the dev box, so every build here ran a compiler two releases behind the
one the code is actually developed against. This moves the pin forward.

Both toolchain files (root and the eoc/eoc-rs sub-workspace) and the
five workflows that hardcode a toolchain rather than deferring to
rust-toolchain.toml — wai-conformance, wai-neural-e2e, wai-byte-equality,
joule-code-conformance, jouleclaw-public-surface-documented. Pinning
stays exact, per the repo's convention: a pin that drifts is not a pin.

MSRV is deliberately untouched. The `rust-version` fields across the
workspaces (1.85 in mesh/proof, 1.96 elsewhere) declare the *oldest*
compiler a crate supports, not the one it is built with — a floor, not a
pin. Raising them because the dev toolchain moved would narrow who can
consume these standards as libraries, which is a policy decision about
support commitments, not a consequence of upgrading a build box. A
crate with MSRV 1.85 builds perfectly well under 1.97.1.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
2026-07-21 07:01:47 -04:00

57 lines
1.7 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: joule-code conformance gate
# Enforces the Joule Code conformance contract on every change: the reference
# library must build and pass its tests, and the published C1–C4 wire vectors
# must round-trip (SPEC §8). "Conformant = round-trips the vectors" — checked,
# not asserted.
on:
pull_request:
paths:
- 'joule-code/**'
- '.github/workflows/joule-code-conformance.yml'
push:
branches:
- main
paths:
- 'joule-code/**'
- '.github/workflows/joule-code-conformance.yml'
jobs:
conformance:
name: Build + round-trip C1-C4 vectors
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: "1.97.1"
- name: Cache cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
joule-code/joule-code-rs/target
key: joule-code-${{ runner.os }}-${{ hashFiles('joule-code/joule-code-rs/Cargo.lock') }}
- name: Reference library tests
working-directory: joule-code/joule-code-rs
run: cargo test --workspace
- name: Round-trip the v1 conformance pack (C1-C4)
working-directory: joule-code/joule-code-rs
run: |
set -e
out="$(cargo run -q -p joule-code-conformance -- verify ../conformance/v1)"
echo "$out"
# The pack must pass with zero failures.
echo "$out" | grep -Eq '0 failed' || { echo "::error::conformance pack reported failures"; exit 1; }
- name: L3 JouleClaw binding example builds + tests
working-directory: joule-code/examples/l3-jouleclaw
run: cargo test