workflows.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Theodore Y. Ts'o" <tytso@mit.edu>
To: Dmitry Vyukov <dvyukov@google.com>
Cc: Neil Horman <nhorman@tuxdriver.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	Drew DeVault <sir@cmpwn.com>,
	workflows@vger.kernel.org
Subject: Re: thoughts on a Merge Request based development workflow
Date: Mon, 30 Sep 2019 10:51:23 -0400	[thread overview]
Message-ID: <20190930145123.GA4001@mit.edu> (raw)
In-Reply-To: <CACT4Y+Z8_fABZSXahiGaOxKiPa+K3hxhvH8EVenuuqOs3aCwZg@mail.gmail.com>

On Sun, Sep 29, 2019 at 02:55:25PM +0200, Dmitry Vyukov wrote:
> One mismatch with kernel dev process that seem to be there for lots of
> existing solutions (gerrit, git-appraise, github, gitlab) is that they
> are centered around a single "mail" git tree (in particular,
> gerrit/git-appraise check in metainfo right into that repo). Whereas
> kernel has lots of kernels. Now if Steve is CCed on lots of changes
> what git tree should he pull before boarding a place? For some changes
> it may be unclear what tree they should go into initially, or that may
> change over time. Then, there are some additional relations with
> stable trees.

It might be worth unpacking the various ways in which a patch series
gets reviewed, and thus cc'ed, on multiple mailing lists.

(a) It's meant for a tree that has its own mailing list, but some
people cc LKML anyway, on general principles.  Since very few people
read LKML, it's kinda pointless, but people do it anyway.

(b) The patch series is meant for one tree, but it will have an impact
on other trees, so it's cc'ed as an FYI and hoping to get comments
from those other trees.  A good example of this might be changes to
fs/iomap, for which linux-xfs is its primary mailing list (and git
tree), but other trees use various bits of fs/iomap (and will be using
more, in the future), so it's cc'ed to linux-fsdevel.

(b1) The patch series impacts some function signature used by multiple
subsystems, so it actually requires changes in git multiple trees ---
but since the one or more changes needs to go upstream in atomic
commits, the patch needs to be reviewed by multiple file system
developers.  There may be some negotiation over which tree the change
should get pushed upsrteam, but _usually_ it's actually pretty clear.

(b2) The patch series adds new functionality which multiple subsystems
are interested in using and pushing upstream in the next merge window.
Since the change to enable the use of that feature is often
non-trivial, what typically happens is the enabling commits which
enable the functionality goes into one tree, with a branch pointer
which other trees will pull into their trees, and then each subsystem
will land additional commits to utilization the feature in their tree.

Usually the patch series with the enabling commits will also come with
a sample set of commits using that new functionality for one subsystem
(usually the subsystem which the primary author of that functionality
is associated with), and that's the git tree for which the initial
patchset will be sent.

(c) People who are making wide-scale cleanups to the tree (example:
adding /* FALLTHRROUGH */ tags) where it is sent as a single patch
series, but in fact very often each subsystem maintinaer will take the
commit through their own tree.  (This is often to avoid later merge
conflicts.)  The rest of the changes may then go up through some
default tree (e.g., the security tree, or the trivial tree, etc.)

It is this last case where which tree a patch sent might get sent
through is uncertain, but it's also a small percentage of the overall
patch flow.

> I suspect that kernel tooling should account for that and separate
> changes layer from exact git trees. Like mailing lists. Usually there
> is 1 mailing list and 1 git tree per subsystem, but still this
> relation is not fixed and one can always CC another mailing list, or
> retarget the change, etc.
> What do you think?

That would be nice, but I worry that if we make that a requirement for
the 1.0 version, it may make the whole system too complicated and
delay its rollout.

So what I would say is that as a Minimum Viable Product, it's
important for the author to be able to designate which git tree entire
the patch series is meant for, and also specify other mailing lists
that should be cc'ed.  That something that pretty much all of the
centralized "forge" systems (which I assume include solutions like
Gerrit as well as github) can handle today.

It would be _desirable_ if commits could be annotated with the set of
subsystem maintainers for which approval is requested.  It would also
be desirable if there was a way for a subsystem maintainer to indicate
that they will take the patch through their tree, and the right thing
should happen in terms of removing the patch from needing further
review once that patch is in some other subsystem's tree.

Also, even if we believe that it is (a) possible and (b) desirable to
have a single system which everyone is mandated to use, there will be
a long transition period where not everyone will be using the new
centralized system.  So the system *has* to handle smoothly subsystems
which haven't yet converted to using the new centralized system.

Look at git as an example; everyone uses git because it is clearly the
superior solution, and it made maintainers' lives easier.  But for a
long time, Andrew Morton's -mm patch queue was maintained outside of
git, and in fact, was accessible via ftp.  We don't have a senior vice
president which can force everyone to use the new system --- or for
example, stand down all development work for two months and force
everyone to work a single focus area, like reliability or security (as
Microsoft did a few years ago).

Can we focus most development resources on a single solution which
appears to meet the vast majority of everyone's workflow?  Perhaps,
especially if we can get corporate funding of the solution which we
expect to meet most developer's needs.  But can we force everyone to
use it?  No, and the attempt to force everyone to use it may actually
make wide adoption harder, not easier.

				- Ted

  parent reply	other threads:[~2019-09-30 14:52 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-24 18:25 thoughts on a Merge Request based development workflow Neil Horman
2019-09-24 18:37 ` Drew DeVault
2019-09-24 18:53   ` Neil Horman
2019-09-24 20:24     ` Laurent Pinchart
2019-09-24 22:25       ` Neil Horman
2019-09-25 20:50         ` Laurent Pinchart
2019-09-25 21:54           ` Neil Horman
2019-09-26  0:40           ` Neil Horman
2019-09-28 22:58             ` Steven Rostedt
2019-09-28 23:16               ` Dave Airlie
2019-09-28 23:52                 ` Steven Rostedt
2019-10-01  3:22                 ` Daniel Axtens
2019-10-01 21:14                   ` Bjorn Helgaas
2019-09-29 11:57               ` Neil Horman
2019-09-29 12:55                 ` Dmitry Vyukov
2019-09-30  1:00                   ` Neil Horman
2019-09-30  6:05                     ` Dmitry Vyukov
2019-09-30 12:55                       ` Neil Horman
2019-09-30 13:20                         ` Nicolas Belouin
2019-09-30 13:40                         ` Dmitry Vyukov
2019-09-30 21:02                     ` Konstantin Ryabitsev
2019-09-30 14:51                   ` Theodore Y. Ts'o [this message]
2019-09-30 15:15                     ` Steven Rostedt
2019-09-30 16:09                       ` Geert Uytterhoeven
2019-09-30 20:56                       ` Konstantin Ryabitsev
2019-10-08  1:00                     ` Stephen Rothwell
2019-09-26 10:23           ` Geert Uytterhoeven
2019-09-26 13:43             ` Neil Horman
2019-10-07 15:33   ` David Miller
2019-10-07 15:35     ` Drew DeVault
2019-10-07 16:20       ` Neil Horman
2019-10-07 16:24         ` Drew DeVault
2019-10-07 18:43           ` David Miller
2019-10-07 19:24             ` Eric Wong
2019-10-07 15:47     ` Steven Rostedt
2019-10-07 18:40       ` David Miller
2019-10-07 18:45       ` David Miller
2019-10-07 19:21         ` Steven Rostedt
2019-10-07 21:49     ` Theodore Y. Ts'o
2019-10-07 23:00     ` Daniel Axtens
2019-10-08  0:39       ` Eric Wong
2019-10-08  1:26         ` Daniel Axtens
2019-10-08  2:11           ` Eric Wong
2019-10-08  3:24             ` Daniel Axtens
2019-10-08  6:03               ` Eric Wong
2019-10-08 10:06                 ` Daniel Axtens
2019-10-08 13:19                   ` Steven Rostedt
2019-10-08 18:46                 ` Rob Herring
2019-10-08 21:36                   ` Eric Wong
2019-10-08  1:17       ` Steven Rostedt
2019-10-08 16:43         ` Don Zickus
2019-10-08 17:17           ` Steven Rostedt
2019-10-08 17:39             ` Don Zickus
2019-10-08 19:05               ` Konstantin Ryabitsev
2019-10-08 20:32                 ` Don Zickus
2019-10-08 21:35                   ` Konstantin Ryabitsev
2019-10-09 21:50                     ` Laura Abbott
2019-10-10 12:48                       ` Neil Horman
2019-10-09 21:35                 ` Laura Abbott
2019-10-09 21:54                   ` Konstantin Ryabitsev
2019-10-09 22:09                     ` Laura Abbott
2019-10-09 22:19                       ` Dave Airlie
2019-10-09 22:21                     ` Eric Wong
2019-10-09 23:56                       ` Konstantin Ryabitsev
2019-10-10  0:07                         ` Eric Wong
2019-10-10  7:35                         ` Nicolas Belouin
2019-10-10 12:53                           ` Steven Rostedt
2019-10-10 14:21                           ` Dmitry Vyukov
2019-10-11  7:12                             ` Nicolas Belouin
2019-10-11 13:56                               ` Dmitry Vyukov
2019-10-14  7:31                                 ` Nicolas Belouin
2019-10-10 17:52                     ` Dmitry Vyukov
2019-10-10 20:57                       ` Theodore Y. Ts'o
2019-10-11 11:01                         ` Dmitry Vyukov
2019-10-11 12:54                           ` Theodore Y. Ts'o
2019-10-14 19:08                         ` Han-Wen Nienhuys
2019-10-15  1:54                           ` Theodore Y. Ts'o
2019-10-15 12:00                             ` Daniel Vetter
2019-10-15 13:14                               ` Han-Wen Nienhuys
2019-10-15 13:45                                 ` Daniel Vetter
2019-10-16 18:56                                   ` Han-Wen Nienhuys
2019-10-16 19:08                                     ` Mark Brown
2019-10-17 10:22                                       ` Han-Wen Nienhuys
2019-10-17 11:24                                         ` Mark Brown
2019-10-17 11:49                                     ` Daniel Vetter
2019-10-17 12:09                                       ` Han-Wen Nienhuys
2019-10-17 12:53                                         ` Daniel Vetter
2019-10-15 16:07                           ` Greg KH
2019-10-15 16:35                             ` Steven Rostedt
2019-10-15 18:58                             ` Han-Wen Nienhuys
2019-10-15 19:33                               ` Greg KH
2019-10-15 20:03                                 ` Mark Brown
2019-10-15 19:50                               ` Mark Brown
2019-10-15 18:37                           ` Konstantin Ryabitsev
2019-10-15 19:15                             ` Han-Wen Nienhuys
2019-10-15 19:35                               ` Greg KH
2019-10-15 19:41                               ` Konstantin Ryabitsev
2019-10-16 18:33                                 ` Han-Wen Nienhuys
2019-10-09  2:02           ` Daniel Axtens
2019-09-24 23:15 ` David Rientjes
2019-09-25  6:35   ` Toke Høiland-Jørgensen
2019-09-25 10:49   ` Neil Horman

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=20190930145123.GA4001@mit.edu \
    --to=tytso@mit.edu \
    --cc=dvyukov@google.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=nhorman@tuxdriver.com \
    --cc=rostedt@goodmis.org \
    --cc=sir@cmpwn.com \
    --cc=workflows@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).