Closed kentfredric closed 3 years ago
I believe there is sometimes some value in incrementing semver when changing minimum supported rust, especially when you advertise a "stable API" ( 1.x )
This is a long debated point that isn't so cut and dry and the feeling I have from the community is that MSRV does not impact semver. Please be careful with these messages as they can create unnecessary confusion within the community.
As for this project, our CI enforces some level of MSRV checking and it is currently set to 1.33, see https://github.com/assert-rs/predicates-rs/blob/master/azure-pipelines.yml#L11
As for this project, our CI enforces some level of MSRV checking and it is currently set to 1.33, see https://github.com/assert-rs/predicates-rs/blob/master/azure-pipelines.yml#L11
Nice. If that MSRV could be documented somewhere user visible to help set expectations, that would be an improvement.
Basically, as long as the MSRV is documented to be higher or equal to the point at which I found the failure, I'd have not bothered filing a bug, as the primary objective here is to detect potentially unintended MSRV increases.
As long as they're clearly intentional, then I'm not going to contest/debate it :)
This ticket doesn't require action, its just for your information.
Testing indicates that 1.0.1 changes the effective MSRV from 1.19.0 to 1.31.0
https://kentfredric.github.io/rust-vmatrix/crates-p/pr/predicates-core/
Failure on rust 1.30
```console Compiling predicates-core v1.0.1 Running `rustc --edition=2018 --crate-name predicates_core /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=eac2f78185e84610 -C extra-filename=-eac2f78185e84610 --out-dir /tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_30_1_1/target/debug/deps -L dependency=/tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_30_1_1/target/debug/deps --cap-lints allow -C linker=x86_64-pc-linux-gnu-gcc` error: Edition 2018 is unstable and only available for nightly builds of rustc. error: Could not compile `predicates-core`. Caused by: process didn't exit successfully: `rustc --edition=2018 --crate-name predicates_core /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs --color always --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=eac2f78185e84610 -C extra-filename=-eac2f78185e84610 --out-dir /tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_30_1_1/target/debug/deps -L dependency=/tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_30_1_1/target/debug/deps --cap-lints allow -C linker=x86_64-pc-linux-gnu-gcc` (exit code: 1) ```Failure on rust 1.27 to 1.29
```console Updating registry `https://github.com/rust-lang/crates.io-index` error: unable to get packages from source Caused by: failed to parse manifest at `/tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/Cargo.toml` Caused by: editions are unstable Caused by: feature `edition` is required this Cargo does not support nightly features, but if you switch to nightly channel you can add `cargo-features = ["edition"]` to enable this feature ```Failure on rust 1.26
```console Updating registry `https://github.com/rust-lang/crates.io-index` Compiling predicates-core v1.0.1 Running `rustc --crate-name predicates_core /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=d28798d656779a9a -C extra-filename=-d28798d656779a9a --out-dir /tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_26_2_1/target/debug/deps -L dependency=/tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_26_2_1/target/debug/deps --cap-lints allow -C linker=x86_64-pc-linux-gnu-gcc` error[E0658]: `crate` in paths is experimental (see issue #45477) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/core.rs:9:5 | 9 | use crate::reflection; | ^^^^^ error[E0658]: `crate` in paths is experimental (see issue #45477) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs:24:9 | 24 | pub use crate::core::*; | ^^^^^ error[E0658]: `dyn Trait` syntax is unstable (see issue #44662) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/reflection.rs:18:40 | 18 | fn parameters<'a>(&'a self) -> BoxFailure on rust 1.25
```console Updating registry `https://github.com/rust-lang/crates.io-index` Compiling predicates-core v1.0.1 Running `rustc --crate-name predicates_core /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=ac856e13a35423d4 -C extra-filename=-ac856e13a35423d4 --out-dir /tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_25_0_1/target/debug/deps -L dependency=/tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_25_0_1/target/debug/deps --cap-lints allow -C linker=x86_64-pc-linux-gnu-gcc` error[E0658]: `crate` in paths is experimental (see issue #45477) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/core.rs:9:5 | 9 | use crate::reflection; | ^^^^^ error[E0658]: `crate` in paths is experimental (see issue #45477) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs:24:9 | 24 | pub use crate::core::*; | ^^^^^ error[E0658]: `dyn Trait` syntax is unstable (see issue #44662) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/reflection.rs:18:40 | 18 | fn parameters<'a>(&'a self) -> BoxFailure on rust 1.24
```console Updating registry `https://github.com/rust-lang/crates.io-index` Compiling predicates-core v1.0.1 Running `rustc --crate-name predicates_core /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=6c6a7c081787498a -C extra-filename=-6c6a7c081787498a --out-dir /tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_24_1_1/target/debug/deps -L dependency=/tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_24_1_1/target/debug/deps --cap-lints allow -C linker=x86_64-pc-linux-gnu-gcc` error: `crate` in paths is experimental (see issue #45477) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/core.rs:9:5 | 9 | use crate::reflection; | ^^^^^ error: `crate` in paths is experimental (see issue #45477) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs:24:9 | 24 | pub use crate::core::*; | ^^^^^ error: `dyn Trait` syntax is unstable (see issue #44662) --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/reflection.rs:18:40 | 18 | fn parameters<'a>(&'a self) -> BoxFailure on rust 1.14 - 1.23
```console Updating registry `https://github.com/rust-lang/crates.io-index` Compiling predicates-core v1.0.1 Running `rustc --crate-name predicates_core /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=7496c2056dd620d1 -C extra-filename=-7496c2056dd620d1 --out-dir /tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_23_0_1/target/debug/deps -L dependency=/tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_23_0_1/target/debug/deps --cap-lints allow -C linker=x86_64-pc-linux-gnu-gcc` error: expected identifier, found keyword `crate` --> /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/core.rs:9:5 | 9 | use crate::reflection; | ^^^^^ error: aborting due to previous error error: Could not compile `predicates-core`. Caused by: process didn't exit successfully: `rustc --crate-name predicates_core /tmp/Wkpp3jDiZE/vcheck_pl/cargo_1/.cargo/registry/src/github.com-1ecc6299db9ec823/predicates-core-1.0.1/src/lib.rs --crate-type lib --emit=dep-info,link -C debuginfo=2 -C metadata=7496c2056dd620d1 -C extra-filename=-7496c2056dd620d1 --out-dir /tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_23_0_1/target/debug/deps -L dependency=/tmp/Wkpp3jDiZE/vcheck_pl/predicates-core-rustc1_23_0_1/target/debug/deps --cap-lints allow -C linker=x86_64-pc-linux-gnu-gcc` (exit code: 101) ```Casual observation suggests the main culprit for this regression is:
I believe there is sometimes some value in incrementing semver when changing minimum supported rust, especially when you advertise a "stable API" ( 1.x )
Though documenting the minimum supported rust somewhere top-level (README) also goes a long way.
Setting up a CI server to check your documented MSRV sticks is also quite welcome.
In the event this issue is not helpful, just let me know and I'll try to avoid filing similar issues on this crate in future.
NB: I don't directly use
predicates-core
, I'm just doing build testing across the ecosystem.