ksummit.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
From: Doug Anderson <dianders@chromium.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Joel Fernandes <joelaf@google.com>,
	Barret Rhoden <brho@google.com>,
	ksummit <ksummit-discuss@lists.linuxfoundation.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jonathan Nieder <jrn@google.com>,
	Tomasz Figa <tfiga@chromium.org>,
	Han-Wen Nienhuys <hanwen@google.com>,
	Theodore Tso <tytso@google.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	David Rientjes <rientjes@google.com>,
	Dmitry Torokhov <dtor@chromium.org>
Subject: Re: [Ksummit-discuss] Allowing something Change-Id (or something like it) in kernel commits
Date: Thu, 22 Aug 2019 18:07:02 -0700	[thread overview]
Message-ID: <CAD=FV=UFSmZwydm7pgGXv-nMM2-9C0qZqGzOJo73b0y6+b4pZw@mail.gmail.com> (raw)
In-Reply-To: <CAHk-=whFbgy4RXG11c_=S7O-248oWmwB_aZOcWzWMVh3w7=RCw@mail.gmail.com>

Hi,

On Thu, Aug 22, 2019 at 5:17 PM Linus Torvalds
<torvalds@linux-foundation.org> wrote:
> > To begin with, let me make sure we're on the same page about what
> > Change-Ids are.  As I understand it:
> >
> > * A change ID is much alike a UUID.  It is locally generated on a
> > developer's computer and is (in theory) unique across the universe.
>
> Completely irrelevant.
>
> The point of an UUID is not just that it's unique, but THAT YOU CAN
> LOOK SOMETHING UP USING IT!
>
> A "change ID" that I can't use to look anything up with is completely
> pointless and should be removed from kernel history.
>
> But if you have something unique that is actually useful for looking
> things up, then by all means. But it needs to be useful for
> _everybody_.

I presumably wasn't clear in my proposal.  My apologies and I will try
to be clearer.  I am proposing this:

1. I post v1 of my patch series to public mailing lists, like LKML.
Each patch in the series is tagged with a Change-Id which my own PC
made up.  I never touch a gerrit server anywhere.

2. I post v2 of my patch series to a public mailing list.  I make sure
that patches that are supposed to be newer versions of the same patch
in v1 contain the same Change-Id that they had in v1.  This is
something I already know how to do since sometimes I use gerrit and
that's how you work with gerrit.  I still haven't touched a single
gerrit server in this process.

3. The patch lands and still has the Change-Id.

Someone looking at the git history in the kernel can find the old
versions by searching public mailing lists for the Change-Id simply
using the standard ways to search mailing lists for a string.  There
is nothing excluding anyone here and it should be useful for everyone.

Someone doing a search of the mailing lists that finds patch v1 can
note the Change-Id and search the same mailing lists (and the kernel
history) for that Change-Id.  They can find it because the same string
was in v1 and v2.


> > * When a developer keeps the same Change-Id across two patches they
> > are making the assertion that the two patches are either the same or
> > should be treated as two versions of the same logical change.
>
> .. and we have better ways to do that.
>
> For example, we are actively encouraging things like message ID's
> (which are _also_ a form of locally generated UUID, they just are more
> than the silly purely numerical one).
>
> That gives you the origin of something, but it also gives you the
> development history and context.

I do not believe that there is any way to start with the Message-Id of
v2 of a patch and easily find v1 of the same patch.  Things like
cregit and email2git may have heuristics here, but I'm fairly certain
that they are not guaranteed to work.  I am happy to be corrected
here.  I can also spend time finding examples of cregit and email2git
failing if needed.


> But note that how when it comes to message ID's we encourage them in a
> form that actually also helps look that information up, ie the
> preferred form isn't just the message ID (although that exists), it's
> a link like
>
>     Link: https://lore.kernel.org/r/20190723065733.4899-5-leon@kernel.org
>
> instead of
>
>    Message-ID: 20190723065733.4899-5-leon@kernel.org
>
> even though technically they have just as much actual information in theory.

At the moment there is a chicken-and-egg problem.  We can't create
such a tool until Change-Id is there and Change-Id can't be there till
there is a tool.  However, I guess that could be solved by convincing
someone to create a tool that would return a list of emails that match
a given string.  Presumably such a tool would need to be hosted on
kernel.org.

NOTE: part of the usefulness of Change-Id is that it could be parsed
by a machine so that tools such as patchwork, gerrit, or other
not-yet-invented tools can always find the Change-Id.  If we were to
post it as a URL, I would want to make sure that everyone always used
the same URL.

I would further note that when you do "git log" each change is listed
with a random number (the git hash), not:

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=59c36bc8d377c8764eb617a92211e0fc2f1318da

...so there is at least one precedent where people accept having an
ID, not a clickable URL.


> > At the moment, Change-Ids are highly associated in people's minds with
> > gerrit and many upstream developers dislike gerrit.
>
> No. That's not it at all. It's not "dislike gerrit".
>
> It's "dislike pointless garbage".
>
> If the gerrit database is public and searchable using the uuid, then
> that would make the uuid useful to outsiders. And instead of just
> putting a UUID (which is hard to look up unless you know where it came
> from), make it be that "Link:" that gives not just the UUID, but also
> gives you the metadata for that UUID to be looked up.
>
> But so far, in every single case the uuid's I've ever seen have been
> pointless garbage, that aren't useful in general to public open source
> developers, and as such shouldn't be in the git tree.
>
> See the difference?
>
> So if you guys make the gerrit database actually public, and then
> start adding "Link: ..." tags so that we can see what they point to, I
> think people will be more than supportive of it.
>
> But if it's some stupid and pointless UUID that is useful to nobody
> outside of google (or special magical groups of people associated with
> it), then I will personally continue to be very much against it.
>
> If it's some internal database for your exclusive club, then you can
> just have your own internal database to look that UUID up using a
> commit ID (or a patch ID that is generated from the patch), and you
> don't need to pollute the public with non-public noise.
>
> Do people do that "pointless pullution" thing? Yes, I've seen various
> companies add their garbage to the commit logs. Sometimes it makes it
> through. But if I see an email with random noise in it, I will
> personally remove that random useless noise.
>
> This is part of what "open source" is all about. There aren't supposed
> to be special people with access to inside information that get
> preferential treatment. If you have your private stuff, then fine, but
> keep it private. It has no business being in the public tree.

So I'm hoping that I addressed this above in saying that the Change-Id
I'm talking about has nothing to do with any gerrit server.  The
database is public because it is the existing mailing list archive.
Any use of the same Change-Id on an internal gerrit server is
meaningless in the context of my proposal.

-Doug

  parent reply	other threads:[~2019-08-23  1:07 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-22 23:39 [Ksummit-discuss] Allowing something Change-Id (or something like it) in kernel commits Doug Anderson
2019-08-23  0:03 ` Brendan Higgins
2019-08-23  0:17 ` Linus Torvalds
2019-08-23  0:30   ` Olof Johansson
2019-08-23  0:43     ` Guenter Roeck
2019-08-23  0:45       ` Olof Johansson
2019-08-23  1:05         ` Olof Johansson
2019-08-23  1:09           ` Dmitry Torokhov
2019-08-23  1:36         ` Theodore Y. Ts'o
2019-08-23  2:58           ` Linus Torvalds
2019-08-23  3:03             ` Linus Torvalds
2019-08-23 13:15               ` Sean Paul
2019-08-23 15:18                 ` Theodore Y. Ts'o
2019-08-23 15:31                   ` Sean Paul
2019-08-23 15:48                     ` Thomas Gleixner
2019-08-23 16:19                       ` Dmitry Torokhov
2019-08-23 16:35                         ` Joel Fernandes
2019-08-23 16:45                           ` Doug Anderson
2019-08-23 16:54                             ` Joel Fernandes
2019-08-23 18:00                               ` Doug Anderson
2019-08-23 19:08                                 ` Joel Fernandes
2019-08-23 19:15                                   ` Joel Fernandes
2019-08-23 19:23                                     ` Thomas Gleixner
2019-08-23 19:31                                       ` Joel Fernandes
2019-08-24 16:53                                   ` Doug Anderson
2019-08-23 16:46                           ` Dmitry Torokhov
2019-08-23 19:17                             ` Thomas Gleixner
2019-08-23 19:38                               ` Laurent Pinchart
2019-08-23 21:15                                 ` Thomas Gleixner
2019-08-23 21:25                                   ` Mark Brown
2019-08-24 23:13                                   ` Theodore Y. Ts'o
2019-08-25  7:09                                     ` Thomas Gleixner
2019-08-26 22:05                                       ` Thomas Gleixner
2019-08-28  8:50                                         ` Thomas Gleixner
2019-08-23 20:02                               ` Christian Brauner
2019-08-24 16:34                                 ` Doug Anderson
2019-08-24 18:11                                   ` Linus Torvalds
2019-08-24 23:04                                     ` Theodore Y. Ts'o
2019-08-25  3:11                                       ` Greg Kroah-Hartman
2019-08-27 10:51                                         ` Mark Brown
2019-09-09  8:14                                           ` Michael Ellerman
2019-09-09 12:09                                             ` Mark Brown
2019-08-26 17:13                                     ` Doug Anderson
2019-08-26 17:30                                       ` Joel Fernandes
2019-08-26 21:35                                         ` Doug Anderson
2019-08-26 21:51                                           ` Thomas Gleixner
2019-08-26 22:06                                             ` Doug Anderson
2019-08-26 22:19                                               ` Thomas Gleixner
2019-08-26 23:02                                           ` Theodore Y. Ts'o
2019-08-26 23:11                                             ` Doug Anderson
2019-09-16 14:11                                               ` Christian Brauner
2019-09-16 17:43                                               ` Al Viro
2019-09-16 18:05                                                 ` Doug Anderson
2019-08-26 23:43                                             ` Thomas Gleixner
2019-08-28 12:34                                               ` Christian Brauner
2019-08-27  0:29                                             ` Dmitry Vyukov
2019-08-27  6:06                                               ` Thomas Gleixner
2019-08-27 13:24                                                 ` Dmitry Vyukov
2019-08-27 13:48                                                   ` Greg Kroah-Hartman
2019-08-27 14:01                                                     ` Guenter Roeck
2019-08-27 14:09                                                       ` Thomas Gleixner
2019-08-27 15:33                                                         ` Greg Kroah-Hartman
2019-08-27 15:42                                                           ` Thomas Gleixner
2019-08-27 18:55                                                           ` Konstantin Ryabitsev
2019-08-27 19:53                                                             ` Greg Kroah-Hartman
2019-08-27 21:34                                                               ` Joel Fernandes
2019-08-27 21:38                                                                 ` Joel Fernandes
2019-08-28  9:08                                                                 ` Greg Kroah-Hartman
2019-08-28  9:25                                                                   ` Jani Nikula
2019-08-28 10:04                                                                   ` Martin K. Petersen
2019-08-28 10:53                                                                     ` Thomas Gleixner
2019-08-28 12:46                                                                       ` Martin K. Petersen
2019-08-28 10:42                                                                   ` Mark Brown
2019-08-28 11:41                                                                     ` Greg Kroah-Hartman
2019-08-28 12:22                                                                   ` Christian Brauner
2019-08-28 12:38                                                                   ` Joel Fernandes
2019-08-28 13:58                                                                     ` Theodore Y. Ts'o
2019-08-28 20:39                                                                       ` Doug Anderson
2019-08-28 20:46                                                                         ` Johannes Berg
2019-08-28 21:00                                                                           ` Doug Anderson
2019-08-28 22:15                                                                         ` Rob Herring
2019-08-27 17:34                                                       ` Geert Uytterhoeven
2019-08-27 18:50                                                         ` Guenter Roeck
2019-08-27 14:06                                                   ` Thomas Gleixner
2019-08-27  7:33                                               ` Geert Uytterhoeven
2019-08-27 13:30                                                 ` Dmitry Vyukov
2019-08-27 14:28                                                   ` Paul E. McKenney
2019-08-27 15:06                                                     ` Thomas Gleixner
2019-08-27 15:25                                                       ` Paul E. McKenney
2019-08-28  8:57                                                         ` Dan Carpenter
2019-08-23 15:49                     ` Doug Anderson
2019-08-23 15:54                       ` Thomas Gleixner
2019-08-23 15:59                         ` Thomas Gleixner
2019-08-23 16:38                           ` Doug Anderson
2019-08-23 16:50                             ` Andrew Lunn
2019-08-23 17:50                               ` Doug Anderson
2019-08-23 18:10               ` Konstantin Ryabitsev
2019-08-26 22:19               ` Paul Mackerras
2019-08-27  7:02                 ` Stephen Rothwell
2019-08-23  9:09             ` Vlastimil Babka
2019-08-23 12:48               ` Bhaskar Chowdhury
2019-08-23  1:01   ` Dmitry Torokhov
2019-08-23  1:07   ` Doug Anderson [this message]
2019-08-23  1:18     ` Joel Fernandes
2019-09-05  8:12 ` Eric Wong

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='CAD=FV=UFSmZwydm7pgGXv-nMM2-9C0qZqGzOJo73b0y6+b4pZw@mail.gmail.com' \
    --to=dianders@chromium.org \
    --cc=brho@google.com \
    --cc=dtor@chromium.org \
    --cc=dvyukov@google.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hanwen@google.com \
    --cc=joelaf@google.com \
    --cc=jrn@google.com \
    --cc=ksummit-discuss@lists.linuxfoundation.org \
    --cc=rientjes@google.com \
    --cc=tfiga@chromium.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tytso@google.com \
    /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).