Subject: Re: [PATCH v3 02/15] xdiff: introduce rust

From: Sam James <[email-masked]>
Date: Fri, 05 Sep 2025 12:32:44 +0100

Phillip Wood <[email-masked]> writes:

> Hi Elijah
>
> On 05/09/2025 04:54, Elijah Newren wrote:
>> (1) "without advance notice" was already pointed out to be
>> inaccurate
>> in this thread, including in the exact email you are responding to;
>> you could argue that there hasn't been _sufficient_ advance notice,
>> but then there should be more details about what is and isn't
>> sufficient.  Merely repeating this claim which brian just barely
>> pointed out to you as false almost feels dishonest.
>
> I think there is a difference of understanding of what constitutes
> "advanced notice". While it is true that there have been discussions
> on the list for a couple of years where people were clearly
> enthusiastic about adopting rust those discussions have always petered
> out after concerns about portability were raised without us actually
> adopting rust. In those discussions there has been no clear conclusion
> about whether rust would be mandatory or optional. I think from the
> point of view of an outsider who was following the mailing list it has
> not been clear exactly where the rust discussion was going. For
> someone not following the mailing list but just reading the release
> notes there has been no indication that we're thinking of rust
> mandatory for building git as opposed to offering rust bindings for
> our C code.
>
>> (2) "pull the rug away" seems hyperbolic.  I would have liked some
>> explanation as to how a transition period is expected to help, and how
>> the existing transition period has been insufficient.
>
> I'm very unclear what "the existing transition period" has been
>
>> [...] > (4) you suggest that adding Rust as an optional component
>   should avoid
>> the problem, yet we've already had Rust as an optional component for
>> the last three releases, going back to 2.49.0.  (libgit-rs and
>> libgit-sys).
>
> Right but from the point of view of someone trying to build git on a
> platform without rust support there is a world of difference between
> having some optional bindings for rust external projects to use, and
> making rust mandatory to build git.

Entirely agreed with the whole email.

I'll make some further observations wrt bindings:

1) Distributions often don't enable bindings for languages unless a user
requests them, or at the very least they're considered low priority (and
bindings existing for a language in a project do *not* imply the project
is going to be rewritten in that language);

2) There would be no value in distributions building Rust bindings
because Rust doesn't really support "system-wide" libraries. It doesn't
make sense as far as I can tell to install the bindings right now. I
don't even know where Rust bindings should be installed to, I've never
seen a package want them installed before.

3) It's not integrated with the Meson build system we're using so I
wouldn't have paid any attention to it, at least unless a user requested
it;

4) It's in contrib/.

>
> I would like us to adopt rust but I am concerned about the
> implications for platforms without rust and think we should give some
> notice in the form a clear announcement in the release notes once we
> have a concrete plan. That plan should include a decision on what
> commitment we can realistically offer with regard to security updates
> for platforms without a rust compiler so maintainers on those
> platforms have a clear idea of how long they will be supported.
>
> Thanks
>
> Phillip

sam