Bump MSRV to 1.73
Motivation:
- We can get rid of
lazy_static!in favor ofstd::sync::LazyLock - We can use
{integer}::div_ceilhttps://github.com/ZcashFoundation/frost/blob/ca33dad959e55bc66d5feac53a1275faae79377b/frost-core/src/scalar_mul.rs#L28 - Crates from RustCrypto already have pre-releases that require Rust 1.73+ or even Rust 1.81+ in some cases. For example: https://github.com/RustCrypto/elliptic-curves/blob/master/k256/Cargo.toml
- Starting with 1.81 we can use
core::error::Errorand remove thethiserror-nostd-notraitdependency in favor ofthiserror: https://github.com/dtolnay/thiserror/pull/373
This is REALLY tempting, but we might want to give a bit more time to crate users to update their Rust. I'm leaving this open while we consider it. Thanks for pointing these out!
Providing the full context:
LazyLockrequires MSRV 1.80, butOnceLockcould also be used to get rid oflazy_static!, and it only requires MSRV 1.70.{integer}::div_ceilrequires MSRV 1.73.- RustCrypto had an MSRV of 1.73 as their last common MSRV IIRC (the latest non-pre-release of
k256is actually MSRV 1.65), but have bumped to 1.81 in pre-releases of crates that were usinggeneric-arrayto instead usehybrid-array, which has an MSRV of 1.81 simply to remove itsstdfeature flag and replacestd::error::Errorwithcore::error::Error: https://github.com/RustCrypto/hybrid-array/pull/85- Based on https://github.com/RustCrypto/hybrid-array/pull/85#issuecomment-2342331651 I believe they plan to hold off actually cutting releases of those downstream crates (such as the aforementioned
k256) until 1.81 is atN - 3(i.e. waiting until the release of Rust 1.84 in early 2025). And I do not think that the FROST crates should depend on pre-releases of those crates.
- Based on https://github.com/RustCrypto/hybrid-array/pull/85#issuecomment-2342331651 I believe they plan to hold off actually cutting releases of those downstream crates (such as the aforementioned
Thanks - I guess we better wait until 1.84 at least.
It seems sensible to follow RustCrypto MSRV so we might already do the first two.
We've decided to update to 1.73 for now
Any news on that?
Any news on that?
I think that's still blocked on k256 0.14.0 being released, but maybe we can try the pre-release version...