rust-num / num-traits

Numeric traits for generic mathematics in Rust
Apache License 2.0
694 stars 131 forks source link

Use namespaced-features to safely bump to MSRV 1.60 #310

Closed cuviper closed 5 months ago

cuviper commented 7 months ago

Earlier versions won't see the incompatible updates at all!

cuviper commented 7 months ago

Note: I have not considered MSRV bumps to be breaking changes, but I have still been very conservative with them to avoid disrupting dependent crates. This bump is not meant to set any new policy, per se -- it's just that this particular feature of 1.60 offers an opportunity to raise MSRV without breaking anyone on older versions.

cuviper commented 4 months ago

Earlier versions won't see the incompatible updates at all!

Now that I have released 0.2.19 (#321), I find that this isn't completely true. Cargo 1.51 through 1.59 will ignore it thanks to the schema version in rust-lang/cargo#9161, backported in rust-lang/cargo#9196, but older Cargo doesn't know to look for that.

So, this bump isn't quite as "free" as I intended, but I think it will be OK. This MSRV 1.60 is still over 2 years old (2022-04-07), and the accidental schema-aware minimum of 1.51 is over 3 years old (2021-03-25). If someone really wants to use even older rustc, they can still manually lock an older version of this crate.