Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 72 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,33 @@ name: AIngle CI
on:
push:
branches: [ main, dev ]
# No branch filter on pull_request, on purpose. Filtering to [main, dev] meant
# a PR onto any other branch ran NO checks at all — so a stack of dependent
# PRs was invisible to CI until each one was retargeted, which is exactly when
# it is too late to learn something. Every PR gets the same gate.
pull_request:
branches: [ main, dev ]

env:
# PINNED, not `stable`. On 2026-07-29 the runner moved to clippy 1.97, which
# added `question_mark`, and the lint gate went red with no commit behind it —
# a compiler release is not a change to this repository and must not be able
# to fail its CI.
#
# Pinning here rather than in a `rust-toolchain.toml`: the toolchain action
# exports RUSTUP_TOOLCHAIN, which takes precedence over that file, so the
# pin would be ignored in exactly the place it is needed. The file exists too,
# for local parity.
#
# To bump: raise this, run `cargo +<new> clippy --workspace --all-targets --
# -D warnings` and `cargo +<new> fmt --all -- --check` locally first, and fix
# whatever the new release added in the same commit.
RUST_VERSION: "1.97.0"
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
MSRV: "1.85"
# The version this project promises to build on, verified by the job below
# against the WHOLE workspace. Keep in step with `rust-version` in the root
# Cargo.toml, which is where consumers read it.
MSRV: "1.91"

jobs:
# MSRV (Minimum Supported Rust Version) check
Expand Down Expand Up @@ -40,8 +60,11 @@ jobs:
restore-keys: |
${{ runner.os }}-cargo-msrv-

# `-p aingle_minimal` before, which is the one member with no wasmer in
# its dependency tree — so it passed at 1.85 while the workspace could
# not build below 1.91. A promise nothing checks is not a promise.
- name: Check MSRV
run: cargo check -p aingle_minimal
run: cargo check --workspace --all-targets

# Format check
fmt:
Expand All @@ -51,8 +74,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
components: rustfmt

- name: Check formatting
Expand All @@ -66,8 +90,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
components: clippy

- name: Install system dependencies
Expand All @@ -86,8 +111,26 @@ jobs:
restore-keys: |
${{ runner.os }}-cargo-clippy-

# The bar CLAUDE.md declares as `make lint`, which nothing enforced.
#
# This step used to read `-p aingle_minimal --features rest -- -W
# clippy::all`: one crate of seventeen, the library target only, and
# warnings that did not fail anything. It reported green while 54 lints
# accumulated across the workspace — among them a benchmark that had not
# compiled in months, and assertions that compared unsigned counters
# against zero and therefore passed no matter what the code did.
#
# `--all-targets` is load-bearing, not thoroughness for its own sake: it
# is what covers tests, benches and examples, and it is the only reason
# the dead benchmark was found at all.
- name: Run Clippy
run: cargo clippy -p aingle_minimal --features rest -- -W clippy::all
run: cargo clippy --workspace --all-targets -- -D warnings

# No separate "did it really compile?" step: with `--workspace` and
# `-D warnings`, a member that fails to build makes THIS step exit
# non-zero. The companion-repo failure that inspired one was a job that
# went red for a lint and stayed red for a build script nobody read to
# the bottom of — a reading problem, not a missing check.

# Build check
build:
Expand All @@ -97,7 +140,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install system dependencies
run: |
Expand Down Expand Up @@ -130,7 +175,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install system dependencies
run: |
Expand Down Expand Up @@ -162,7 +209,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install system dependencies
run: |
Expand Down Expand Up @@ -206,7 +255,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install cargo-audit
run: cargo install cargo-audit
Expand All @@ -224,8 +275,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
components: llvm-tools-preview

- name: Install system dependencies
Expand Down Expand Up @@ -267,7 +319,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install system dependencies
run: |
Expand Down Expand Up @@ -306,7 +360,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install system dependencies
run: |
Expand Down Expand Up @@ -335,7 +391,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install system dependencies
run: |
Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ concurrency:
cancel-in-progress: true

env:
# Pinned on purpose: see the note in ci.yml.
RUST_VERSION: "1.97.0"
CARGO_TERM_COLOR: always

jobs:
Expand All @@ -25,7 +27,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install system dependencies
run: |
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ permissions:
contents: write

env:
# Pinned on purpose: see the note in ci.yml.
RUST_VERSION: "1.97.0"
CARGO_TERM_COLOR: always

jobs:
Expand Down Expand Up @@ -50,8 +52,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}
targets: ${{ matrix.target }}

- name: Install system dependencies (Linux)
Expand Down Expand Up @@ -163,7 +166,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install system dependencies
run: |
Expand Down
14 changes: 11 additions & 3 deletions .github/workflows/security.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ on:
workflow_dispatch:

env:
# Pinned on purpose: see the note in ci.yml.
RUST_VERSION: "1.97.0"
CARGO_TERM_COLOR: always

jobs:
Expand All @@ -28,7 +30,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install cargo-audit
run: cargo install cargo-audit
Expand Down Expand Up @@ -60,7 +64,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install cargo-deny
run: cargo install cargo-deny
Expand Down Expand Up @@ -109,7 +115,9 @@ jobs:
- uses: actions/checkout@v6

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ env.RUST_VERSION }}

- name: Install cargo-vet
run: cargo install cargo-vet
Expand Down
26 changes: 13 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading