From: Martin Sebor <msebor@gmail.com>
To: Jason Merrill <jason@redhat.com>
Cc: Hans-Peter Nilsson <hp@bitrange.com>,
Jakub Jelinek <jakub@redhat.com>,
gcc Mailing List <gcc@gcc.gnu.org>,
Jonathan Wakely <jwakely@redhat.com>
Subject: Re: git gcc-commit-mklog doesn't extract PR number to ChangeLog
Date: Wed, 16 Jun 2021 19:01:31 -0600 [thread overview]
Message-ID: <5b2bace3-2f6f-ce1c-98ef-726c65686656@gmail.com> (raw)
In-Reply-To: <013d6727-4008-b4b5-b793-c782a5ba8e10@redhat.com>
On 6/16/21 6:40 PM, Jason Merrill wrote:
> On 6/16/21 8:17 PM, Martin Sebor wrote:
>> On 6/16/21 5:45 PM, Jason Merrill wrote:
>>> On Wed, Jun 16, 2021 at 5:46 PM Martin Sebor <msebor@gmail.com
>>> <mailto:msebor@gmail.com>> wrote:
>>>
>>> On 6/16/21 2:49 PM, Jason Merrill wrote:
>>> > On 6/15/21 11:42 PM, Jason Merrill wrote:
>>> >> On Tue, Jun 15, 2021 at 10:04 PM 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 6/15/21 6:56 PM, Hans-Peter Nilsson wrote:
>>> >> > On Fri, 11 Jun 2021, Martin Sebor via Gcc wrote:
>>> >> >
>>> >> >> On 6/11/21 11:32 AM, Jonathan Wakely wrote:
>>> >> >>> On Fri, 11 Jun 2021 at 18:02, Martin Sebor wrote:
>>> >> >>>> My objection is to making our policies and tools more
>>> >> restrictive
>>> >> >>>> than they need to be. We shouldn't expect everyone to
>>> study
>>> >> whole
>>> >> >>>> manuals just to figure out how to successfully
>>> commit a
>>> >> change (or
>>> >> >>>> learn how to format it just the right way). It should
>>> be easy.
>>> >> >>>
>>> >> >>> I agree, to some extent. But consistency is also
>>> good. The
>>> >> conventions
>>> >> >>> for GNU ChangeLog formatting exist for a reason, and so
>>> do the
>>> >> >>> conventions for good Git commit messages.
>>> >> >>>
>>> >> >>>> Setting this discussion aside for a moment and using a
>>> >> different
>>> >> >>>> example, the commit hook rejects commit messages that
>>> don't
>>> >> start
>>> >> >>>> ChangeLog entries with tabs. It also rejects commit
>>> >> messages that
>>> >> >>>> don't list all the same test files as those changed by
>>> the
>>> >> commit
>>> >> >>>> (and probably some others as well). That's in my view
>>> >> unnecessary
>>> >> >>>> when the hook could just replace the leading spaces
>>> with
>>> >> tabs and
>>> >> >>>> automatically mention all the tests.
>>> >> >>>>
>>> >> >>>> I see this proposal as heading in the same direction.
>>> >> Rather than
>>> >> >>>> making the script fix things up if we get them wrong
>>> it would
>>> >> reject
>>> >> >>>> the commit, requiring the user to massage the
>>> ChangeLog by
>>> >> hand into
>>> >> >>>> an unnecessarily rigid format.
>>> >> >>>
>>> >> >>> You cannot "fix things up" in a server-side receive
>>> hook,
>>> >> because
>>> >> >>> changing the commit message would alter the commit
>>> hash, which
>>> >> would
>>> >> >>> require the committer to do a rebase to proceed. That
>>> breaks the
>>> >> >>> expected behaviour and workflow of a git repo.
>>> >> >>>
>>> >> >>> You can use the scripts on the client side to verify
>>> your commit
>>> >> >>> message before pushing, so you don't have to be
>>> surprised
>>> >> when the
>>> >> >>> server rejects it.
>>> >> >>
>>> >> >> That sounds like a killer argument. Do we have shared
>>> >> client-side
>>> >> >> scripts that could fix things up for us, or are we each
>>> on our
>>> >> own
>>> >> >> to write them?
>>> >> >
>>> >> > I hope I got your view wrong. If not: the "scripts
>>> fixing
>>> >> > things up for us" direction is flawed (compared to the
>>> "scripts
>>> >> > rejecting bad formats"), unless offered as a non-default
>>> option;
>>> >> > please don't proceed.
>>> >> >
>>> >> > Why? For one, there'll always be bugs in the scripting.
>>> >> > Mitigate those situations: while wrongly rejecting a
>>> commit is
>>> >> > bad, wrongly "fixing things up" is worse, as a general
>>> rule.
>>> >> > Better avoid that. (There's probably a popular "pattern
>>> name"
>>> >> > for what I try to describe.)
>>> >>
>>> >> The word that comes to mind is Technophobia. Is it wise to
>>> trust
>>> >> compilers to transform programs from their source form into
>>> >> executables? What if there are bugs in either? What about
>>> the OS?
>>> >> The whole computer, or the Internet? Our cars?
>>> Fortunately, there's
>>> >> more to gain than to lose by trusting automation. If there
>>> weren't
>>> >> human progress would be stuck sometime in the 1700's.
>>> >>
>>> >> But we're not talking about anything anywhere that
>>> sophisticated
>>> >> here: a sed script to copy and paste a piece of text in
>>> >> the description of a change from one place to another. It's
>>> been
>>> >> done a few times before with more important data than
>>> ChangeLogs.
>>> >>
>>> >>
>>> >> git gcc-commit-mklog already automates most of the process. It
>>> could
>>> >> also automate adding [PRxxxxx] to the first line. Is that what
>>> you're
>>> >> asking for?
>>> >
>>> > Like, say:
>>>
>>> I don't think this solves the problem Xionghu Luo was asking about:
>>> https://gcc.gnu.org/pipermail/gcc/2021-June/236346.html
>>>
>>>
>>> Indeed, their problem was not mentioning the PR in the testcase,
>>> which a script isn't going to fix.
>>>
>>> i.e., they did have a [PRnnnn] in the one line subject but not in
>>> their ChangeLog entries. It also not clear if they used mklog.py
>>> at all. IME, mklog.py already puts in a [PRnnnn] near the top of
>>> a patch if it finds in one of the tests. Though it doesn't seem
>>> to put in the ChangeLog entries. Odd.
>>>
>>>
>>> It currently puts in
>>>
>>> PR comp/nnnnn
>>>
>>> at the beginning of the ChangeLog entries; it used to put them in the
>>> entries for each ChangeLog file, but that changed in r12-771. My
>>> patch also adds the [PRnnnn] to the subject line.
>>
>> To say I'm not good at Python would be an understatement but I hacked
>> up the attached patch that:
>>
>> 1) extracts PR numbers from test names,
>> 2) gets the component for each PR from Bugzilla,
>
> That seems useful for testcases like the OP's that put the PR number in
> the filename rather than a comment. Maybe submit it as a patch?
Will do.
>
>> 3) adds the PR component/nnnnn to each ChangeLog
>
> This would be reverting the r12-771 change, which seems both unrelated
> and undesirable.
Now I'm confused. Isn't that just what caused the problem to begin
with? (The bug not being updated with the commit because it's not
in the ChangeLog entries?)
>
>> Running the hacked up script with -p on the patch for PR 100085 prints
>> the following:
>>
>> Resolves:
>> PR 100085/target - Bad code for union transfer from __float128 to
>> vector types
>
> You have the number and component switched.
Doh!
>
>>> We could do various cleanup in the 'commit-msg' hook on the user
>>> side. Or, probably better, git gcc-verify could clean up some of the
>>> issues it finds.
>>
>> I'm not familiar with these. Where should I look for them to learn
>> how to do this?
>
> We currently have no commit-msg hook; see git help hooks for a
> description, or .git/hooks/commit-msg.sample for an example hook.
>
> git gcc-verify is an alias to run
> contrib/gcc-changelog/git_check_commit.py , which is the same checker
> that runs on the server. I don't know how hard it would be to adjust it
> to have a fixup mode as well, for when it is run from git gcc-verify.
Thanks, I'll see if I can find some time to look at this.
Martin
>
> Jason
>
next prev parent reply other threads:[~2021-06-17 1:01 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4c1114a7-2377-99e4-d451-1a086857e991@linux.ibm.com>
2021-06-10 5:22 ` Xionghu Luo
2021-06-10 6:17 ` Martin Liška
2021-06-10 6:25 ` Xionghu Luo
2021-06-10 8:07 ` Martin Liška
2021-06-10 6:35 ` Tobias Burnus
2021-06-10 8:07 ` Martin Liška
2021-06-10 9:44 ` Jonathan Wakely
2021-06-10 10:01 ` Jonathan Wakely
2021-06-10 10:08 ` Jakub Jelinek
2021-06-10 10:40 ` Jonathan Wakely
2021-06-10 14:55 ` Martin Sebor
2021-06-10 15:54 ` Tobias Burnus
2021-06-10 16:05 ` Jonathan Wakely
2021-06-10 15:56 ` Jonathan Wakely
2021-06-10 17:06 ` Martin Sebor
2021-06-10 17:20 ` Martin Sebor
2021-06-10 17:30 ` Jakub Jelinek
2021-06-10 18:55 ` Martin Sebor
2021-06-10 19:09 ` Jakub Jelinek
2021-06-10 21:16 ` Martin Sebor
2021-06-10 21:28 ` Jakub Jelinek
2021-06-10 21:56 ` Martin Sebor
2021-06-11 9:13 ` Jonathan Wakely
2021-06-11 17:02 ` Martin Sebor
2021-06-11 17:05 ` Jakub Jelinek
2021-06-11 17:32 ` Jonathan Wakely
2021-06-11 18:01 ` Martin Sebor
2021-06-11 18:14 ` Jonathan Wakely
2021-06-16 0:56 ` Hans-Peter Nilsson
2021-06-16 2:03 ` Martin Sebor
2021-06-16 3:42 ` Jason Merrill
2021-06-16 14:31 ` Martin Sebor
2021-06-16 20:49 ` Jason Merrill
2021-06-16 21:45 ` Martin Sebor
2021-06-16 23:45 ` Jason Merrill
2021-06-17 0:17 ` Martin Sebor
2021-06-17 0:40 ` Jason Merrill
2021-06-17 1:01 ` Martin Sebor [this message]
2021-06-17 1:46 ` Jason Merrill
2021-06-17 10:18 ` Jonathan Wakely
2021-06-17 14:55 ` Martin Sebor
2021-06-17 15:11 ` Michael Matz
2021-06-17 15:33 ` Martin Sebor
2021-06-17 16:31 ` Jakub Jelinek
2021-06-17 16:32 ` Jonathan Wakely
2021-06-17 18:00 ` Martin Sebor
2021-06-17 10:08 ` Richard Earnshaw
2021-06-17 17:12 ` Joseph Myers
2021-06-17 17:21 ` Jason Merrill
2021-06-17 17:21 ` Jakub Jelinek
2021-06-18 9:32 ` Richard Earnshaw
2021-06-18 11:05 ` [Patch] contrib/mklog.py: Improve PR handling (was: git gcc-commit-mklog doesn't extract PR number to ChangeLog) Tobias Burnus
2021-06-18 11:10 ` Jonathan Wakely
2021-06-18 11:24 ` Jakub Jelinek
2021-06-18 11:25 ` Tobias Burnus
2021-06-18 11:40 ` Jonathan Wakely
2021-06-21 7:28 ` Martin Liška
2021-06-18 16:40 ` [Patch] contrib/mklog.py: Improve PR handling Martin Sebor
2021-06-18 14:41 ` [Patch] contrib/mklog.py: Improve PR handling (was: git gcc-commit-mklog doesn't extract PR number to ChangeLog) Jason Merrill
2021-06-18 16:47 ` [Patch] contrib/mklog.py: Improve PR handling Martin Sebor
2021-06-18 16:59 ` Iain Sandoe
2021-06-21 6:42 ` [Patch] contrib/mklog.py: Improve PR handling (was: git gcc-commit-mklog doesn't extract PR number to ChangeLog) Tobias Burnus
2021-06-21 7:26 ` Martin Liška
2021-06-21 8:02 ` Iain Sandoe
2021-06-21 7:54 ` [Patch, v2] contrib/mklog.py: Improve PR handling (was: " Tobias Burnus
2021-06-21 8:09 ` Martin Liška
2021-06-21 8:37 ` Tobias Burnus
2021-06-21 12:53 ` Martin Liška
2021-06-21 13:26 ` Tobias Burnus
2021-06-22 7:30 ` [RFC][PATCH] contrib: add git-commit-mklog wrapper Martin Liška
2021-06-22 8:23 ` Tobias Burnus
2021-06-22 8:31 ` Martin Liška
2021-06-22 18:40 ` Jason Merrill
2021-06-23 7:40 ` Martin Liška
2021-06-16 13:46 ` git gcc-commit-mklog doesn't extract PR number to ChangeLog Jonathan Wakely
2021-06-16 17:44 ` Hans-Peter Nilsson
2021-06-11 9:08 ` Jonathan Wakely
2021-06-11 9:35 ` Jonathan Wakely
2021-06-11 15:43 ` Joseph Myers
2021-06-11 17:02 ` Jonathan Wakely
2021-06-10 11:51 ` [Patch] contrig/gcc-changelog: Check that PR in subject in in changelog (was:: git gcc-commit-mklog doesn't extract PR number to ChangeLog) Tobias Burnus
2021-06-10 11:54 ` [Patch] contrig/gcc-changelog: Check that PR in subject in in changelog Florian Weimer
2021-06-10 12:45 ` Jonathan Wakely
2021-06-10 9:41 ` git gcc-commit-mklog doesn't extract PR number to ChangeLog Jonathan Wakely
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=5b2bace3-2f6f-ce1c-98ef-726c65686656@gmail.com \
--to=msebor@gmail.com \
--cc=gcc@gcc.gnu.org \
--cc=hp@bitrange.com \
--cc=jakub@redhat.com \
--cc=jason@redhat.com \
--cc=jwakely@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).