LTS "lieutenant", was Re: [PATCH RFC v4 7/9] BreakingChanges: announce Rust becoming mandatory
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Sep 23, 2025, 08:53 UTC
- Message-ID
- <61e4895a-415e-f2ba-97d7-23aa99334191@gmx.de>
- In-Reply-To
- <aNIw23JzQE1vz2JD@pks.im>
Hi Patrick,
On Tue, 23 Sep 2025, Patrick Steinhardt wrote:
Show 34 quoted lines
> On Mon, Sep 22, 2025 at 09:24:26AM -0700, Junio C Hamano wrote: > > Patrick Steinhardt <ps@pks.im> writes: > > > > >> I am having a hard time imagining the practicality of this "hand > > >> over but we still review" arrangement. Some of the security fixes > > >> are embargoed, and the reason why we are jetissoning the stale > > >> codebase is presumably because nobody is willing to work on it other > > >> than the "community support" folks. I can imagine that we would > > >> qualify them into the git-security cabal and let them use the forum > > >> to coordinate among themselves, but then to what degree in the > > >> "community support themselves" process is our involvement expected? > > >> As long as we can make sure that they do not leak before the > > >> official embargoed release, they do not need an official stamp of > > >> approval from the project or by the Git maintainer---that is what it > > >> means to "hand over maintainer ship", at least to me. > > >> > > >> In other words, I like what I see in this paragraph, but I do not > > >> think we can practically live with the part of the sentence after > > >> the last ", but". > > > > > > I think the most important part here is that this community-supported > > > LTS release should still live in the canonical repositories. We should > > > avoid the situation where we hand over maintainership to such a degree > > > that the end result (the tagged LTS release) lives somewhere else. > > > > Why is it a bad thing? The official repository can have a README.md > > with a single entry "maintenance releases for Git 2.98 LTS (most > > notably with no Rust requirements) are found at this separate site". > > There's a couple reasons: > > - The LTS maintainer may not be as familiar with the Git codebase as > we are, so they would benefit from the usual processes on the > mailing list.
Basically: It's a matter of trust.
> - The LTS maintainer may not be as trusted as other regulars on the > mailing list are, so we (from my POV) may want to avoid having a > basically unobserved fork elsewhere.
Basically: It's a matter of trust.
> - The end result would still be "git", and users will come to us to > complain about issues in the LTS release.
Basically: Users would still only trust the main Git project.
> - Initial releases of the LTS release branch that are managed by us > would sit in our repo, whereas subsequent releases would sit in the > LTS release. This will likely cause confusion.
And confusion sows distrust, I agree.
> - We reduce chances of a hard fork of Git. > > So with these in mind I think it would be sensible to keep the LTS > release as part of the canonical repository.
I agree, and I have to say that I am puzzled that it was even a question.
Show 12 quoted lines
> > So, no, I do not think we should unnecessarily mix community LTS and > > the main project. > > How about the following tradeoff: the community LTS is developed outside > of the usual Git workflow, for example on a forge, so that the LTS > maintainers can work in their preferred flow. But eventually, once they > want to do a release they send a pull request to the Git mailing list > and then the tag lives in the canonical Git repository. > > It gives the LTS maintainers flexibility, but still makes the canonical > repository the single source of truth for Git releases. Furthermore, > we'd have a way to double check the results before creating the tags.
I have to admit that it sounds quite odd an idea to "hand off LTS support" to a completely different entity. It flies counter to everything I have learned in this industry. There has been exactly zero instance worth mentioning where an LTS release maintained outside of the main project has been accepted as anything remotely official. There is no reason to believe that Git would be the first.
Let me propose an alternative, one that is much more likely to be accepted by actual Git users, including professional ones: How about assigning a trusted, prolific Git contributor as LTS maintainer? One who is deeply familiar with the Git project and can, if the need arises, help the Git project steer clear of unnecessary conflict-making e.g. via intentionally-incompatible bug fixes on the non-LTS branch? Kind of like the lieutenants in the Linux kernel project.
Naturally, I am thinking of you, Patrick. You have demonstrated diligent work in the Git project, are highly trusted both inside and outside the Git project, and you seem to genuinely care about the long-term success of the Git project.
An additional benefit of this would be to have a dependable release policy for older release trains, just like other projects have. I have heard the desire for such a policy many times.
Ciao, Johannes
P.S.: As you probably know from my past interactions on this mailing list, I am not typically one to dump work on others; I am more than willing to assist you in the LTS maintenance tasks in any way I can.