Move MSRV to cargo.toml and remove build.rs#143
Conversation
This reworks MSRV detection logic, using the `rust-version` field in Cargo manifest. It allows dropping `build.rs` and removing the `version_check` build-dependency. Ref: https://doc.rust-lang.org/cargo/reference/manifest.html#the-rust-version-field
|
/cc @ejmahler for review. |
|
The solution with build.rs was created to allow different msrv for different features and architectures. This isn't needed right now, but will be again once this get completed for example: #144 |
|
I think this is a good idea. I knew about this, but I thought it was added much more recently, so I didn't think we could support it. There doesn't seem to be much urgency to get fcma stabilized, so this will help improve the library in the meantime. But honestly, even once we get fcma support in, I'm not excited about the idea of "split MSRV" where some sets of features require one MSRV and others require another MSRV, so I think I'd prefer to just upgrade the entire MSRV for fcma. This will certainly create an inconvenience for users on x86_64 who won't benefit from the addition of fcma, but we can use the increased MSRV to make all sorts of other improvements - for example, target feature 1.1 will let us remove the unsafe keyword from many functions, which will benefit everyone. |
This reworks MSRV detection logic, using the
rust-versionfield in Cargo manifest. It allows droppingbuild.rsand removing theversion_checkbuild-dependency.Ref: https://doc.rust-lang.org/cargo/reference/manifest.html#the-rust-version-field