Linux GPIO subsystem development
 help / color / mirror / Atom feed
From: "Erik Schilling" <erik.schilling@linaro.org>
To: "Manos Pitsidianakis" <manos.pitsidianakis@linaro.org>,
	"Linux-GPIO" <linux-gpio@vger.kernel.org>,
	"Bartosz Golaszewski" <bartosz.golaszewski@linaro.org>
Cc: "Viresh Kumar" <viresh.kumar@linaro.org>,
	"Alex Benné e" <alex.bennee@linaro.org>
Subject: Re: Publishing libgpiod-sys and libgpiod to crates.io
Date: Wed, 31 May 2023 19:25:36 +0200	[thread overview]
Message-ID: <CT0N04S607VA.3M9CI50HMNANO@fedora> (raw)
In-Reply-To: <visj7.k1t7273b5zpe@linaro.org>

On Wed May 31, 2023 at 1:05 PM CEST, Manos Pitsidianakis wrote:
>
> Breaking changes are inevitable. The libc crate follows a nonsemver 
> scheme (0.2.144 and bump the patch number by one for every release) 
> which breaks stuff all the time, or at least it used to when it was at 
> its early stages. There are ways to get around breakages in case of a 
> crate lib being a transitive dependency but has different versions: 
>
> https://github.com/dtolnay/semver-trick
>
> I believe following libgpiod's version scheme directly is what would be 
> best and intuitive. -sys crates are not usual crates and users know 
> this. It'd be cool to not have to bump the bindings crate version but I 
> don't think it's a problem.

How would you deal with the libgpiod (Rust) -> libgpiod (C) dependency
here? Should we request an exact match via pkg-config (or at least a
lower floor that would equal the version of the C lib?).

I think that there would be no good reason not to support older versions
of the C lib (at least as long as sensible!). But it may be a bit weird
if the Rust crate has a matching version scheme but then automatically
disables features when building against an older system library... A
separate version scheme might make that a little more explicit. But I
got no particularly strong feelings about this.

> This is how openssl{,-sys} works, if I am  not mistaken.

openssl does not seem to follow this for neither -sys, nor the main
package. It would also probably be a weird thing to do since it supports
other backends like boringssl.


> All in all, in crates.io follow its conventions unless there's no way to 
> do so.

I think all of the options that I listed in my initial mail would follow
the crates.io conventions and I strongly agree that we should follow the
existing conventions. What to pick seems to mostly depend on how we want
the release process to look like.

- Erik

  reply	other threads:[~2023-05-31 17:25 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-31  9:24 Publishing libgpiod-sys and libgpiod to crates.io Erik Schilling
2023-05-31 11:05 ` Manos Pitsidianakis
2023-05-31 17:25   ` Erik Schilling [this message]
2023-05-31 13:31 ` Bartosz Golaszewski
     [not found]   ` <CT0N67TFERNZ.29590E8F8K2JR@fedora>
2023-06-01  9:30     ` Viresh Kumar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CT0N04S607VA.3M9CI50HMNANO@fedora \
    --to=erik.schilling@linaro.org \
    --cc=alex.bennee@linaro.org \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=manos.pitsidianakis@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox