diff mbox series

[v2] Writing down mail list etiquette.

Message ID 20210512031821.6498-2-dwh@linuxprogrammer.org (mailing list archive)
State New
Headers show
Series [v2] Writing down mail list etiquette. | expand

Commit Message

Dave Huseby May 12, 2021, 3:18 a.m. UTC
After violating a few unspoken etiquette rules that were spotted by
Christian Couder <christian.couder@gmail.com>, Filipe Contreras
<felipe.contreras@gmail.com> suggested that somebody write a guide.
Since I was the latest cause of this perenial discussion, I took it upon
myself to learn from my mistakes and document the fixes.

Thanks to Junio <gitster@pobox.com> for providing links to similar
discussions in the past and Stefan Moch <stefanmoch@mail.de> for
pointing out where the related documentation already existed in the
tree.

Signed-off-by: Dave Huseby <dwh@linuxprogrammer.org>
---
 Documentation/MailingListEtiquette.txt | 125 +++++++++++++++++++++++++
 1 file changed, 125 insertions(+)
 create mode 100644 Documentation/MailingListEtiquette.txt

Comments

Bagas Sanjaya May 12, 2021, 4:07 a.m. UTC | #1
On 12/05/21 10.18, Dave Huseby wrote:
> After violating a few unspoken etiquette rules that were spotted by
> Christian Couder <christian.couder@gmail.com>, Filipe Contreras
> <felipe.contreras@gmail.com> suggested that somebody write a guide.
> Since I was the latest cause of this perenial discussion, I took it upon
> myself to learn from my mistakes and document the fixes.
> 
> Thanks to Junio <gitster@pobox.com> for providing links to similar
> discussions in the past and Stefan Moch <stefanmoch@mail.de> for
> pointing out where the related documentation already existed in the
> tree.
> 
> Signed-off-by: Dave Huseby <dwh@linuxprogrammer.org>
> ---
>   Documentation/MailingListEtiquette.txt | 125 +++++++++++++++++++++++++
>   1 file changed, 125 insertions(+)
>   create mode 100644 Documentation/MailingListEtiquette.txt
> 
> diff --git a/Documentation/MailingListEtiquette.txt b/Documentation/MailingListEtiquette.txt
> new file mode 100644
> index 0000000000..9da2d490aa
> --- /dev/null
> +++ b/Documentation/MailingListEtiquette.txt
> @@ -0,0 +1,125 @@
> +Mailing List Etiquette
> +======================
> +
> +[[introduction]]
> +== Introduction
> +
> +Open source, community projects such as Git use a mailing list and email to
> +coordinate development and to submit patches for review. This article documents
> +the unspoken rules and etiquette for the proper way to send email to the
> +mailing list. What follows are considered best practices to follow.
> +

But not all open source projects use mailing lists. Most (but not all, also
excluding Git) projects use Pull Requests (PR) as a way to submit patches and
for review.

Of course, some projects that use PR also coordinate their development using
mailing lists, patches submissions are done the other way.

So we can say "Several (but not all) open source, community projects such as
Git use a mailing list to coordinate development AND to submit patches for
review". Note the emphasized AND.

> +If you are looking for details on how to submit a patch, that is documented
> +elsewhere in:
> +
> +- `Documentation/SubmittingPatches`
> +- `Documentation/MyFirstContribution.txt`
> +
> +[[proper-use-of-to-and-cc]]
> +== Proper Use of To and Cc
> +
> +When starting a new email thread that is not directed at any specific person,
> +put the mailing list address in the "To:" field, otherwise address it to the
> +person and put the mailing list address in the "Cc:" field.
> +
> +When replying to an email on the mailing list, put the person you are replying
> +to in the "To:" field and all other people in the thread in the "Cc:" field,
> +including the mailing list address.
> +
> +Make sure to keep everyone involved in the "Cc:" field so that they do not have
> +to be subscribed to the mailing list to receive replies.
> +
> +[[do-not-use-mail-followup-to]]
> +== Do Not Use Mail-Followup-To
> +
> +When posting to the mailing list, your email client might add a
> +"Mail-Followup-To:" field which contains all of the recipients, including the
> +mailing list address, but not the sender's email address. This is intended to
> +prevent the sender from receiving replies twice, once from the replying person
> +and again from the mailing list.
> +
> +This goes directly against the desired "To:" and "Cc:" etiquette (see "Proper
> +Use of To and Cc" above). Most users want to use "group reply" or "Reply to
> +all" in their mail client and create a reply email that is sent directly to
> +author of the email they are replying to with all other recipients, as well as
> +the mailing list address, in the "Cc:" field.
> +
> +The proper thing to do is to never use the "Mail-Followup-To:" field as well as
> +disable honoring any "Mail-Followup-To:" fields in any emails you reply to.
> +Some email clients come with both enabled by default. Mutt is like this (see
> +Disable Mail-Followup-To in the Mutt section below).
> +

Better say "Some email clients, such as Mutt (see Disable Mail-Followup-To in
mutt-config section below) come with both enabled by default."

> +[[enable-plain-text-mode]]
> +== Enable Plain Text Mode
> +
> +Most email clients automatically reject mailing list email if it is not a
> +text/plain formatted email. For that reason, it is important that your email
> +client is set to create text/plain emails instead of text/enriched or
> +text/html email.
> +
> +[[patches-that-receive-no-response]]
> +
> +From Junio's notes from the maintainer:
> +
> +> If you sent a patch and you did not hear any response from anybody for
> +> several days, it could be that your patch was totally uninteresting,
> +> but it also is possible that it was simply lost in the noise.  Please
> +> do not hesitate to send a reminder message in such a case.  Messages
> +> getting lost in the noise may be a sign that those who can evaluate
> +> your patch don't have enough mental/time bandwidth to process them
> +> right at the moment, and it often helps to wait until the list traffic
> +> becomes calmer before sending such a reminder.
> +

Is "Review ping" enough for reminder purpose?

> +[[send-merge-ready-patches-to-the-maintainer]]
> +== Send Merge-Ready Patches to the Maintainer
> +
> +Once a patch has achieved consensus and all stakeholders are staisfied and
> +everything is ready for merging, then you send it to the maintainer: "To:
> +gitster@pobox.com".
> +

I see the typo. s/staisfied/satisfied/

Let's say that we had consented that my patch series was deemed ready at
v5 version. From the paragraph above, I interpreted it as "now my series
was consented ready, I need to send v6 to Junio (current Git maintainer)".
In practice, the maintainer could instead merged v5 (without having me to
send v6 [final]), because v5 is merge-ready in absence of maintainer's
email address in either To: or Cc:.

Oh yeah, should mailing list's address be also in To:/Cc: when sending
merge-ready patch series?

> +[[mutt-config]]
> +== Mutt Config
> +
> +This section has suggestions for how to set up Mutt to be polite.
> +

Better say "This section suggests how to set up Mutt to be conformant
to the etiquette above.".

> +[[known-mailing-lists]]
> +=== Known Mailing Lists
> +
> +Mutt has the ability to change its behavior when replying to a mailing list. For
> +Mutt to know when an address is a mailing list, use the `subscribe` keyword in
> +your Mutt configuration:
> +

Better say "... specify mailing list address on `subscribe` command in your Mutt
configuration:".

> +**~/.muttrc:**
> +```
> +# tell Mutt about the Git mailing list
> +subscribe git@vger.kernel.org
> +```
> +
> +[[reply-properly]]
> +=== Reply Properly
> +
> +By default, Mutt uses the 'g' and 'L' hotkeys to execute a "group reply" or
> +"list reply" respectively. A "group reply" creates an email addressed to the
> +sender with all other recipients in the "Cc". A "list reply" starts an email
> +addressed only to the mailing list without anybody else as "Cc".
> +
> +Per rule X, Y, and Z above, using "group reply" in Mutt is what you want to do.
> +
> +[[disable-mail-followup-to]]
> +=== Disable Mail-Followup-To
> +
> +By default, when replying to mailing lists, Mutt will automatically generate
> +"Mail-Followup-To" headers. To fix this, disable the generation of the header
> +in your Mutt configuration. It is also a good idea to disable honoring any
> +"Mail-Followup-To" headers so that any "group reply" operations are correctly
> +addressed.
> +
> +**~/.muttrc:**
> +```
> +# disable Mail-Followup-To header
> +unset followup_to
> +
> +# disable honoring Mail-Followup-To header
> +unset honor_followup_to
> +```
> +
> 

Thanks.
Junio C Hamano May 12, 2021, 4:46 a.m. UTC | #2
Dave Huseby <dwh@linuxprogrammer.org> writes:

> +Mailing List Etiquette
> +======================
> +
> +[[introduction]]
> +== Introduction
> +
> +Open source, community projects such as Git use a mailing list and email to
> +coordinate development and to submit patches for review. This article documents
> +the unspoken rules and etiquette for the proper way to send email to the
> +mailing list. What follows are considered best practices to follow.

Please ensure that we do *not* sound like dictating our rules on
broader open-source community.  The document merely talks about the
rules followed in _our_ community (iow, git@vger.kernel.org mailing
list).

> +[[proper-use-of-to-and-cc]]
> +== Proper Use of To and Cc
> +
> +When starting a new email thread that is not directed at any specific person,
> +put the mailing list address in the "To:" field, otherwise address it to the
> +person and put the mailing list address in the "Cc:" field.
> +
> +When replying to an email on the mailing list, put the person you are replying
> +to in the "To:" field and all other people in the thread in the "Cc:" field,
> +including the mailing list address.

The above two say "do X" but lack "because Y".

Even when starting a new discussion thread, it is perfectly fine to
have specific people on To: while keeping general community members
in the loop by CC:ing the list.  You'd summon area expert that way.

I think the above two items can be viewed from a different angle as
a mere consequence of a single guiding principle.  

"To:" is the place to list the people you want to directly interact
with and request responses from, and "Cc:" is for other people, to
whom you would want to inform this conversation is going on, but you
do not necessarily need to hear their opinion from (they are of
course welcome to chime in).

And as a consequence of that, the two rules you wrote will fall out
naturally.  If you have people in mind that you want to directly
talk to and/or expect their reaction from, list them on "To";
everybody else goes to "Cc:'.  When there is no particular person to
talk to, the mailing list address is a good catch-all address to
reach everybody, hoping there may be some people who are interested
enough to respond.

The above is the "do X" part.  We need to explain why we want
readers to do so, i.e. "because Y".

   This allows recipients to prioritize their incoming messages;
   they can direct their immediate attention to those messages with
   their names on the To: field and the ones with their names on the
   Cc: field can wait.

> +Make sure to keep everyone involved in the "Cc:" field so that they do not have
> +to be subscribed to the mailing list to receive replies.

This one has both "do X, because Y". Good.

> +[[do-not-use-mail-followup-to]]
> +== Do Not Use Mail-Followup-To
> +
> +When posting to the mailing list, your email client might add a
> +"Mail-Followup-To:" field which contains all of the recipients, including the
> +mailing list address, but not the sender's email address. This is intended to
> +prevent the sender from receiving replies twice, once from the replying person
> +and again from the mailing list.
> +
> +This goes directly against the desired "To:" and "Cc:" etiquette (see "Proper
> +Use of To and Cc" above).

... because "Reply to all" will redirect the response to all the
folks that were originally on "cc:", instead of going to the person
who sent the message that is being responded to.

> Most users want to use "group reply" or "Reply to
> +all" in their mail client and create a reply email that is sent directly to
> +author of the email they are replying to with all other recipients, as well as
> +the mailing list address, in the "Cc:" field.
> +
> +The proper thing to do is to never use the "Mail-Followup-To:" field as well as
> +disable honoring any "Mail-Followup-To:" fields in any emails you reply to.
> +Some email clients come with both enabled by default. Mutt is like this (see
> +Disable Mail-Followup-To in the Mutt section below).
> +
> +[[enable-plain-text-mode]]
> +== Enable Plain Text Mode
> +
> +Most email clients automatically reject mailing list email if it is not a
> +text/plain formatted email.

Is this true?  I know that _our_ mailing list will reject text/html
e-mail and that is why we ask people to send text/plain e-mails.  I
doubt that some/many/most clients reject non text messages.

> +For that reason, it is important that your email
> +client is set to create text/plain emails instead of text/enriched or
> +text/html email.
> +
> +[[patches-that-receive-no-response]]
> +
> +From Junio's notes from the maintainer:
> +
> +> If you sent a patch and you did not hear any response from anybody for
> +> several days, it could be that your patch was totally uninteresting,
> +> but it also is possible that it was simply lost in the noise.  Please
> +> do not hesitate to send a reminder message in such a case.  Messages
> +> getting lost in the noise may be a sign that those who can evaluate
> +> your patch don't have enough mental/time bandwidth to process them
> +> right at the moment, and it often helps to wait until the list traffic
> +> becomes calmer before sending such a reminder.
> +
> +[[send-merge-ready-patches-to-the-maintainer]]
> +== Send Merge-Ready Patches to the Maintainer
> +
> +Once a patch has achieved consensus and all stakeholders are staisfied and
> +everything is ready for merging, then you send it to the maintainer: "To:
> +gitster@pobox.com".

This needs to be cc'ed to the list.  But I am not sure if it needs
to be duplicated in this document.  Practically nobody seems to do
this and expect me to pick things up instead.
Felipe Contreras May 12, 2021, 6:45 a.m. UTC | #3
Bagas Sanjaya wrote:
> Let's say that we had consented that my patch series was deemed ready at
> v5 version. From the paragraph above, I interpreted it as "now my series
> was consented ready, I need to send v6 to Junio (current Git maintainer)".
> In practice, the maintainer could instead merged v5 (without having me to
> send v6 [final]), because v5 is merge-ready in absence of maintainer's
> email address in either To: or Cc:.

Yes and no.

Consensus, mearge-ready status, and merged, are three very diffent
concepts. Generally they are one-and-the-same, but not always.

 1. A patch can have consensus, and yet Junio doesn't merge it
 2. A patch may not have consensus, and yet Junio merges it
 3. A patch may be merge-ready, no consensus, and yet merged
 4. A patch may be merge-ready, no consensus, and unmerged
 ...

I'm not going through every combination... You get the point.


Generally you don't need to worry about this, that's Junio's job. If
your patch is ready, Junio will merge it... But not always.

So no, you don't need to send v6, Junio will pick v5. If he doesn't,
it's most likely because it slipped through the cracks, and you can see
that in the next "What's cooking in git.git".

If you don't see your merge-ready patch series in "what's cooking", then
by all means send it again as v6, or reply to the "what's cooking" or
something. But generally there's no point in sending a v6 identical to a
v5.

Just poke Junio.

> Oh yeah, should mailing list's address be also in To:/Cc: when sending
> merge-ready patch series?

IMO the maxim should be: if it's relevant to git, send it to to the git
mailing list... *Always*... Don't ever hesitate.

But if you already sent a v5 that is is merge-ready, there's no need
to send an identical v6.


All these suggestions are of course based on my own experience. Others
might have different experiences.

Cheers.
Eric Sunshine May 12, 2021, 7:35 a.m. UTC | #4
On Wed, May 12, 2021 at 2:45 AM Felipe Contreras
<felipe.contreras@gmail.com> wrote:
> Bagas Sanjaya wrote:
> > In practice, the maintainer could instead merged v5 (without having me to
> > send v6 [final]), because v5 is merge-ready in absence of maintainer's
> > email address in either To: or Cc:.
>
> Generally you don't need to worry about this, that's Junio's job. If
> your patch is ready, Junio will merge it... But not always.
>
> So no, you don't need to send v6, Junio will pick v5. If he doesn't,
> it's most likely because it slipped through the cracks, and you can see
> that in the next "What's cooking in git.git".
>
> If you don't see your merge-ready patch series in "what's cooking", then
> by all means send it again as v6, or reply to the "what's cooking" or
> something. But generally there's no point in sending a v6 identical to a
> v5.
>
> But if you already sent a v5 that is is merge-ready, there's no need
> to send an identical v6.
>
> All these suggestions are of course based on my own experience. Others
> might have different experiences.

This has been my experience, as well. I've never sent a v6 with Junio
as an explicit recipient, but which was otherwise identical to v5.

Another reason to avoid sending v6 which is identical to v5 is that it
potentially wastes reviewer bandwidth.

The advice which seems to have triggered this particular discussion
comes from Documentation/SubmittingPatches:

    After the list reached a consensus that it is a good idea to
    apply the patch, re-send it with "To:" set to the
    maintainer{current-maintainer} and "cc:" the list{git-ml} for
    inclusion.  This is especially relevant when the maintainer did
    not heavily participate in the discussion and instead left the
    review to trusted others.

It's not the first time this advice has resulted in confusion. Perhaps
now would a good time to retire it altogether, or at least rewrite it
to mention the points you gave above about responding to "What's
Cooking" or by sending a "ping" to the original patch email (which may
result in Junio either picking up the patch or responding with an
explanation as to why he didn't).

Following the above SubmittingPatches paragraph is another which also
seems to mislead people frequently:

    Do not forget to add trailers such as `Acked-by:`, `Reviewed-by:`
    and `Tested-by:` lines as necessary to credit people who helped
    your patch, and "cc:" them when sending such a final version for
    inclusion.

In fact, a submitter should almost never add a Reviewed-by: trailer
because Reviewed-by: is explicitly given by a reviewer only when the
reviewer is satisfied that the patch is merge-ready, in which case no
more re-rolls are expected. Instead, these particular trailers are
almost always added by Junio based upon reviewer responses he sees
when picking up a patch. So, it may be time, too, either to remove
this paragraph or to revise it to mention other trailers more
appropriate for use by the patch submitter, such as Helped-by:,
Suggested-by:, perhaps Co-authored-by:, etc.
Felipe Contreras May 12, 2021, 8:32 a.m. UTC | #5
Eric Sunshine wrote:
> On Wed, May 12, 2021 at 2:45 AM Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
> > Bagas Sanjaya wrote:
> > > In practice, the maintainer could instead merged v5 (without having me to
> > > send v6 [final]), because v5 is merge-ready in absence of maintainer's
> > > email address in either To: or Cc:.
> >
> > Generally you don't need to worry about this, that's Junio's job. If
> > your patch is ready, Junio will merge it... But not always.
> >
> > So no, you don't need to send v6, Junio will pick v5. If he doesn't,
> > it's most likely because it slipped through the cracks, and you can see
> > that in the next "What's cooking in git.git".
> >
> > If you don't see your merge-ready patch series in "what's cooking", then
> > by all means send it again as v6, or reply to the "what's cooking" or
> > something. But generally there's no point in sending a v6 identical to a
> > v5.
> >
> > But if you already sent a v5 that is is merge-ready, there's no need
> > to send an identical v6.
> >
> > All these suggestions are of course based on my own experience. Others
> > might have different experiences.
> 
> This has been my experience, as well. I've never sent a v6 with Junio
> as an explicit recipient, but which was otherwise identical to v5.
> 
> Another reason to avoid sending v6 which is identical to v5 is that it
> potentially wastes reviewer bandwidth.
> 
> The advice which seems to have triggered this particular discussion
> comes from Documentation/SubmittingPatches:
> 
>     After the list reached a consensus that it is a good idea to
>     apply the patch, re-send it with "To:" set to the
>     maintainer{current-maintainer} and "cc:" the list{git-ml} for
>     inclusion.  This is especially relevant when the maintainer did
>     not heavily participate in the discussion and instead left the
>     review to trusted others.
> 
> It's not the first time this advice has resulted in confusion. Perhaps
> now would a good time to retire it altogether, or at least rewrite it
> to mention the points you gave above about responding to "What's
> Cooking" or by sending a "ping" to the original patch email (which may
> result in Junio either picking up the patch or responding with an
> explanation as to why he didn't).

Agreed.

(Although sometimes a patch series of mine has actually received
consensus, and yet for some reason Junio does not pick it up. Except
in that case sending a v6 certainly would not improve the situation. Not
sure if that's specific to me though.)

> Following the above SubmittingPatches paragraph is another which also
> seems to mislead people frequently:
> 
>     Do not forget to add trailers such as `Acked-by:`, `Reviewed-by:`
>     and `Tested-by:` lines as necessary to credit people who helped
>     your patch, and "cc:" them when sending such a final version for
>     inclusion.
> 
> In fact, a submitter should almost never add a Reviewed-by: trailer
> because Reviewed-by: is explicitly given by a reviewer only when the
> reviewer is satisfied that the patch is merge-ready, in which case no
> more re-rolls are expected. Instead, these particular trailers are
> almost always added by Junio based upon reviewer responses he sees
> when picking up a patch.

I don't fully agree with that comment.

At least me personally if I see people acking v5, I add them to v6 as
Reviewed-By.

I'm not sure if that makes any difference to Junio, but that's what I've
historically done.

Cheers.
Ævar Arnfjörð Bjarmason May 12, 2021, 8:45 a.m. UTC | #6
On Tue, May 11 2021, Dave Huseby wrote:

> After violating a few unspoken etiquette rules that were spotted by
> Christian Couder <christian.couder@gmail.com>, Filipe Contreras
> <felipe.contreras@gmail.com> suggested that somebody write a guide.
> Since I was the latest cause of this perenial discussion, I took it upon
> myself to learn from my mistakes and document the fixes.
>
> Thanks to Junio <gitster@pobox.com> for providing links to similar
> discussions in the past and Stefan Moch <stefanmoch@mail.de> for
> pointing out where the related documentation already existed in the
> tree.

Improvements in this area are most needed, so thanks for working on
this.

We should not have a new file describing this though, we already cover
the content you're adding here partially in
Documentation/SubmittingPatches, and some more in
Documentation/MyFirstContribution.txt (e.g. a passing mention of
in-reply-to etiquette), with this applied we'd have discussion of these
related topics in three places.

I had some rough WIP patches to update Documentation/SubmittingPatches
to address some of what you're adding here, which I've discarded, but I
submitted some related patches just now as [1].

As you can see from that topic we e.g. already have MUA-specific tips in
Documentation/SubmittingPatches, your addition of a section discussing
mutt's config here is another thing we'd be duplicating/unnecessarily
splitting across multiple places.

I do think it's going to be hard to update SubmittingPatches, for
example it has a long section going on about the specific format of
patches to craft for the ML, as if anyone's using anything other than
git-format-patch these days (it was written before that existed/was as
established).

I suspect though that any suggestion to simply remove most/all of that
for simplicity will probably be met with (IMO unwarranted resistance),
which is why I gave up on this the other day before even submitting
patches to the ML.

But regardless of that, the post-image after your patch of having
another place we discuss the same/related topic would be worse, we
really should have one canonical guide, so your patch(es) should be
amending/splitting Documentation/SubmittingPatches, not duplicating it.

1. https://lore.kernel.org/git/cover-0.3-0000000000-20210512T084137Z-avarab@gmail.com/
Junio C Hamano May 12, 2021, 2:36 p.m. UTC | #7
Eric Sunshine <sunshine@sunshineco.com> writes:

> This has been my experience, as well. I've never sent a v6 with Junio
> as an explicit recipient, but which was otherwise identical to v5.

It mostly is because I've been too helpful than the written rule to
proactively pick up v5, before the participants of the discussion
explicitly reaches concensus that it is good enough.

In an ideal world, patches in areas that I do not have particular
interest in and that other reviewers with good taste are performing
good reviews, I should be able to keep myself completely out of the
picture, not involved in their review discussion in any way, and not
even having to monitor if the discussion reached some concensus, and
purely play a patch-monkey for such patches.  That, combined with
more reviewers with good tastes, would allow us to injest patches at
faster rate than we currently can.

> Another reason to avoid sending v6 which is identical to v5 is that it
> potentially wastes reviewer bandwidth.

As long as it is marked as "this is the final version that is
identical to the previous round, only difference from which is that
the collected reviewed-by and acked-by have been added", it would
not waste reviewer bandwidth.  The reviewers _should_ however notice
if it has questionable changes since the "previous round", in which
case their reviewed-by's may now be invalid, of course, though.

> The advice which seems to have triggered this particular discussion
> comes from Documentation/SubmittingPatches:
>
>     After the list reached a consensus that it is a good idea to
>     apply the patch, re-send it with "To:" set to the
>     maintainer{current-maintainer} and "cc:" the list{git-ml} for
>     inclusion.  This is especially relevant when the maintainer did
>     not heavily participate in the discussion and instead left the
>     review to trusted others.
>
> It's not the first time this advice has resulted in confusion. Perhaps
> now would a good time to retire it altogether, or at least rewrite it
> to mention the points you gave above about responding to "What's
> Cooking" or by sending a "ping" to the original patch email (which may
> result in Junio either picking up the patch or responding with an
> explanation as to why he didn't).

No, please do not put _more_ tasks on my plate.

The "send the final with everybody's concensus" is an ideal that
tries to reduce the maintainer bottleneck by distributing the work
of final validation.  I've been too helpful in this area in that I
have often been the one who does the "ping" ("What is the status of
this topic?"), but that would _not_ scale.  Anything that the party
with more numbers, namely the contributors, can do, we should farm
it out to them.

> Following the above SubmittingPatches paragraph is another which also
> seems to mislead people frequently:
>
>     Do not forget to add trailers such as `Acked-by:`, `Reviewed-by:`
>     and `Tested-by:` lines as necessary to credit people who helped
>     your patch, and "cc:" them when sending such a final version for
>     inclusion.
>
> In fact, a submitter should almost never add a Reviewed-by: trailer
> because Reviewed-by: is explicitly given by a reviewer only when the
> reviewer is satisfied that the patch is merge-ready, in which case no
> more re-rolls are expected.

Yes, that is exactly why v6 that is identical to v5 that all
reviewers are happy with is useful.  It should be able to carry
reviewed-by's and acked-by's, reviewers can audit that there is no
forged or otherwise inappropriate reviewed-by's, without placing any
extra burden on the maintainer.

Thanks.
diff mbox series

Patch

diff --git a/Documentation/MailingListEtiquette.txt b/Documentation/MailingListEtiquette.txt
new file mode 100644
index 0000000000..9da2d490aa
--- /dev/null
+++ b/Documentation/MailingListEtiquette.txt
@@ -0,0 +1,125 @@ 
+Mailing List Etiquette
+======================
+
+[[introduction]]
+== Introduction
+
+Open source, community projects such as Git use a mailing list and email to
+coordinate development and to submit patches for review. This article documents
+the unspoken rules and etiquette for the proper way to send email to the
+mailing list. What follows are considered best practices to follow.
+
+If you are looking for details on how to submit a patch, that is documented
+elsewhere in:
+
+- `Documentation/SubmittingPatches`
+- `Documentation/MyFirstContribution.txt`
+
+[[proper-use-of-to-and-cc]]
+== Proper Use of To and Cc
+
+When starting a new email thread that is not directed at any specific person,
+put the mailing list address in the "To:" field, otherwise address it to the
+person and put the mailing list address in the "Cc:" field.
+
+When replying to an email on the mailing list, put the person you are replying
+to in the "To:" field and all other people in the thread in the "Cc:" field,
+including the mailing list address.
+
+Make sure to keep everyone involved in the "Cc:" field so that they do not have
+to be subscribed to the mailing list to receive replies.
+
+[[do-not-use-mail-followup-to]]
+== Do Not Use Mail-Followup-To
+
+When posting to the mailing list, your email client might add a
+"Mail-Followup-To:" field which contains all of the recipients, including the
+mailing list address, but not the sender's email address. This is intended to
+prevent the sender from receiving replies twice, once from the replying person
+and again from the mailing list.
+
+This goes directly against the desired "To:" and "Cc:" etiquette (see "Proper
+Use of To and Cc" above). Most users want to use "group reply" or "Reply to
+all" in their mail client and create a reply email that is sent directly to
+author of the email they are replying to with all other recipients, as well as
+the mailing list address, in the "Cc:" field.
+
+The proper thing to do is to never use the "Mail-Followup-To:" field as well as
+disable honoring any "Mail-Followup-To:" fields in any emails you reply to.
+Some email clients come with both enabled by default. Mutt is like this (see
+Disable Mail-Followup-To in the Mutt section below).
+
+[[enable-plain-text-mode]]
+== Enable Plain Text Mode
+
+Most email clients automatically reject mailing list email if it is not a
+text/plain formatted email. For that reason, it is important that your email
+client is set to create text/plain emails instead of text/enriched or
+text/html email.
+
+[[patches-that-receive-no-response]]
+
+From Junio's notes from the maintainer:
+
+> If you sent a patch and you did not hear any response from anybody for
+> several days, it could be that your patch was totally uninteresting,
+> but it also is possible that it was simply lost in the noise.  Please
+> do not hesitate to send a reminder message in such a case.  Messages
+> getting lost in the noise may be a sign that those who can evaluate
+> your patch don't have enough mental/time bandwidth to process them
+> right at the moment, and it often helps to wait until the list traffic
+> becomes calmer before sending such a reminder.
+
+[[send-merge-ready-patches-to-the-maintainer]]
+== Send Merge-Ready Patches to the Maintainer
+
+Once a patch has achieved consensus and all stakeholders are staisfied and
+everything is ready for merging, then you send it to the maintainer: "To:
+gitster@pobox.com".
+
+[[mutt-config]]
+== Mutt Config
+
+This section has suggestions for how to set up Mutt to be polite.
+
+[[known-mailing-lists]]
+=== Known Mailing Lists
+
+Mutt has the ability to change its behavior when replying to a mailing list. For
+Mutt to know when an address is a mailing list, use the `subscribe` keyword in
+your Mutt configuration:
+
+**~/.muttrc:**
+```
+# tell Mutt about the Git mailing list
+subscribe git@vger.kernel.org
+```
+
+[[reply-properly]]
+=== Reply Properly
+
+By default, Mutt uses the 'g' and 'L' hotkeys to execute a "group reply" or
+"list reply" respectively. A "group reply" creates an email addressed to the
+sender with all other recipients in the "Cc". A "list reply" starts an email
+addressed only to the mailing list without anybody else as "Cc".
+
+Per rule X, Y, and Z above, using "group reply" in Mutt is what you want to do.
+
+[[disable-mail-followup-to]]
+=== Disable Mail-Followup-To
+
+By default, when replying to mailing lists, Mutt will automatically generate
+"Mail-Followup-To" headers. To fix this, disable the generation of the header
+in your Mutt configuration. It is also a good idea to disable honoring any
+"Mail-Followup-To" headers so that any "group reply" operations are correctly
+addressed.
+
+**~/.muttrc:**
+```
+# disable Mail-Followup-To header
+unset followup_to
+
+# disable honoring Mail-Followup-To header
+unset honor_followup_to
+```
+