Subject: Pain points in Git's patch flow

From: Jonathan Nieder <[email-masked]>
Date: Tue, 13 Apr 2021 23:13:26 -0700

Hi,

I'd like to introduce Raxel (cc-ed), who is starting an internship
this June with the Git team at Google.

He'll be working on a bit of an experimental project: we want to take
Patchwork[1], which in principle can be a helpful addition to a
mailing list centric workflow[2], and improve it to be something that
people in the Git open source project get day-to-day benefit from.
Raxel's previous successes in making changes to tools to support a
better user experience make me excited for the potential for this
work.

Anyway, yesterday[3] Junio, Taylor, and Emily were discussing how to
encourage more reviews:

 <gitster> this week, i'd be thinking about ways to get topics, that
           are not reviewed sufficiently, reviewed. I can act as the
           last-resort fallback reviewer, but that's not sufficient.
 <ttaylorr> gitster: I share your concern.
 <nasamuffin> gitster: yep, agree, on both counts

That reminded me that it would be useful preparation to collect
descriptions of pain points we are having with our existing patch
flow.  For example:

- As a reviewer, I want to be able to easily find a series that needs
  review.  Using patchwork, I can see some recent patch series; or
  using a hierarchical threaded mail reader, I can find a neglected
  thread or one that seems to be likely to have an interesting
  discussion going on.  But without reading in detail, there is no
  easy way to see whether the series has reached a review, whether
  someone else intends to review it, and what the author believes its
  status to be.

- Relatedly, as a patch author or reviewer, I want to be able to
  easily tell whether a topic has been sufficiently reviewed.  Today,
  the signals for this are implicit: I have to judge consensus, or to
  check the Git repository for whether the patch has been merged, or
  to check the maintainer's latest "What's cooking in git.git"
  message.

- As a potential reviewer or interested user, I want to be able to
  follow all relevant discussion for a patch series, while also
  having the ability to stop following it if the discussion goes on
  too long and starts overwhelming my email inbox.  Today, I can join
  the discussion and then (1) it is hit-or-miss whether the patch
  author ccs me on later iterations of the patch and (2) there is no
  easy way without aggressive email filtering to stop watching it if
  I am cc-ed.

- After having diagnosed an issue to be due to a patch, I want to be
  able to easily find all relevant review discussion.  Today I can
  use the mailing list archive[4] or patchwork to find review
  discussion on the latest version of the series that patch was in,
  but tracing back to previous iterations of that same series can be
  non-trivial.  Moreover, if I'm interested in a particular puzzling
  line of code, finding which iteration introduced it can take a long
  time.

Those four are important in my everyday life.  Questions:

 1. What pain points in the patch flow for git.git are important to
    you?

 2. What tricks do you use to get by with those existing pain points?

 3. Do you think patchwork goes in a direction that is likely to help
    with these?

 4. What other tools would you like to see that could help?

Thanks,
Jonathan

[1] http://jk.ozlabs.org/projects/patchwork/; you can see an instance
for Git at https://patchwork.kernel.org/project/git/list/
[2] https://kernel-recipes.org/en/2016/talks/patches-carved-into-stone-tablets/,
https://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html#_patch_workflow
[3] https://colabti.org/irclogger/irclogger_log/git-devel?date=2021-04-12#l40
[4] https://lore.kernel.org/git/