From: Jason Merrill <jason@redhat.com>
To: Martin Sebor <msebor@gmail.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 20:40:15 -0400 [thread overview]
Message-ID: <013d6727-4008-b4b5-b793-c782a5ba8e10@redhat.com> (raw)
In-Reply-To: <71b4a023-efb2-6c6a-9ced-93cce7c96540@gmail.com>
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?
> 3) adds the PR component/nnnnn to each ChangeLog
This would be reverting the r12-771 change, which seems both unrelated
and undesirable.
> 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.
>> 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.
Jason
next prev parent reply other threads:[~2021-06-17 0:40 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 [this message]
2021-06-17 1:01 ` Martin Sebor
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=013d6727-4008-b4b5-b793-c782a5ba8e10@redhat.com \
--to=jason@redhat.com \
--cc=gcc@gcc.gnu.org \
--cc=hp@bitrange.com \
--cc=jakub@redhat.com \
--cc=jwakely@redhat.com \
--cc=msebor@gmail.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).