diff mbox series

[RESEND,libgpiod] bindings: rust: bump MSRV to 1.60

Message ID 20230616-msrv-v1-1-1f0ca25b8222@linaro.org
State New
Headers show
Series [RESEND,libgpiod] bindings: rust: bump MSRV to 1.60 | expand

Commit Message

Erik Schilling June 16, 2023, 8:37 a.m. UTC
Specifying MSRV (minimum supported rust version) was introduced with
Rust 1.56. So old versions of libraries do not have this restriction
spelled out in their Cargo.toml.

This means that even if we claimed a MSRV of 1.56 until now, that did
not mean that things were actually buildable with 1.56 practically
(without manually researching compatible versions and pinning them
down).

`bindgen` started listing a MSRV from v0.61 (requiring Rust 1.57) [1].
So that may seem like an obvious choice. But if one attempts to build
it with such an old version one will realize that `log` only started
requesting a MSRV with 0.4.19 (requesting Rust 1.60) [2]. Hence, we
would either need to manually restrict log to an old, but compatible
release (which would unnecessarily restrict everyone on newer Rust
versions) or just also bump our MSRV to 1.60.

Rust 1.60 was released on 2022-04-07 [3] and seems like an acceptable
choice if core components such as `log` started their MSRV tracking with
that version. If someone is determined wanting to use this with an older
version of Rust, thats still possible. If one has done the necessary
manual research and pinned their versions down, one can use
--ignore-rust-version (or a < 1.56 version of Rust that does not check
the MSRV yet).

Thanks to Manos Pitsidianakis <manos.pitsidianakis@linaro.org> for
helping me out when I successfully confused myself somewhere.

[1] https://github.com/rust-lang/rust-bindgen/blob/v0.61.0/bindgen/Cargo.toml
[2] https://github.com/rust-lang/log/blob/0.4.19/Cargo.toml
[3] https://blog.rust-lang.org/2022/04/07/Rust-1.60.0.html

Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
---
While looking at the clippy fixes [1], I realized that things do not
actually build with the minimum supported Rust version that we claim.
The simplest way forward seems to be just bumping that version.

[1] https://lore.kernel.org/r/20230612154055.56556-1-warthog618@gmail.com/

To: Linux-GPIO <linux-gpio@vger.kernel.org>
Cc: Kent Gibson <warthog618@gmail.com>
Cc: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Cc: Alex Bennée <alex.bennee@linaro.org>
---
 bindings/rust/gpiosim-sys/Cargo.toml  | 2 +-
 bindings/rust/libgpiod-sys/Cargo.toml | 2 +-
 bindings/rust/libgpiod/Cargo.toml     | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)


---
base-commit: 9a80247cf4a70c837055271c978afda7ef107338
change-id: 20230616-msrv-0f1d20f5bd09

Best regards,

Comments

Bartosz Golaszewski June 19, 2023, 8:17 a.m. UTC | #1
On Fri, Jun 16, 2023 at 10:38 AM Erik Schilling
<erik.schilling@linaro.org> wrote:
>
> Specifying MSRV (minimum supported rust version) was introduced with
> Rust 1.56. So old versions of libraries do not have this restriction
> spelled out in their Cargo.toml.
>
> This means that even if we claimed a MSRV of 1.56 until now, that did
> not mean that things were actually buildable with 1.56 practically
> (without manually researching compatible versions and pinning them
> down).
>
> `bindgen` started listing a MSRV from v0.61 (requiring Rust 1.57) [1].
> So that may seem like an obvious choice. But if one attempts to build
> it with such an old version one will realize that `log` only started
> requesting a MSRV with 0.4.19 (requesting Rust 1.60) [2]. Hence, we
> would either need to manually restrict log to an old, but compatible
> release (which would unnecessarily restrict everyone on newer Rust
> versions) or just also bump our MSRV to 1.60.
>
> Rust 1.60 was released on 2022-04-07 [3] and seems like an acceptable
> choice if core components such as `log` started their MSRV tracking with
> that version. If someone is determined wanting to use this with an older
> version of Rust, thats still possible. If one has done the necessary
> manual research and pinned their versions down, one can use
> --ignore-rust-version (or a < 1.56 version of Rust that does not check
> the MSRV yet).
>
> Thanks to Manos Pitsidianakis <manos.pitsidianakis@linaro.org> for
> helping me out when I successfully confused myself somewhere.
>
> [1] https://github.com/rust-lang/rust-bindgen/blob/v0.61.0/bindgen/Cargo.toml
> [2] https://github.com/rust-lang/log/blob/0.4.19/Cargo.toml
> [3] https://blog.rust-lang.org/2022/04/07/Rust-1.60.0.html
>
> Signed-off-by: Erik Schilling <erik.schilling@linaro.org>
> ---
> While looking at the clippy fixes [1], I realized that things do not
> actually build with the minimum supported Rust version that we claim.
> The simplest way forward seems to be just bumping that version.
>
> [1] https://lore.kernel.org/r/20230612154055.56556-1-warthog618@gmail.com/
>
> To: Linux-GPIO <linux-gpio@vger.kernel.org>
> Cc: Kent Gibson <warthog618@gmail.com>
> Cc: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> Cc: Viresh Kumar <viresh.kumar@linaro.org>
> Cc: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> Cc: Alex Bennée <alex.bennee@linaro.org>
> ---
>  bindings/rust/gpiosim-sys/Cargo.toml  | 2 +-
>  bindings/rust/libgpiod-sys/Cargo.toml | 2 +-
>  bindings/rust/libgpiod/Cargo.toml     | 2 +-
>  3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/bindings/rust/gpiosim-sys/Cargo.toml b/bindings/rust/gpiosim-sys/Cargo.toml
> index af30748..1f44a31 100644
> --- a/bindings/rust/gpiosim-sys/Cargo.toml
> +++ b/bindings/rust/gpiosim-sys/Cargo.toml
> @@ -9,7 +9,7 @@ authors = ["Viresh Kumar <viresh.kumar@linaro.org>"]
>  description = "gpiosim header bindings"
>  repository = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git"
>  categories = ["external-ffi-bindings", "os::linux-apis"]
> -rust-version = "1.56"
> +rust-version = "1.60"
>  keywords = ["libgpiod", "gpio", "gpiosim"]
>  license = "Apache-2.0 OR BSD-3-Clause"
>  edition = "2021"
> diff --git a/bindings/rust/libgpiod-sys/Cargo.toml b/bindings/rust/libgpiod-sys/Cargo.toml
> index 0c814ee..b4d26e9 100644
> --- a/bindings/rust/libgpiod-sys/Cargo.toml
> +++ b/bindings/rust/libgpiod-sys/Cargo.toml
> @@ -9,7 +9,7 @@ authors = ["Viresh Kumar <viresh.kumar@linaro.org>"]
>  description = "libgpiod public header bindings"
>  repository = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git"
>  categories = ["external-ffi-bindings", "os::linux-apis"]
> -rust-version = "1.56"
> +rust-version = "1.60"
>  keywords = ["libgpiod", "gpio"]
>  license = "Apache-2.0 OR BSD-3-Clause"
>  edition = "2021"
> diff --git a/bindings/rust/libgpiod/Cargo.toml b/bindings/rust/libgpiod/Cargo.toml
> index d6758be..518e5e5 100644
> --- a/bindings/rust/libgpiod/Cargo.toml
> +++ b/bindings/rust/libgpiod/Cargo.toml
> @@ -9,7 +9,7 @@ authors = ["Viresh Kumar <viresh.kumar@linaro.org>"]
>  description = "libgpiod wrappers"
>  repository = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git"
>  categories = ["api-bindings", "hardware-support", "embedded", "os::linux-apis"]
> -rust-version = "1.56"
> +rust-version = "1.60"
>  keywords = ["libgpiod", "gpio"]
>  license = "Apache-2.0 OR BSD-3-Clause"
>  edition = "2021"
>
> ---
> base-commit: 9a80247cf4a70c837055271c978afda7ef107338
> change-id: 20230616-msrv-0f1d20f5bd09
>
> Best regards,
> --
> Erik Schilling <erik.schilling@linaro.org>
>

Applied, thanks!

Bart
diff mbox series

Patch

diff --git a/bindings/rust/gpiosim-sys/Cargo.toml b/bindings/rust/gpiosim-sys/Cargo.toml
index af30748..1f44a31 100644
--- a/bindings/rust/gpiosim-sys/Cargo.toml
+++ b/bindings/rust/gpiosim-sys/Cargo.toml
@@ -9,7 +9,7 @@  authors = ["Viresh Kumar <viresh.kumar@linaro.org>"]
 description = "gpiosim header bindings"
 repository = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git"
 categories = ["external-ffi-bindings", "os::linux-apis"]
-rust-version = "1.56"
+rust-version = "1.60"
 keywords = ["libgpiod", "gpio", "gpiosim"]
 license = "Apache-2.0 OR BSD-3-Clause"
 edition = "2021"
diff --git a/bindings/rust/libgpiod-sys/Cargo.toml b/bindings/rust/libgpiod-sys/Cargo.toml
index 0c814ee..b4d26e9 100644
--- a/bindings/rust/libgpiod-sys/Cargo.toml
+++ b/bindings/rust/libgpiod-sys/Cargo.toml
@@ -9,7 +9,7 @@  authors = ["Viresh Kumar <viresh.kumar@linaro.org>"]
 description = "libgpiod public header bindings"
 repository = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git"
 categories = ["external-ffi-bindings", "os::linux-apis"]
-rust-version = "1.56"
+rust-version = "1.60"
 keywords = ["libgpiod", "gpio"]
 license = "Apache-2.0 OR BSD-3-Clause"
 edition = "2021"
diff --git a/bindings/rust/libgpiod/Cargo.toml b/bindings/rust/libgpiod/Cargo.toml
index d6758be..518e5e5 100644
--- a/bindings/rust/libgpiod/Cargo.toml
+++ b/bindings/rust/libgpiod/Cargo.toml
@@ -9,7 +9,7 @@  authors = ["Viresh Kumar <viresh.kumar@linaro.org>"]
 description = "libgpiod wrappers"
 repository = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git"
 categories = ["api-bindings", "hardware-support", "embedded", "os::linux-apis"]
-rust-version = "1.56"
+rust-version = "1.60"
 keywords = ["libgpiod", "gpio"]
 license = "Apache-2.0 OR BSD-3-Clause"
 edition = "2021"