From: "Kristoffer Haugsbakk" <kristofferhaugsbakk@fastmail.com>
To: "Junio C Hamano" <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: [PATCH v2] SubmittingPatches: address design critiques
Date: Thu, 18 Jun 2026 16:43:32 +0200 [thread overview]
Message-ID: <95cd81dc-baea-4318-9f01-6a795f8eb5bb@app.fastmail.com> (raw)
In-Reply-To: <xmqqpl1oteoi.fsf@gitster.g>
On Thu, Jun 18, 2026, at 10:50, Junio C Hamano wrote:
> Contributors sometimes fail to answer fundamental design or
> viability comments from reviewers and submit subsequent rounds
> without addressing them. When design decisions are resolved on the
> mailing list, the final justification should be recorded in the
> commit messages.
It’s useful to explain design decisions etc. that were not committed to
in the commit message. It’s yet another thing that might be far from
obvious during review, but when the message is written only the option
that was landed on is explained.
>[snip]
> diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
> index f042bb5aaf..bbe759f3d9 100644
> --- a/Documentation/SubmittingPatches
> +++ b/Documentation/SubmittingPatches
> @@ -51,6 +51,21 @@ area.
> respond to them with "Reply-All" on the mailing list, while taking
> them into account while preparing an updated set of patches.
> +
> +You should be particularly mindful of critiques regarding the
> +high-level design or viability of your proposal (e.g., questioning
> +whether the feature is worth implementing, or if the chosen approach
> +is appropriate). Defend your design decisions on the list first, to
> +avoid wasting effort on an implementation whose design is not yet
> +solid.
To take it to the other extreme, there are “contributions” which are
design decisions *only*, no implementation. Namely emails which sketch a
design like a new option. Those are often met with a stock response
saying:[1] submit some code, doesn’t have to implement it fully, but we
will need some code to proceed here. I’ve never understood that stance,
and I don’t think it harmonizes with the sentence here of sparing effort
if the design is not solid.
Many of these emails are straightforward.
1. I want this thing
2. I can implement it but I don’t know if *would be* accepted (and
implementing things here would be a lot of effort for me, personally)
3. Would it be?
And the only thing I personally would change is to weaken “would be?” to
“could be?”. Then with that out in the world, maybe someone finds this
message this day or the next week or month and reports that at least
they would like this thing.
Some people could change something small in this code base as easily as
they could propose the change idea for it (so it seems to me). They
would just have to take a walk and watch a movie to let their
subconscious process whether it was a good idea or not... But for most
people, committing to implementing something in a new codebase without
spooky assistance (...) is a task that takes a lot of effort.
To illustrate a related point, there are at least three kinds of Git
users out there:
1. Experienced C developers
2. Experienced Git developers (heavy overlap with (1))
3. Experienced and partisan Git users (knows it, believes in it)
You can imagine someone from group number 1 who is *not* in group number
3 use a weekend to implement something. But then when it is submitted it
turns out that is a very “centralized CVS” idea which doesn’t fit into
git(1) at all. That’s easily spotted by group number 3 by just looking
at the proposed docs or design. Now that group number 1 individual might
just have a bunch of code that is dead weight for any proper Git
workflow.
So I don’t understand this canned response.
There is the unofficial project idea tracker on the GitGitGadget
fork. But it seems weird to post things there and not on the mailing
list.
† 1: From `git show todo:CannedResponses`:
| [make us come to you, begging]
|
| I've seen from time to time people ask "I am thinking of doing this;
| will a patch be accepted? If so, I'll work on it." before showing
| any work, and my response always has been:
|
| (1) We don't know how useful and interesting your contribution would
| be for our audience, until we see it; and
|
| (2) If you truly believe in your work (find it useful, find writing
| it fun, etc.), that would be incentive enough for you to work
| on it, whether or not the result will land in my tree. You
| should instead aim for something so brilliant that we would
| come to you begging for your permission to include it in our
| project.
Note that point (2) is a bit more ambitious than it looks; if the
idea is to implement your own thing for your own fork/tree and then
maintain it yourself if upstream git.git doesn not accept it, well,
now you need to learn how to maintain a fork for however long you
want that feature. If you did not already know that.
> ++
> +Make sure that any new version is accompanied by a much clearer
> +explanation and justification (in the cover letter, your responses,
> +and in the revised commit messages). Aim to make the reviewers say
> +"it is now clear why we may want to do this with the updated version".
> ++
> +Topics that fail to address fundamental design critiques without
> +resolution will not be considered ready for merging.
Nicely explained.
> ++
> It is often beneficial to allow some time for reviewers to provide
> feedback before sending a new version, rather than sending an updated
> series immediately after receiving a review. This helps collect broader
> @@ -323,6 +338,10 @@ The body should provide a meaningful commit message, which:
>
> . alternate solutions considered but discarded, if any.
>
> +. records the resolution of design or viability concerns raised by the
> + community during the review, if any, ensuring the historical record
> + explains why the chosen approach was accepted over alternatives.
> +
Okay.
> [[present-tense]]
>[snip]
next prev parent reply other threads:[~2026-06-18 14:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-17 16:06 [PATCH] SubmittingPatches: address design critiques Junio C Hamano
2026-06-18 8:50 ` [PATCH v2] " Junio C Hamano
2026-06-18 14:43 ` Kristoffer Haugsbakk [this message]
2026-06-18 16:26 ` Junio C Hamano
-- strict thread matches above, loose matches on Subject: below --
2026-06-18 15:36 Michael Montalbo
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=95cd81dc-baea-4318-9f01-6a795f8eb5bb@app.fastmail.com \
--to=kristofferhaugsbakk@fastmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox