public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jonathan Wakely <jwakely.gcc@gmail.com>
To: Martin Sebor <msebor@gmail.com>
Cc: Marek Polacek <polacek@redhat.com>, gcc mailing list <gcc@gcc.gnu.org>
Subject: Re: where is PRnnnn required again?
Date: Wed, 7 Jul 2021 23:15:46 +0100	[thread overview]
Message-ID: <CAH6eHdRsKJ=B7G=3=NntN5wzX=zRA4ktzyEmh2o7RtQ31LPkew@mail.gmail.com> (raw)
In-Reply-To: <fe860c74-c068-212e-4a7b-04829ef32eab@gmail.com>

On Wed, 7 Jul 2021, 22:35 Martin Sebor, <msebor@gmail.com> wrote:

> On 7/7/21 2:42 PM, Jonathan Wakely wrote:
> >
> >
> > On Wed, 7 Jul 2021, 17:39 Martin Sebor, <msebor@gmail.com
> > <mailto:msebor@gmail.com>> wrote:
> >
> >     On 7/6/21 4:09 PM, Jonathan Wakely wrote:
> >      >
> >      >
> >      > On Tue, 6 Jul 2021, 22:45 Martin Sebor via Gcc, <gcc@gcc.gnu.org
> >     <mailto:gcc@gcc.gnu.org>
> >      > <mailto:gcc@gcc.gnu.org <mailto:gcc@gcc.gnu.org>>> wrote:
> >      >
> >      >     On 7/6/21 3:36 PM, Marek Polacek wrote:
> >      >      > On Tue, Jul 06, 2021 at 03:20:26PM -0600, Martin Sebor via
> >     Gcc wrote:
> >      >      >> I came away from the recent discussion of ChangeLogs
> >     requirements
> >      >      >> with the impression that the PRnnnn bit should be in the
> >     subject
> >      >      >> (first) line and also above the ChangeLog part but
> >     doesn't need
> >      >      >> to be repeated again in the ChangeLog entries.  But my
> commit
> >      >      >> below was rejected last Friday with the subsequent
> >     error.  Adding
> >      >      >> PR middle-end/98871 to the ChangeLog entry let me push
> >     the change:
> >      >      >>
> >      >      >>
> >     https://gcc.gnu.org/g:6feb628a706e86eb3f303aff388c74bdb29e7381
> >      >      >>
> >      >      >> I just had the same error happen now, again with what
> >     seems like
> >      >      >> a valid commit message.  Did I misunderstand something or
> has
> >      >      >> something changed recently?
> >      >      >>
> >      >      >> Martin
> >      >      >>
> >      >      >> commit 8a6d08bb49c2b9585c2a2adbb3121f6d9347b780 (HEAD ->
> >     master)
> >      >      >> Author: Martin Sebor <msebor@redhat.com
> >     <mailto:msebor@redhat.com> <mailto:msebor@redhat.com
> >     <mailto:msebor@redhat.com>>>
> >      >      >> Date:   Fri Jul 2 16:16:31 2021 -0600
> >      >      >>
> >      >      >>      Improve warning suppression for inlined functions
> >     [PR98512].
> >      >      >>
> >      >      >>      Resolves:
> >      >      >>      PR middle-end/98871 - Cannot silence
> >     -Wmaybe-uninitialized at
> >      >      >> declaration si
> >      >      >> te
> >      >      >>      PR middle-end/98512 - #pragma GCC diagnostic ignored
> >      >     ineffective in
> >      >      >> conjunct
> >      >      >> ion with alias attribute
> >      >      >
> >      >      > This should be just
> >      >      >
> >      >      >       PR middle-end/98871
> >      >      >       PR middle-end/98512
> >      >      >
> >      >      > , no?
> >      >
> >      >     Does it matter if there's text after the PR ...?
> >      >
> >      >
> >      >
> >      > Yes. With extra text the whole line is just treated as arbitrary
> >     text,
> >      > not a "PR component/nnnn" string. So with the extra text it won't
> be
> >      > added to the ChangeLog file, and won't match the PR in the
> >     subject line.
> >      >
> >      >        I managed to push
> >      >
> >      > https://gcc.gnu.org/pipermail/gcc-cvs/2021-July/350316.html
> >      >
> >      >     that uses the same style earlier today
> >      >
> >      >
> >      > But will it add the PR numbers to the ChangeLog? I think the
> >     answer is
> >      > no (in which case you could edit the ChangeLog tomorrow if you
> >     want them
> >      > to be in there).
> >
> >     It updated Bugzilla but it didn't add the PR numbers to the ChangeLog
> >     entries.  I still don't (obviously) understand the rules the hook
> uses
> >     for what to update or the rationale for them.  It seems as though
> >     the PR in the subject is used to update only Bugzilla but not also
> >     update the ChangeLogs (why not?)
> >
> >
> > Because they are two completely separate processes. Verifying the commit
> > message format is done by a git hook, and you can run exactly the same
> > checks locally before pushing a commit.
> >
> > Updating bugzilla is done by a separate and different process, which has
> > been in place for years (decades?) before we switched to git.
>
> I don't mean to turn this into a contentious back and forth but
> "because this is how it works" or "because this is how it's been
> done for eons" aren't a rationale, at least not a satisfying one.
>

You didn't ask for rationale, you asked about the rules used and why you
got that result. The reason is that "find the PR for the ChangeLog" and
"find the PR for bugzilla" are done separately by different rules.

And that's for good reasons. We want to update bugzilla for any mention of
a PR in the commit message, but we only want to list a PR in the ChangeLog
if it's actually what the commit directly addresses.

So we need to be able to distinguish  "mentions it in some way, add a
comment to bugzilla" from "really addresses this PR, use it in the
ChangeLog".

For example, in a commit log I might say "as discussed in the comments of
PR 5678, this does blah blah" and that deserves to add a comment to that
PR, but not to use that PR in the ChangeLog file. So there can't be only
one rule.

Your discussion seems to all be centred around the "really addresses this
PR" case. While improving that might be useful, you need to be conscious of
the other case too. Two different use cases are hard to address with one
rule.






> Do you not agree that it would be better to be able to mention
> the PR or PRs just once and have all our scripts work with it?
>

Is that possible though? Obviously "everything is simple and works
perfectly" sounds good in theory. Can you do it?


If you do then is something keeping us from making those changes?
>

The usual. Somebody needs to patch the scripts and the docs. I'm happy
enough with the way it works now to not change anything (and I'm not going
to try to change those docs again).




> Martin
>
> PS To be clear, I'm suggesting that all these work the same and
> update Bugzilla as well as ChangeLogs, both with and without
> a space after PR and both with and without a component name after
> the PR.


> 1) PR only in title.
>    Fix foobar [PR12345]
>
>    gcc/ChangeLog:
>      * foo.c (bar): Fix it.
>
> 2) PR (with or without additional text after it) after title and
>     before ChageLogs.
>    Fix foobar.
>
>    PR12345 - foobar broken
>
>    gcc/ChangeLog:
>      * foo.c (bar): Fix it.
>
> 3) PR only in ChangeLogs.
>    Fix foobar.
>
>    gcc/ChangeLog:
>      PR 12345
>      * foo.c (bar): Fix it.
>


Now add a descriptive commit message and consider how you want it to work
if some sentence in the middle of that message mentions a PR in some
context other than fixing that PR. e.g.

Fix foobar.

The fix for PR 9999 caused a bug, which was reported as PR 12345. The fix
is similar to how PR 8888 was fixed.

   gcc/ChangeLog:
     PR 12345
     * foo.c (bar): Fix it.

This will (I believe) add a comment to three bugzilla reports, but only use
12345 in the ChangeLog file. And I think that's exactly what we want to
happen.

You need some rule for finding the important PR which is not the same as
the rule used for bugzilla. By all means improve the rule, but I don't see
how you can have one rule for all purposes.

As I've previously suggested on this mailing list, and Jason suggested
again today, we could allow this to update the ChangeLog:

"\tPR12345 - foobar broken"

which currently isn't matched, because there is text after the number. That
does update bugzilla, because that rule doesn't care about text before or
after the number.

This seems to be what's confusing you. You have used the wrong format for
the ChangeLog pattern, and wondered why it can still update bugzilla. The
answer is that the bugzilla update is less picky, for the reasons above.

  parent reply	other threads:[~2021-07-07 22:15 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-06 21:20 Martin Sebor
2021-07-06 21:36 ` Marek Polacek
2021-07-06 21:44   ` Martin Sebor
2021-07-06 22:09     ` Jonathan Wakely
2021-07-07 16:39       ` Martin Sebor
2021-07-07 20:42         ` Jonathan Wakely
2021-07-07 21:35           ` Martin Sebor
2021-07-07 21:53             ` Marek Polacek
2021-07-07 22:18               ` Martin Sebor
2021-07-07 22:24                 ` Jonathan Wakely
2021-07-07 22:58                   ` Martin Sebor
2021-07-07 23:03                     ` David Malcolm
2021-07-08  8:26                     ` Jonathan Wakely
2021-07-08 18:58                       ` Martin Sebor
2021-07-07 22:15             ` Jonathan Wakely [this message]
2021-07-07 23:38               ` Martin Sebor
2021-07-07 17:51 ` Jakub Jelinek
2021-07-07 19:01   ` Martin Sebor
2021-07-07 21:01   ` Jason Merrill

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='CAH6eHdRsKJ=B7G=3=NntN5wzX=zRA4ktzyEmh2o7RtQ31LPkew@mail.gmail.com' \
    --to=jwakely.gcc@gmail.com \
    --cc=gcc@gcc.gnu.org \
    --cc=msebor@gmail.com \
    --cc=polacek@redhat.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 read-only IMAP folder(s) and NNTP newsgroup(s).