All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dmitry Vyukov <dvyukov@google.com>
To: Neil Horman <nhorman@tuxdriver.com>
Cc: 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 15:40:01 +0200	[thread overview]
Message-ID: <CACT4Y+bHQOJhXmZ=+NPh7DnWargHWrC4BD537XooGNX9uBPqDA@mail.gmail.com> (raw)
In-Reply-To: <20190930125548.GA6647@hmswarspite.think-freely.org>

On Mon, Sep 30, 2019 at 2:56 PM Neil Horman <nhorman@tuxdriver.com> wrote:
>
> On Mon, Sep 30, 2019 at 08:05:04AM +0200, Dmitry Vyukov wrote:
> > On Mon, Sep 30, 2019 at 3:01 AM Neil Horman <nhorman@tuxdriver.com> wrote:
> > >
> > > On Sun, Sep 29, 2019 at 02:55:25PM +0200, Dmitry Vyukov wrote:
> > > > On Sun, Sep 29, 2019 at 1:57 PM Neil Horman <nhorman@tuxdriver.com> wrote:
> > > > >
> > > > > On Sat, Sep 28, 2019 at 06:58:48PM -0400, Steven Rostedt wrote:
> > > > > > On Wed, 25 Sep 2019 20:40:45 -0400
> > > > > > Neil Horman <nhorman@tuxdriver.com> wrote:
> > > > > >
> > > > > > > Eventually, barring any really significant objection, hes going to make
> > > > > > > the switch, and users will either have to get github accounts, or stop
> > > > > > > participating in netdev development.
> > > > > >
> > > > > > That will be a very sad day if that happened.
> > > > > >
> > > > > > Whatever service should have an email interface. For example, if I get
> > > > > > a message from bugzilla.kernel.org, I can reply back via email and it
> > > > > > is inserted into the tool (as I see my Out of office messages going
> > > > > > into it. I need to fix my scripts not to reply to bugzilla).
> > > > > >
> > > > > Forge solutions do have the ability to use email as an interface to
> > > > > issue tracking, thats not a problem.  What they don't currently seem to
> > > > > have is the ability to emulate patch review workflows.  And thats not to
> > > > > say they couldn't, but it seems to me that they haven't prioritized that
> > > > > because they offer several different types of comment options
> > > > > (commenting in the pull request discussion(s) themselves vs commenting
> > > > > on code, etc.  If they sould implement that, I think alot of this would
> > > > > become alot easier.
> > > > >
> > > > > > I set up patchwork on my INBOX, as I'm having a hard time of separating
> > > > > > patches from the noise. And it works really well. I would love to be
> > > > > > able to push my patchwork list to a public place so that others can see
> > > > > > it too. As mentioned in the Maintainers Summit, it would be great to be
> > > > > > able to pull patchwork down to my laptop, get on the plane, process a
> > > > > > bunch of patches while flying, and then when I land, I could push the
> > > > > > updates to the public server.
> > > > > >
> > > > > > That's pretty much all I'm looking for.
> > > > > >
> > > > > I think what you are looking for here is a way to pull down a set of
> > > > > merge requests, review and merge those you approve, and push them back
> > > > > when you are back online?  I think you can do at least some of that.
> > > > > Forge solutions (definately gitlab, likely github), allow you to pull
> > > > > a merge request reference namespace (on gitlab its
> > > > > heads/merge_requests/<merge_request_id>).  You can merge whatever head
> > > > > there you like to its intended target branch, and when you push, it will
> > > > > update the corresponding MR to the MERGED state.  What you can't
> > > > > currently do is make a comment on an MR, store that comment in git and
> > > > > then have the MR updated with those comments.  That would be a great
> > > > > item to make that feature more complete.
> > > >
> > > > 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.
> > > > 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?
> > > >
> > > I agree that newer review solutions (of the type you ennummerated) rely
> > > on centralization of information, which is undesireable in many cases,
> > > but I'm not sure how to avoid that.
> >
> > Well, FWIW the SSB protocol and similar would avoid that:
> > https://people.kernel.org/monsieuricon/patches-carved-into-developer-sigchains
> >
> I wasn't aware of this framework, thats pretty cool and could be a
> potential solution, yes.
>
> That said, it doesn't solve the casual contributor issue.  From the
> section on raising the entry barrier:
>
> "We would need full-featured web clients that would allow someone to browse projects
> in a similar fashion as they would browse them on Git..b, including viewing issues,
> submitting bug reports, and sending patches and pull requests."

Well, it does not have to be complex. See a potential new developer workflow:
https://lore.kernel.org/workflows/d6e8f49e93ece6f208e806ece2aa85b4971f3d17.1569152718.git.dvyukov@google.com/

> Once we start talking about having to maintain web interfaces, and
> especially if we are also considering features like CI, it seems to me
> we are talking about falling back effectively to a forge solution that
> allows data interchange via SSB.  While thats a good feature add, its
> really an addition to a forge solution, not a standalone mechanism.

Re web interfaces, Gerrit allows running locally (with your local
checkout as data source), or there will always be an option to apply
the change locally and review in your favorite editor. While a hosted
web interface is nice, it may be only one of the available options.
E.g. git-appraise has a bridge to github, but that's only a bridge.

Re CI. It does not seem to be much to reuse for kernel testing here.
Besides push notifications about new changes and UI for
"passed"/"failed" result. It would be nice for KernelCI, LKFT, CKI,
0-day to talk to the rest of the kernel dev process using some
standardized API, but if it's a github API or some other similar API
probably does not matter much.


> > > Just thinking off the top of my head, I wonder if a tool that converted
> > > all forge type conversations to git notes would be useful here.  Those
> > > could then be pulled by individuals for review and update?
> >
> > git-appriaise does something similar, but the other way around:
> > https://github.com/dvyukov/kit/blob/master/doc/references.md#git-appraise
> > git notes is the _main_ storage, but then it has bridge to github.
> >
> > However, it's unclear how use such solution for kernel:
> > https://lore.kernel.org/ksummit-discuss/9fee1356-cf48-6198-4001-5d9d886fbf88@iogearbox.net/T/#m869c5253d10931823bba74942df7da062a7bbb13
> > (world writable, force pushes)
> >
> Yeah, I've messed with git-appraise, and thats the issue I've run into -
> it forgoes the need for account creation on a forge, but at the expense
> of...well, not having any significant meaningful authentication.

  parent reply	other threads:[~2019-09-30 13:40 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 [this message]
2019-09-30 21:02                     ` Konstantin Ryabitsev
2019-09-30 14:51                   ` Theodore Y. Ts'o
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='CACT4Y+bHQOJhXmZ=+NPh7DnWargHWrC4BD537XooGNX9uBPqDA@mail.gmail.com' \
    --to=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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.