workflows.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: Review process improvements
       [not found] <YbvBvch8JcHED+A9@google.com>
@ 2021-12-17 18:39 ` Konstantin Ryabitsev
  2021-12-20 10:48   ` Christian Couder
                     ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Konstantin Ryabitsev @ 2021-12-17 18:39 UTC (permalink / raw)
  To: Emily Shaffer
  Cc: git, jrnieder, jonathantanmy, steadmon, chooglen, calvinwan, workflows

On Thu, Dec 16, 2021 at 02:46:21PM -0800, Emily Shaffer wrote:
> Some of those discussions resulted in changes - for example,
> GitGitGadget was improved and added to git/git, and we enjoy easy,
> non-noisy CI runs via GitHub Actions. But some things we thought were a
> good idea never went into practice. In the next few months, the Google
> Git team is planning to implement some of the following changes, and
> we'd appreciate your thoughts ahead of time as well as your review later
> on:

I'd like to also mention that I'm hoping to add a few more features to b4 that
will hopefully improve the patch submission process for folks. This feature
set is far from being complete yet, but the gist will be as follows:

1. b4 submit --new: this will create a new tracking branch and define
   some metadata to go with it, such as a cover letter template. The cover
   letter can be edited using `b4 submit --edit-cover` at any time.

2. b4 submit --send: will generate a patch series from any commits created
   from the topical branch fork point and use the cover letter from the
   previous step. It will be able to send the patches using the traditional
   SMTP way, OR it will allow using a web-based submission service I'm setting
   up at kernel.org:

   - anyone will be able to submit valid patches through this service
   - one-off patch submissions will require an email confirmation roundtrip
   - any submitter can also register their ed25519/openssh patatt key with the
     submission service and just cryptographically sign their patches. As long
     as signatures validate, no roundtrip confirmation of patches will be
     required after the initial public key registration.
   - on the receiving end, the patches will be written to a dedicated
     lore.kernel.org feed *as-is*, but also sent to the recipients after doing
     the usual From/Reply-To substitution and moving the original From into
     the in-body git headers (i.e. same as GGG does).

3. b4 submit will properly include base-commit information to all submitted
   patches, as well as a unique change-id trailer (but in the basement of the
   cover letter, not in the commit message trailers as Gerrit does).

4. b4 submit --sync: will retrieve any received code review trailers
   (reviewed-by, acked-by, etc) and amend the corresponding commits in the
   topical branch, assuming we can match patch-id's (I've not tackled this
   yet, so I may be unduly optimistic here).

5. b4 submit --reroll: will prepare a v2 (v3, v4) of the series, reusing the
   same change-id trailer and adding a templated "Changes in v2" entry to the
   cover letter (that must be edited before --send works again).

6. b4 submit --send: will send the new version of the series.

I'm hoping that this will improve the experience of patch submitters *and*
help ensure that CI can be incorporated into the process by streamlining the
submission procedure and providing a public-inbox feed that can be easily
monitored. A service like GGG can fairly easily convert well-formed patch
series (at least those carrying valid base-commit info) into ephemeral
worktrees, or even into simulated pull requests if the goal is to do this via
a generic CI service.

The important goal is to keep development fully decentralized so that even if
the web submission endpoint provided by kernel.org becomes unavailable, plain
old SMTP submission mechanisms can still be used as a fallback.

(Unfortunately, I need to focus my efforts on some kernel.org infrastructure
changes at this time, so I'm not sure when I'll be able to complete these
features.)

> 1. Draft a MAINTAINERS file

So, I *don't* recommend that you go this route. The biggest problem with the
MAINTAINERS file as used by the Linux development community is that making
changes to it is a very high-latency process. It will be less of a problem for
the much smaller git developer community, but it will still result in folks
operating from a stale copy of the file for weeks after it is updated
upstream.

One of the goals behind the "lei" tool by public-inbox is that it allows
search-based subscriptions (including things like "what files are being
modified, what functions are mentioned in the git context", etc). Anyone can
define a set of parameters they are interested in monitoring and receive only
threads matching those pre-filtered messages. We are currently rolling this
out as an end-user maintained setup [1], but the goal is to also offer this to
maintainers as a centrally managed service:

- maintainers will be able to define the search queries they are interested in
  monitoring
- we will set up a feed on our end matching those queries
- we will offer the feed as a separate public-inbox repository, a public IMAP
  folder, a read-only mailing list, and, I'm hoping, a read-only POP box (the
  latter mostly so it can be configured to feed into GMail).

The hope is that this will allow what you're looking for -- a way to
pre-filter the flow of patches to maintainers by making it topical, without
making the lives of patch submitters unnecessarily difficult by increasing the
chances that they will send their patches to the wrong list.

[1] https://people.kernel.org/monsieuricon/lore-lei-part-1-getting-started

I'm not sure where this all fits into your plans, but I wanted to show what is
happening on our end just so we're working in parallel, as opposed to in our
own separate worlds. :)

Best regards,
-K

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Review process improvements
  2021-12-17 18:39 ` Review process improvements Konstantin Ryabitsev
@ 2021-12-20 10:48   ` Christian Couder
  2021-12-20 12:29   ` Mark Brown
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 11+ messages in thread
From: Christian Couder @ 2021-12-20 10:48 UTC (permalink / raw)
  To: Konstantin Ryabitsev, Emily Shaffer
  Cc: git, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Glen Choo,
	calvinwan, workflows, Eric Wong, Johannes Schindelin,
	Josh Triplett

On Fri, Dec 17, 2021 at 11:00 PM Konstantin Ryabitsev
<konstantin@linuxfoundation.org> wrote:
>
> On Thu, Dec 16, 2021 at 02:46:21PM -0800, Emily Shaffer wrote:
> > Some of those discussions resulted in changes - for example,
> > GitGitGadget was improved and added to git/git, and we enjoy easy,
> > non-noisy CI runs via GitHub Actions. But some things we thought were a
> > good idea never went into practice. In the next few months, the Google
> > Git team is planning to implement some of the following changes,

Thanks for trying to make it easier and more efficient to contribute!

> > and
> > we'd appreciate your thoughts ahead of time as well as your review later
> > on:
>
> I'd like to also mention that I'm hoping to add a few more features to b4 that
> will hopefully improve the patch submission process for folks.

Thanks also for implementing and maintaining tools and sites that help
contributing!

I have added a new "Process related tools and sites" section to
https://git.github.io/Hacking-Git/ with links to GitGitGadget,
lore.kernel.org/git, public-inbox, lore+lei, b4 and git-series. I am
willing to add other tools and sites if someone knows others worth
mentioning.

[...]

> > 1. Draft a MAINTAINERS file
>
> So, I *don't* recommend that you go this route. The biggest problem with the
> MAINTAINERS file as used by the Linux development community is that making
> changes to it is a very high-latency process. It will be less of a problem for
> the much smaller git developer community, but it will still result in folks
> operating from a stale copy of the file for weeks after it is updated
> upstream.

My opinion is that a MAINTAINERS file makes more sense when there are
different mailing lists to send patches to, and trusted
lieutenants/maintainers. I am not sure that we are at that point yet.

About documentation, if some good documentation exists elsewhere, it
might be good enough to just point to it from an existing doc and/or
https://git.github.io/Hacking-Git/. Otherwise adding a new separate
doc might be better than growing an existing doc too much, which could
scare new comers.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Review process improvements
  2021-12-17 18:39 ` Review process improvements Konstantin Ryabitsev
  2021-12-20 10:48   ` Christian Couder
@ 2021-12-20 12:29   ` Mark Brown
  2021-12-22  3:26   ` Ævar Arnfjörð Bjarmason
  2021-12-23 13:50   ` Stefan Hajnoczi
  3 siblings, 0 replies; 11+ messages in thread
From: Mark Brown @ 2021-12-20 12:29 UTC (permalink / raw)
  To: Konstantin Ryabitsev
  Cc: Emily Shaffer, git, jrnieder, jonathantanmy, steadmon, chooglen,
	calvinwan, workflows

[-- Attachment #1: Type: text/plain, Size: 586 bytes --]

On Fri, Dec 17, 2021 at 01:39:42PM -0500, Konstantin Ryabitsev wrote:

> 2. b4 submit --send: will generate a patch series from any commits created
>    from the topical branch fork point and use the cover letter from the
>    previous step. It will be able to send the patches using the traditional
>    SMTP way, OR it will allow using a web-based submission service I'm setting
>    up at kernel.org:

One thing my equivalent of this does (I might've used patman but I don't
think I was aware of it at the time) is to tag each revision as it's
published, might be worth considering.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Review process improvements
  2021-12-17 18:39 ` Review process improvements Konstantin Ryabitsev
  2021-12-20 10:48   ` Christian Couder
  2021-12-20 12:29   ` Mark Brown
@ 2021-12-22  3:26   ` Ævar Arnfjörð Bjarmason
  2021-12-22 13:07     ` Fabian Stelzer
  2021-12-22 15:45     ` Konstantin Ryabitsev
  2021-12-23 13:50   ` Stefan Hajnoczi
  3 siblings, 2 replies; 11+ messages in thread
From: Ævar Arnfjörð Bjarmason @ 2021-12-22  3:26 UTC (permalink / raw)
  To: Konstantin Ryabitsev
  Cc: Emily Shaffer, git, jrnieder, jonathantanmy, steadmon, chooglen,
	calvinwan, workflows


On Fri, Dec 17 2021, Konstantin Ryabitsev wrote:

> [...]
>    - on the receiving end, the patches will be written to a dedicated
>      lore.kernel.org feed *as-is*, but also sent to the recipients after doing
>      the usual From/Reply-To substitution and moving the original From into
>      the in-body git headers (i.e. same as GGG does).

That GGG does this is one reason I haven't considered using it. It
breaks all sorts of E-Mail workflow assumptions from polluting the
address book for every person who uses it, to any "from:<addr>" search
needing special consideration etc.

Of course you'd need authentication etc, but is there a reason for why
such tooling can't work more like an SMTP relay and less like GGG which
(for some reason) insists on taking over the "From" header?

I think in its case it's because it wanted to mirror all the discussion
to GitHub. But presumably a ML-native tool won't have that problem (and
presumably GGG could do the same mirroring by following the ML after
submission).


^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Review process improvements
  2021-12-22  3:26   ` Ævar Arnfjörð Bjarmason
@ 2021-12-22 13:07     ` Fabian Stelzer
  2021-12-22 15:45     ` Konstantin Ryabitsev
  1 sibling, 0 replies; 11+ messages in thread
From: Fabian Stelzer @ 2021-12-22 13:07 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Konstantin Ryabitsev, Emily Shaffer, git, jrnieder,
	jonathantanmy, steadmon, chooglen, calvinwan, workflows

On 22.12.2021 04:26, Ævar Arnfjörð Bjarmason wrote:
>
>On Fri, Dec 17 2021, Konstantin Ryabitsev wrote:
>
>> [...]
>>    - on the receiving end, the patches will be written to a dedicated
>>      lore.kernel.org feed *as-is*, but also sent to the recipients after doing
>>      the usual From/Reply-To substitution and moving the original From into
>>      the in-body git headers (i.e. same as GGG does).
>
>That GGG does this is one reason I haven't considered using it. It
>breaks all sorts of E-Mail workflow assumptions from polluting the
>address book for every person who uses it, to any "from:<addr>" search
>needing special consideration etc.

I agree that this is a very annoying side-effect of GGG.

>
>Of course you'd need authentication etc, but is there a reason for why
>such tooling can't work more like an SMTP relay and less like GGG which
>(for some reason) insists on taking over the "From" header?
>

I think SPF/DMARC spam filtering will prevent tools like GGG to do this any 
other way. For GGG to be able to send with your From: you'd either need to 
give it access to your smtp credentials or configure your whole domain to 
allow GGG mail servers (basically github) to send email for it. I think both 
options are not really something you'd want.

>I think in its case it's because it wanted to mirror all the discussion
>to GitHub. But presumably a ML-native tool won't have that problem (and
>presumably GGG could do the same mirroring by following the ML after
>submission).
>

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Review process improvements
  2021-12-22  3:26   ` Ævar Arnfjörð Bjarmason
  2021-12-22 13:07     ` Fabian Stelzer
@ 2021-12-22 15:45     ` Konstantin Ryabitsev
  2021-12-22 19:42       ` Junio C Hamano
  1 sibling, 1 reply; 11+ messages in thread
From: Konstantin Ryabitsev @ 2021-12-22 15:45 UTC (permalink / raw)
  To: Ævar Arnfjörð Bjarmason
  Cc: Emily Shaffer, git, jrnieder, jonathantanmy, steadmon, chooglen,
	calvinwan, workflows

On Wed, Dec 22, 2021 at 04:26:39AM +0100, Ævar Arnfjörð Bjarmason wrote:
> That GGG does this is one reason I haven't considered using it. It
> breaks all sorts of E-Mail workflow assumptions from polluting the
> address book for every person who uses it, to any "from:<addr>" search
> needing special consideration etc.
> 
> Of course you'd need authentication etc, but is there a reason for why
> such tooling can't work more like an SMTP relay and less like GGG which
> (for some reason) insists on taking over the "From" header?

This would require pretending that we're authorized to send mail from the
domain name of the commit author, so this unfortunately won't work (and hence
the reason why GGG does it this way). E.g. say you have:

From: foo@redhat.com
Subject: [PATCH] Fix foo

For DMARC policies to properly work, this message would need to have a DKIM
signature from redhat.com, so we'd need to have access to Red Hat's private
keys. If we don't use DKIM signatures, then the recipient SMTP gateways may
mark the message as spam (and they would be right, since we are pretending to
be foo@redhat.com, i.e. acting just like phishers).

The only way for this to work is to do the From / X-Original-From /
Follow-up-to / Reply-To header dance. Git does support this very well, and
most email clients do the right thing when encountering this situation, but
it's not going to have the exact same visual flow as patches sent directly via
SMTP.

However, we will also write these messages to a public-inbox repository before
making the From: substitutions, so if someone retrieves these patches with b4
or lei, as opposed to receiving them via their SMTP mailbox, they should be
able to get proper From: in the headers.

-K

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Review process improvements
  2021-12-22 15:45     ` Konstantin Ryabitsev
@ 2021-12-22 19:42       ` Junio C Hamano
  2021-12-22 21:32         ` Konstantin Ryabitsev
  2022-01-10 13:03         ` Why GitGitGadget does not use Sender:, was " Johannes Schindelin
  0 siblings, 2 replies; 11+ messages in thread
From: Junio C Hamano @ 2021-12-22 19:42 UTC (permalink / raw)
  To: Konstantin Ryabitsev
  Cc: Ævar Arnfjörð Bjarmason, Emily Shaffer, git,
	jrnieder, jonathantanmy, steadmon, chooglen, calvinwan,
	workflows

Konstantin Ryabitsev <konstantin@linuxfoundation.org> writes:

> This would require pretending that we're authorized to send mail from the
> domain name of the commit author, so this unfortunately won't work (and hence
> the reason why GGG does it this way). E.g. say you have:
>
> From: foo@redhat.com
> Subject: [PATCH] Fix foo

Would it help to use "Sender:"?  When GGG or any other automation
are trying to send e-mail on behalf of the person shown on "From:",
I thought that it is the mechanism for them to use to identify
themselves.



^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Review process improvements
  2021-12-22 19:42       ` Junio C Hamano
@ 2021-12-22 21:32         ` Konstantin Ryabitsev
  2022-01-10 13:03         ` Why GitGitGadget does not use Sender:, was " Johannes Schindelin
  1 sibling, 0 replies; 11+ messages in thread
From: Konstantin Ryabitsev @ 2021-12-22 21:32 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Ævar Arnfjörð Bjarmason, Emily Shaffer, git,
	jrnieder, jonathantanmy, steadmon, chooglen, calvinwan,
	workflows

On Wed, Dec 22, 2021 at 11:42:02AM -0800, Junio C Hamano wrote:
> > This would require pretending that we're authorized to send mail from the
> > domain name of the commit author, so this unfortunately won't work (and hence
> > the reason why GGG does it this way). E.g. say you have:
> >
> > From: foo@redhat.com
> > Subject: [PATCH] Fix foo
> 
> Would it help to use "Sender:"?  When GGG or any other automation
> are trying to send e-mail on behalf of the person shown on "From:",
> I thought that it is the mechanism for them to use to identify
> themselves.

Indeed, that's how the DKIM standard wanted to deal with this problem, however
when the DMARC RFC was being drafted, this approach was deemed insufficient.
They have a good explanation for it -- there is no standard among UI clients
to handle the Sender/From discrepancy. Most MUAs will happily ignore the
Sender: field and will only show what is in From:, so this approach was
considered ineffective against phishing attacks. An attacker could easily
register a domain, set DKIM records, and then use any From: they wanted as
long as they used a valid Sender: header, knowing that it would be ignored by
most mail clients.

So, DMARC deliberately ignores the Sender: header and *only* pays attention to
the From: field for its purpose.

-K

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Review process improvements
  2021-12-17 18:39 ` Review process improvements Konstantin Ryabitsev
                     ` (2 preceding siblings ...)
  2021-12-22  3:26   ` Ævar Arnfjörð Bjarmason
@ 2021-12-23 13:50   ` Stefan Hajnoczi
  3 siblings, 0 replies; 11+ messages in thread
From: Stefan Hajnoczi @ 2021-12-23 13:50 UTC (permalink / raw)
  To: Konstantin Ryabitsev
  Cc: Emily Shaffer, git, jrnieder, jonathantanmy, steadmon, chooglen,
	calvinwan, workflows, Christian Couder

[-- Attachment #1: Type: text/plain, Size: 1487 bytes --]

> I'd like to also mention that I'm hoping to add a few more features to b4 that
> will hopefully improve the patch submission process for folks.

This looks excellent! I wanted to mention a few features that have been
popular in the git-publish patch series management tool
(https://github.com/stefanha/git-publish/) in case you want to include
something similar in b4:

- "Profiles" (.gitpublishprofile or stored in .git/config) with To and
  CC addresses, --subject-prefix, cover letter templates, etc. The
  default profile is automatically loaded when you run "git publish". If
  the git repo you're working on includes a default profile then you
  don't need to specify any command-line options to send a correctly
  formatted patch series to the maintainers! A great help for one-off
  contributors but also a time-saver for regular contributors.

- An interactive mode that lets you inspect the final patch series and
  edit the CC list. Avoids mistakes and embarassment :).

- Saving the CC list between revisions (v2, v3, etc).

- Sending pull requests (for sub-maintainers) because there are times
  when pull requests also need a v2 or even a v3 ;). The workflow is
  basically the same as sending patch series.

- githooks(5) before sending patches series and pull requests. Useful
  for coding style and patch series linters.

The git-publish man page is here if you want to read more:
https://github.com/stefanha/git-publish/blob/master/git-publish.pod#quickstart

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Why GitGitGadget does not use Sender:, was Re: Review process improvements
  2021-12-22 19:42       ` Junio C Hamano
  2021-12-22 21:32         ` Konstantin Ryabitsev
@ 2022-01-10 13:03         ` Johannes Schindelin
  2022-01-10 17:13           ` Junio C Hamano
  1 sibling, 1 reply; 11+ messages in thread
From: Johannes Schindelin @ 2022-01-10 13:03 UTC (permalink / raw)
  To: Junio C Hamano
  Cc: Konstantin Ryabitsev, Ævar Arnfjörð Bjarmason,
	Emily Shaffer, git, jrnieder, jonathantanmy, steadmon, chooglen,
	calvinwan, workflows

Hi Junio,

On Wed, 22 Dec 2021, Junio C Hamano wrote:

> Konstantin Ryabitsev <konstantin@linuxfoundation.org> writes:
>
> > This would require pretending that we're authorized to send mail from the
> > domain name of the commit author, so this unfortunately won't work (and hence
> > the reason why GGG does it this way). E.g. say you have:
> >
> > From: foo@redhat.com
> > Subject: [PATCH] Fix foo
>
> Would it help to use "Sender:"?

You had suggested that before, and I explained why it does not work in
https://lore.kernel.org/git/nycvar.QRO.7.76.6.2008241445200.56@tvgsbejvaqbjf.bet/.
The gist is: GMail interferes with your cunning plan.

> When GGG or any other automation are trying to send e-mail on behalf of
> the person shown on "From:", I thought that it is the mechanism for them
> to use to identify themselves.

Ciao,
Dscho

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: Why GitGitGadget does not use Sender:, was Re: Review process improvements
  2022-01-10 13:03         ` Why GitGitGadget does not use Sender:, was " Johannes Schindelin
@ 2022-01-10 17:13           ` Junio C Hamano
  0 siblings, 0 replies; 11+ messages in thread
From: Junio C Hamano @ 2022-01-10 17:13 UTC (permalink / raw)
  To: Johannes Schindelin
  Cc: Konstantin Ryabitsev, Ævar Arnfjörð Bjarmason,
	Emily Shaffer, git, jrnieder, jonathantanmy, steadmon, chooglen,
	calvinwan, workflows

Konstantin gave a more generally applicable answer to think about
this issue in <20211222213247.5dnj3zlj53lh6l32@meerkat.local> in a
separate thread last year.  I would not be surprised if GMail pays
attention to the reasoning he gave in that message and that is the
reason why it does not use the "Sender" as I hoped.  I expect other
e-mail providers should do the same.

Thanks.  

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2022-01-10 17:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <YbvBvch8JcHED+A9@google.com>
2021-12-17 18:39 ` Review process improvements Konstantin Ryabitsev
2021-12-20 10:48   ` Christian Couder
2021-12-20 12:29   ` Mark Brown
2021-12-22  3:26   ` Ævar Arnfjörð Bjarmason
2021-12-22 13:07     ` Fabian Stelzer
2021-12-22 15:45     ` Konstantin Ryabitsev
2021-12-22 19:42       ` Junio C Hamano
2021-12-22 21:32         ` Konstantin Ryabitsev
2022-01-10 13:03         ` Why GitGitGadget does not use Sender:, was " Johannes Schindelin
2022-01-10 17:13           ` Junio C Hamano
2021-12-23 13:50   ` Stefan Hajnoczi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).