rust-embedded / embedded-hal

A Hardware Abstraction Layer (HAL) for embedded systems
Apache License 2.0
1.95k stars 197 forks source link

Make embedded-io MSRV 1.48.0 #500

Closed RCasatta closed 10 months ago

RCasatta commented 1 year ago

Would it be acceptable to make embedded-io crate MSRV 1.48.0 (without features) ? It seems minimal changes are needed.

The reason to propose this is that rust-bitcoin crate is looking for a replacement for core2 crate, but at the moment has this lower MSRV required for dependencies.

Thanks

Dirbaio commented 1 year ago

Rust 1.48 is ancient, almost 3 years old. This would require downgrading an edition, and the doc = include_str!() changes mean running cargo doc no longer produces good docs by default. I'm personally not convinced.

bugadani commented 1 year ago

Not sure how much my opinion matters here, but the docs issue may be improved by introducing a lower-my-msrv-pls feature that disables the attribute with include_str!, but it's an inelegant hack at best.

jcdickinson commented 1 year ago

You can use git, and hence a fork, for dependencies in Rust. For example:

embedded-hal = { git = "https://github.com/rust-bitcoin/embedded-hal.git", rev = "abc123..." }
TheBlueMatt commented 1 year ago

Not sure how much my opinion matters here, but the docs issue may be improved by introducing a lower-my-msrv-pls feature that disables the attribute with include_str!, but it's an inelegant hack at best.

You don't even have to do that, you could have a separate MSRV for docs (cause its not super common to build them locally anyway, I doubt much of anyone cares) or even just enable it with the cratesio flags.

Dirbaio commented 10 months ago

This was discussed in a WG meeting a while ago, sorry for not getting back earlier.

This crate is targeted at embedded use cases. Embedded users are generally happy to obtain rustc from rustup, there's no requirement to use super old Debian versions for packaging, and often newer rustc is required for hardware support. The value provided by supporting such old rustc's is almost non-existent, so we'd prefer not to.

Thanks anyway for the PR!