Subject: Re: [PATCH v5 7/9] BreakingChanges: announce Rust becoming mandatory

From: Patrick Steinhardt <[email-masked]>
Date: Tue, 23 Sep 2025 06:54:45 +0200

On Mon, Sep 22, 2025 at 03:56:42PM -0700, Junio C Hamano wrote:
> "brian m. carlson" <[email-masked]> writes:
> >> As I already said a few times (e.g. <[email-masked]>), I
> >> feel that the timeline hinted by any of these documents that were
> >> proposed is way too aggressive for affected people to practically
> >> prepare for.
> >
> > I don't think it's substantially more aggressive than the
> > interoperability code.  Both are aggressive timelines, but getting LLVM
> > ported to some of the affected targets isn't out of the question
> > (especially since older versions of it supported some of those targets)
> > and once that's done, I'm pretty sure Rust upstream would be on board
> > with supporting those systems.
> 
> Our timeline being agressive to cause more intense work on our
> people is one thing.  It does not make much sense to me to compare
> it with the timeline being aggressive to others who do not control
> our timeline.
> 
> Putting it in another way, I'd call it hopelessly optimistic to
> expect that those currently without Rust can somehow come up with a
> plan to help their vendors (or they may be vendors themselves, then
> convince their management) prepare their platforms to support Rust
> within 18 months.  And giving them ultimatum based on the optimism
> was never my favorite part of this whole thing.

We have made other breaking changes conditional on the wider ecosystem.
For example, using reftable by default is conditioned on the ecosystem
having catched up and supporting this new format.

Do we maybe want to do the same with Rust? We can for example add
something like the following paragraph:

    We will carefully evaluate the impact on downstream distributions
    before making Rust mandatory in Git 3.0. If we see that the impact
    on downstream distributions would be significant, we may decide to
    defer this breaking change. This will also take into account our own
    learnings with how painful it is to keep Rust an optional component.

The intent would be to alert distributors, but not "blindly" pull the
trigger. Instead, we should take a step back and evaluate both how the
Rust ecosystem looks like at the Git 3.0 boundary and how painful it is
for us to keep it as an optional component.

Patrick