build: lift MSRV to 1.80 workspace / 1.88 node binding

The previous MSRV pins were below what current transitive dependencies
need:

  - rayon-core 1.13.0 (pulled in by the optional `parallel` feature on
    wickra-core via rayon) requires rustc >= 1.80; under the old 1.75
    workspace MSRV the CI MSRV job broke with "package `rayon-core
    v1.13.0` cannot be built because it requires rustc 1.80 or newer".
  - napi-build 2.3.2 (the build-script crate that napi-derive 2.x calls
    into) requires rustc >= 1.88; under the old 1.77 node-binding MSRV
    the CI MSRV-node job broke with "package `napi-build v2.3.2` cannot
    be built because it requires rustc 1.88 or newer".

Pinning the deps backwards would have frozen us out of upstream
security/fix releases for both crates. Lifting the MSRV is the cleaner
path for a young 0.x library — downstream consumers on older toolchains
can stay on the already-published 0.2.0.

Updated:
  - Cargo.toml workspace rust-version 1.75 -> 1.80
  - bindings/node/Cargo.toml rust-version 1.77 -> 1.88
  - .github/workflows/ci.yml MSRV matrix names + toolchain values + comment
  - CHANGELOG.md [Unreleased] documents the bump
This commit is contained in:
kingchenc
2026-05-23 20:22:35 +02:00
parent 90d8a299c3
commit 30444ce296
4 changed files with 27 additions and 11 deletions
+10 -7
View File
@@ -56,9 +56,12 @@ 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.75"; bindings/node needs
# 1.77 because napi-build emits `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.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.
msrv:
name: ${{ matrix.name }}
runs-on: ubuntu-latest
@@ -66,11 +69,11 @@ jobs:
fail-fast: false
matrix:
include:
- name: MSRV workspace (Rust 1.75)
toolchain: "1.75"
- name: MSRV workspace (Rust 1.80)
toolchain: "1.80"
packages: "-p wickra-core -p wickra -p wickra-data"
- name: MSRV node binding (Rust 1.77)
toolchain: "1.77"
- name: MSRV node binding (Rust 1.88)
toolchain: "1.88"
packages: "-p wickra-node"
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1