From: Patrick Steinhardt <ps@pks.im>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
"SZEDER Gábor" <szeder.dev@gmail.com>,
git@vger.kernel.org,
"brian m. carlson" <sandals@crustytoothpaste.net>,
"Elijah Newren" <newren@gmail.com>,
"Derrick Stolee" <stolee@gmail.com>,
"Phillip Wood" <phillip.wood@dunelm.org.uk>
Subject: Re: [PATCH RFC v3 2/2] Move libgit.a sources into separate "lib/" directory
Date: Tue, 11 Aug 2026 14:16:03 +0200 [thread overview]
Message-ID: <ansSg4qsPwh5FcR9@pks.im> (raw)
In-Reply-To: <xmqqjyqpb96n.fsf@gitster.g>
On Mon, Jul 20, 2026 at 03:14:24PM -0700, Junio C Hamano wrote:
> Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
>
> >> > My own (obviously subjective and biased) take is that the tradeoff is
> >> > worth it, as these issues are a one-time cost while the benefits to
> >> > discoverability will be permanent.
> >>
> >> It is not a one-time cost, but will be an ongoing burden.
> >
> > It is maybe drawn-out, but it is a one-time cost. It's not like we're
> > going to mass-rename source files to move them to `lib/` every two weeks
> > from now on.
>
> Since the topic was posted, I have dealt with the fallout from it at
> least twice a day (which, when we are lucky, is not a huge time
> sink, as I have mostly automated it by now), and again every time a
> new topic is posted that touches the moved files in substantial ways
> or adds new files that ought to be moved. The latter is the most
> time-consuming to handle. This will continue until all contemporary
> topics, as well as the topic in question, graduate.
>
> If that is not an ongoing burden, I do not know what is.
I guess the argument is rather that it's a burden now, but once it's
merged and the dust has settled it's going to become less so.
> > And this statement neglects to acknowledge that the lack of clean
> > organization of source code files is an ongoing burden _right now_, and
> > would be at least partially addressed by the move.
>
> At least, Gábor does not seem to think that the lack of clean
> organization is so severe as to warrant a massive code churn like
> this.
>
> I value stability much more than prettiness. If we had started out
> with almost nothing at the root level and almost everything in
> either 'lib' or 'builtin', I would have strongly preferred to keep
> that structure. But since we have been using a layout that has all
> built-in commands in 'builtin', with subsystems like 'refs' and
> 'odb' in their own directories, and everything else at the root
> level, I would prefer to keep that organization until a substantial
> subsystem update wants to carve out a new location for itself, just
> as past updates to create 'builtin', 'refs', and 'odb' did.
>
> Compared to those past moves, the proposed change looks more like
> churn for the sake of moving things around, without achieving any
> real organizational improvement.
>
> I must say that I, too, remain skeptical.
My main motivation isn't prettiness though, it's newcomers to the
project. Git is not an easy project to get started in, and the root
cause of that of course isn't our file layout but probably rather that
Git has been growing organically for 20 years. But the file layout
definitely doesn't help newcomers to find their way around in the
product.
So I'd say main motivation isn't prettiness, it's discoverability. And
sure, that's a property that regulars on the mailing list are unlikely
to care about as they already know their way around the project. But I'm
sure that folks who are new would appreciate it if they could see at a
glance what parts the project is made of to help them find the right
files at the right time.
Anyway, as I've said already: I'm totally fine if the result of this
discussion is that we don't want to do it. It is churn, and that churn
has of course does have a cost.
Thanks!
Patrick
next prev parent reply other threads:[~2026-08-11 12:16 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-16 13:24 [PATCH RFC 0/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
2026-04-16 13:24 ` [PATCH RFC 1/2] t/helper: prepare "test-example-tap.c" for introduction of "lib/" Patrick Steinhardt
2026-04-16 13:24 ` [PATCH RFC 2/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
2026-04-17 17:08 ` Elijah Newren
2026-04-17 19:18 ` brian m. carlson
2026-04-17 21:18 ` Junio C Hamano
2026-04-17 21:51 ` brian m. carlson
2026-04-20 6:41 ` Patrick Steinhardt
2026-04-19 14:11 ` [PATCH RFC 0/2] " Phillip Wood
2026-04-20 6:41 ` Patrick Steinhardt
2026-04-20 12:03 ` Derrick Stolee
2026-04-21 5:55 ` Patrick Steinhardt
2026-04-21 14:13 ` Derrick Stolee
2026-04-22 6:39 ` Patrick Steinhardt
2026-06-22 10:38 ` [PATCH RFC v2 " Patrick Steinhardt
2026-06-22 10:38 ` [PATCH RFC v2 1/2] t/helper: prepare "test-example-tap.c" for introduction of "lib/" Patrick Steinhardt
2026-06-22 10:38 ` [PATCH RFC v2 2/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
2026-06-22 13:08 ` Junio C Hamano
2026-06-24 10:32 ` Patrick Steinhardt
2026-06-24 11:23 ` Oswald Buddenhagen
2026-06-26 16:01 ` Johannes Schindelin
2026-06-26 18:50 ` Junio C Hamano
2026-07-01 6:54 ` Patrick Steinhardt
2026-06-27 6:40 ` SZEDER Gábor
2026-07-01 6:55 ` Patrick Steinhardt
2026-07-01 13:26 ` Phillip Wood
2026-07-01 14:45 ` Junio C Hamano
2026-07-02 5:21 ` Patrick Steinhardt
2026-07-06 4:29 ` Kaartic Sivaraam
2026-07-01 6:59 ` [PATCH RFC v3 0/2] " Patrick Steinhardt
2026-07-01 6:59 ` [PATCH RFC v3 1/2] t/helper: prepare "test-example-tap.c" for introduction of "lib/" Patrick Steinhardt
2026-07-01 6:59 ` [PATCH RFC v3 2/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
2026-07-13 5:52 ` SZEDER Gábor
2026-07-20 14:24 ` Johannes Schindelin
2026-07-20 22:14 ` Junio C Hamano
2026-08-11 12:16 ` Patrick Steinhardt [this message]
2026-08-11 16:33 ` Junio C Hamano
2026-08-11 17:05 ` Patrick Steinhardt
2026-07-20 21:53 ` brian m. carlson
2026-07-20 22:43 ` Junio C Hamano
2026-07-20 23:40 ` Taylor Blau
2026-08-11 12:15 ` Patrick Steinhardt
2026-07-13 5:50 ` [PATCH RFC v4 0/2] " Patrick Steinhardt
2026-07-13 5:50 ` [PATCH RFC v4 1/2] t/helper: prepare "test-example-tap.c" for introduction of "lib/" Patrick Steinhardt
2026-07-13 5:50 ` [PATCH RFC v4 2/2] Move libgit.a sources into separate "lib/" directory Patrick Steinhardt
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=ansSg4qsPwh5FcR9@pks.im \
--to=ps@pks.im \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=newren@gmail.com \
--cc=phillip.wood@dunelm.org.uk \
--cc=sandals@crustytoothpaste.net \
--cc=stolee@gmail.com \
--cc=szeder.dev@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.