kornelski / cavif-rs

AVIF image creator in pure Rust
https://lib.rs/cavif
BSD 3-Clause "New" or "Revised" License
570 stars 27 forks source link

Recent patch upgrade seems to require more recent rustc version (1.79) #82

Closed antimora closed 1 month ago

antimora commented 1 month ago

Just recently we (Burn project) noticed that ravif requires rust 1.79 after a patch release.

error: package `ravif v0.11.8` cannot be built because it requires rustc 1.79 or newer, while the currently active rustc version is 1.76.0
Either upgrade to rustc 1.79 or newer, or use
cargo update ravif@0.11.8 --precise ver
where `ver` is the latest version of `ravif` supporting rustc 1.76.0
[
kornelski commented 1 month ago

Yes, that's because bitstream-io, a dependency of rav1e, started using a feature only in Rust 1.79.

Such is life in the Rust ecosystem, where only the latest stable is supported. Support for 1.79 is going to end in 8 days, when 1.80 comes out.

syl20bnr commented 1 month ago

I don't understand, is that not possible to lock on finer grained version ? If I am not mistaken the issue comes from rav1e where the pinned version is too loose right ?

https://github.com/xiph/rav1e/blob/master/Cargo.toml

kornelski commented 1 month ago

Pinning of versions is very disruptive, because it makes the project automatically incompatible with users of the newer version of the pinned library.

You can use cargo update --precise $ver -p $crate to downgrade crates in your Cargo.lock, but I can't do that for you without causing problems for others.

Cargo is getting rust-version-aware resolver, so this may be less of a problem in the future.

syl20bnr commented 1 month ago

Indeed there is no right way to fix this for all users. Thank you for the quick feedback!