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:
@@ -56,9 +56,12 @@ jobs:
|
|||||||
run: cargo build -p wickra-examples --bins
|
run: cargo build -p wickra-examples --bins
|
||||||
|
|
||||||
# Verify the crates still build and test on their declared minimum supported
|
# Verify the crates still build and test on their declared minimum supported
|
||||||
# Rust version. The workspace pins rust-version = "1.75"; bindings/node needs
|
# Rust version. The workspace pins rust-version = "1.80" (raised from 1.75
|
||||||
# 1.77 because napi-build emits `cargo::` directives. Without this job an
|
# so rayon-core >= 1.13.0 keeps compiling); bindings/node pins
|
||||||
# accidental use of a newer API would only surface for downstream users.
|
# 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:
|
msrv:
|
||||||
name: ${{ matrix.name }}
|
name: ${{ matrix.name }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -66,11 +69,11 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- name: MSRV workspace (Rust 1.75)
|
- name: MSRV workspace (Rust 1.80)
|
||||||
toolchain: "1.75"
|
toolchain: "1.80"
|
||||||
packages: "-p wickra-core -p wickra -p wickra-data"
|
packages: "-p wickra-core -p wickra -p wickra-data"
|
||||||
- name: MSRV node binding (Rust 1.77)
|
- name: MSRV node binding (Rust 1.88)
|
||||||
toolchain: "1.77"
|
toolchain: "1.88"
|
||||||
packages: "-p wickra-node"
|
packages: "-p wickra-node"
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
|
||||||
|
|||||||
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
- **MSRV bumped.** Workspace minimum supported Rust version is now **1.80**
|
||||||
|
(was 1.75) and the Node binding (`wickra-node`) is now **1.88** (was 1.77).
|
||||||
|
The bumps are driven by transitive-dependency floors that were lifted in
|
||||||
|
recent updates: `rayon-core >= 1.13.0` requires Rust 1.80, and
|
||||||
|
`napi-build >= 2.3.2` requires Rust 1.88. Pinning the deps to the older
|
||||||
|
versions would have frozen us out of future security fixes from those
|
||||||
|
upstreams, so lifting the MSRV is the cleaner path for a young 0.x
|
||||||
|
library. Downstream consumers on older Rust toolchains can stay on
|
||||||
|
Wickra 0.2.0.
|
||||||
|
|
||||||
## [0.2.0] - 2026-05-23
|
## [0.2.0] - 2026-05-23
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ exclude = ["fuzz"]
|
|||||||
version = "0.2.0"
|
version = "0.2.0"
|
||||||
authors = ["kingchenc <kingchencp@gmail.com>"]
|
authors = ["kingchenc <kingchencp@gmail.com>"]
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
rust-version = "1.75"
|
rust-version = "1.80"
|
||||||
license = "PolyForm-Noncommercial-1.0.0"
|
license = "PolyForm-Noncommercial-1.0.0"
|
||||||
repository = "https://github.com/kingchenc/wickra"
|
repository = "https://github.com/kingchenc/wickra"
|
||||||
homepage = "https://github.com/kingchenc/wickra"
|
homepage = "https://github.com/kingchenc/wickra"
|
||||||
|
|||||||
@@ -4,9 +4,11 @@ description = "Node.js bindings for the Wickra streaming-first technical indicat
|
|||||||
version.workspace = true
|
version.workspace = true
|
||||||
authors.workspace = true
|
authors.workspace = true
|
||||||
edition.workspace = true
|
edition.workspace = true
|
||||||
# napi-build emits `cargo::` directives that require Rust >= 1.77; the rest of
|
# napi-build 2.3.2 requires Rust >= 1.88 (newer than the workspace 1.80
|
||||||
# the workspace stays at 1.75 because the core crate has no such dependency.
|
# minimum, which itself was lifted to satisfy rayon-core 1.13.0). napi-build
|
||||||
rust-version = "1.77"
|
# also emits `cargo::` directives that require >= 1.77 — that older floor is
|
||||||
|
# subsumed by the 1.88 requirement now.
|
||||||
|
rust-version = "1.88"
|
||||||
license.workspace = true
|
license.workspace = true
|
||||||
repository.workspace = true
|
repository.workspace = true
|
||||||
homepage.workspace = true
|
homepage.workspace = true
|
||||||
|
|||||||
Reference in New Issue
Block a user