-
Notifications
You must be signed in to change notification settings - Fork 185
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bumping MSRV of getrandom 0.2 #286
Comments
I think Personally, I don't mind a bump from 1.34 to 1.36. It's only two versions, and they were released long enough ago that it shouldn't really matter. However, I would mind a bump to 1.51. I maintain some crates that aim to target the current distro version of Debian Stable, which is 1.48. If This is a pretty hotly contended issue in the Rust community, see matklad/once_cell#201 ( |
This feature is trivial to polyfill, IIUC, so it's not very compelling to bump MSRV for it. Though, I wouldn't object to it.
I think that's extremely uncontroversial given the data you looked up, especially regarding rand's current MSRV. I suggest bumping MSRV to 1.36 for now so the The CI/CD configuration and ensuring tests cover all the different code paths gets really messy really fast when there are optional features, so I would recommend avoiding the use of optional features to try to allow people to opt into newer language features like const generics. |
If we make the MSRV 1.37 or higher, instead of 1.36, then we can use |
I don't think there is enough merit in it, the casts are trivially safe, having |
|
|
I don't think that target support influences crate's MSRV. You obviously can not build crate for a target with a toolchain which does not anything about it. We already have several targets which were introduced after Rust 1.34 was released. |
I think @briansmith just meant that we could shorten the code in #303 by using #[cfg(all(target_family = "wasm", target_os = "unknown"))] instead of #[cfg(all(any(target_arch = "wasm32", target_arch = "wasm64"), target_os = "unknown"))] but I agree, we can live without it. |
I don't object to closing the issue, as I don't think increasing the MSRV even requires an issue. :) |
A few issues and PRs (#279 #281) have brought up the idea of increasing the MSRV of this crate. Currently the MSRV is 1.34, and I've seen 3 features we might want to use which are only present in later versions:
MaybeUninit
: added in 1.36 (Released 2019-07-04)<*mut T>::cast
: added in 1.38 (Released 2019-09-26)When raising the MSRV, we should keep in mind that
rand 0.8
andrand_core 0.6
have an MSRV of 1.36, and they are our largest users. Other top crates that directly depend on us include:uuid
: MSRV 1.57ahash
: MSRV 1.43.1fastrand
: MSRV 1.34 (but it's only adev
dependancy)os_str_bytes
: MSRV 1.57redox_users
: MSRV at least 1.36async-io
: MSRV 1.46zip
: MSRV 1.54Also, we can always use
rustversion
to have APIs that require a newer version of Rust without increasing our MSRV, provided we can implement the newer API in terms of one of the older APIs.I would propose: raising the MSRV to 1.36 so we can use
MaybeUninit
inside of our crate.For example,
The text was updated successfully, but these errors were encountered: