build: lift workspace MSRV further to 1.85 for criterion's clap_lex

The first MSRV bump to 1.80 fixed the rayon-core floor but ran into a
second transitive-dep floor on the same CI run:

    error: failed to parse manifest at clap_lex-1.1.0/Cargo.toml
    Caused by: feature `edition2024` is required
    The package requires the Cargo feature called `edition2024`, but
    that feature is not stabilized in this version of Cargo (1.80.1).

clap_lex 1.1.0 is pulled in by criterion (dev-dep on the wickra crate)
via clap 4.6 -> clap_builder 4.6 -> clap_lex 1.1. edition2024 was
stabilized in Rust 1.85, so lift the workspace MSRV one more step. The
1.85 floor subsumes the rayon-core 1.80 requirement; bindings/node
stays at 1.88 (napi-build) which already covers everything below it.

Also fix the fuzz job: cargo-fuzz defaulted to building for
x86_64-unknown-linux-musl, which is not installed on the GitHub-hosted
ubuntu runner. Pass --target x86_64-unknown-linux-gnu explicitly on
every cargo fuzz run invocation so it builds for the actual host
target.
This commit is contained in:
kingchenc
2026-05-23 20:30:46 +02:00
parent 30444ce296
commit 3f9429dd2c
3 changed files with 22 additions and 19 deletions
+15 -13
View File
@@ -56,12 +56,14 @@ jobs:
run: cargo build -p wickra-examples --bins
# Verify the crates still build and test on their declared minimum supported
# Rust version. The workspace pins rust-version = "1.80" (raised from 1.75
# so rayon-core >= 1.13.0 keeps compiling); bindings/node pins
# rust-version = "1.88" because napi-build 2.3.2 requires it (and that
# subsumes the older 1.77 floor needed for `cargo::` directives). Without
# this job an accidental use of a newer API would only surface for
# downstream users.
# Rust version. The workspace pins rust-version = "1.85" — that floor is
# set by clap_lex 1.1.0 (transitively pulled in by the criterion dev-dep)
# which needs the stabilized edition2024 feature (stable since Rust 1.85);
# rayon-core 1.13.0 only needed 1.80 and is subsumed by the 1.85 floor.
# bindings/node pins rust-version = "1.88" because napi-build 2.3.2
# requires it (and that subsumes the older 1.77 floor needed for
# `cargo::` directives). Without this job an accidental use of a newer
# API would only surface for downstream users.
msrv:
name: ${{ matrix.name }}
runs-on: ubuntu-latest
@@ -69,8 +71,8 @@ jobs:
fail-fast: false
matrix:
include:
- name: MSRV workspace (Rust 1.80)
toolchain: "1.80"
- name: MSRV workspace (Rust 1.85)
toolchain: "1.85"
packages: "-p wickra-core -p wickra -p wickra-data"
- name: MSRV node binding (Rust 1.88)
toolchain: "1.88"
@@ -174,23 +176,23 @@ jobs:
tool: cargo-fuzz
- name: Fuzz csv_reader (30 s)
run: cargo +nightly fuzz run csv_reader -- -max_total_time=30
run: cargo +nightly fuzz run --target x86_64-unknown-linux-gnu csv_reader -- -max_total_time=30
working-directory: fuzz
- name: Fuzz binance_envelope (30 s)
run: cargo +nightly fuzz run binance_envelope -- -max_total_time=30
run: cargo +nightly fuzz run --target x86_64-unknown-linux-gnu binance_envelope -- -max_total_time=30
working-directory: fuzz
- name: Fuzz indicator_update (30 s)
run: cargo +nightly fuzz run indicator_update -- -max_total_time=30
run: cargo +nightly fuzz run --target x86_64-unknown-linux-gnu indicator_update -- -max_total_time=30
working-directory: fuzz
- name: Fuzz indicator_update_candle (30 s)
run: cargo +nightly fuzz run indicator_update_candle -- -max_total_time=30
run: cargo +nightly fuzz run --target x86_64-unknown-linux-gnu indicator_update_candle -- -max_total_time=30
working-directory: fuzz
- name: Fuzz tick_aggregator (30 s)
run: cargo +nightly fuzz run tick_aggregator -- -max_total_time=30
run: cargo +nightly fuzz run --target x86_64-unknown-linux-gnu tick_aggregator -- -max_total_time=30
working-directory: fuzz
python: