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