Re: [PATCH v7 0/9] Introduce Rust and announce that it will become mandatory
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 25, 2025, 16:35 UTC
- Message-ID
- <xmqqikh6h4ma.fsf@gitster.g>
- In-Reply-To
- <20250925-b4-pks-rust-breaking-change-v7-0-4e49dcb904d5@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 50 quoted lines
> Hi, > > this small patch series introduces Rust into the core of Git. This patch > series is designed as a test balloon, similar to how we introduced test > balloons for C99 features in the past. The goal is threefold: > > - Give us some time to experiment with Rust and introduce proper build > infrastructure. > > - Give distributors time to ease into the new toolchain requirements. > Introducing Rust is impossible for some platforms and hard for > others. > > - Announce that Git 3.0 will make Rust a mandatory part of our build > infrastructure. > > The test balloon itself is quite uninteresting: I've chosen to convert > the "varint.c" subsystem, mostly because it is trivial and does not have > any dependencies. But it does allow us to verify that C to Rust interop > works as expected, and to play around with tooling. All tests pass with > the "varint.rs" implementation. > > For now, the series only contains support for Meson. If we agree to go > down this route I'll also introduce support for Rust into our Makefiles > at a later point in time. > > Furthermore missing is additional tooling: > > - At least one CI job to verify that Rust builds and works as > expected. > > - Tooling and CI jobs to ensure that we have consistent formatting via > `cargo format`. > > And probably lots more. As said, the entire goal is for us to have an > easy playground that we can experiment on and develop the infrastructure > incrementally without yet having to commit to anything. > > I'm mostly splitting out the topic of introducing Rust from the larger > series that introduce it into xdiff so that we can focus more on the > actual process of introducing Rust into Git and less on the potential > features that we want to build on top of it. > ... > Changes in v7: > - Rename "git" crate to "gitcore". > - Some word smithing for the breaking changes doc. > - Punt on the exact details of how we hand over maintenance of the LTS > release to the community. This is something we can decide on in the > future. > - Link to v6: https://lore.kernel.org/r/20250923-b4-pks-rust-breaking-change-v6-0-59076fee486a@pks.im
OK, I see that this is with minimum changes relative to earlier editions (like clarifying in BreakingChanges the release number in which we started toying with Rust, and renamibng <libgit> to <libgitcore>). Hopefully we are getting at the end of the tunnel?
If I recall the coordination discussion correctly, when people are happy with this series, Ezekiel's stuff (not the "xdiff clean-up" that is to improve/adjust code that is purely in C without any Rust component, which can independently advance without waiting for any of these) will be rebuilt on top.
Will replace; I am hoping to hear positive reactions as well as "here we want to improve it this way" comments.
Thanks.