public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Laszlo Ersek" <lersek@redhat.com>
To: devel@edk2.groups.io, ardb@kernel.org, michael.d.kinney@intel.com
Cc: Rebecca Cran <rebecca@bsdio.com>,
	Liming Gao <gaoliming@byosoft.com.cn>,
	Bob Feng <bob.c.feng@intel.com>,
	Yuwei Chen <yuwei.chen@intel.com>,
	Michael Kubacki <mikuback@linux.microsoft.com>
Subject: Re: [edk2-devel] [Patch 3/4] BaseTools/Scripts/PatchCheck: Error if no Cc tags are present
Date: Wed, 21 Feb 2024 23:16:06 +0100	[thread overview]
Message-ID: <f7e5a936-b27e-133a-895d-e54fd546a2ac@redhat.com> (raw)
In-Reply-To: <CAMj1kXFnH6GO2HEtjX7CGN7xO0zsnHnLkB=uoP75LJWLdUXR_A@mail.gmail.com>

On 2/20/24 15:48, Ard Biesheuvel wrote:
> Hello Mike,
> 
> I understand the desire to be pedantic about cc'ing the right
> maintainers, but I'm not convinced this is the way.
> 
> - the presence of a cc: tag does not guarantee that the person was
> cc'ed - only git send-email will take CC:s in the message body into
> account by default (but this can also be disabled), but generally, the
> sender has to ensure the cc list is copied into the cc: field
> - the absence of a cc: tag does not imply that the person was not cc'ed,
> 
> - in Linux, the cc: tag has slightly different semantics from the ones
> we appear to be assuming here: a cc tag in patch going into the
> repository is a statement by the maintainer that the person in
> question has been cc'ed, may have some 'jurisdiction' over the area,
> but hasn't bothered to respond. IOW, it is to record the fact that
> this person has been given the opportunity to respond.
> 
> Then there is the matter of a maintainer that has reviewed the patch
> themselves. I usually remove the cc lines listing people that have
> reviewed/acked/tested the patch, as those tags already convey that the
> person is aware of it cc'ed or not.

I've noticed this (on patches you merged), and -- not having similar
maintainer experience in Linux -- I was surprised. I more or less
deduced the intent, but it felt a bit foreign (or at least novel!) to edk2.

To me, the greatest benefits of Cc's in commit messages are (as opposed
to command line specified Cc's):

- fine-grained: each patch can target a specific set of reviewers /
maintainers,

- long-lived: the CC list survives rebases / v2, v3 etc iterations! (Of
course, if a patch undergoes serious scope changes when revised, then
the Cc list will have to be updated manually. But that's quite rare.)

> 
> So perhaps it would be better to make this check part of the
> contributor workflow but not the GitHub PR/CI workflow?

I agree that adding Cc's to the commit message body is not fool-proof
(like you explain), but like Mike, I have no better idea for preventing
contributors from posting patches without properly CC'ing
reviewers/maintainers (be it with whatever particular CC'ing method they
prefer).

I tend to run PatchCheck locally (not solely relying on CI for that --
PatchCheck is quick and has no intrusive dependencies, plus seeing CI
fail just because of PatchCheck is super irritating), so in my workflow,
this patch would fit well. Of course, with the same effort of
remembering to run PatchCheck locally, I also remember to add Cc's in
the first place...

I admit that reviewer assignment is a significant shortcoming of the
email-based workflow. What we'd really need is a groups.io-level action
:) -- if the subject contains PATCH or Patch in brackets, but the body
lacks ^Cc or ^CC, *reject* the email. (Rejection gives the sender an
explanation.) Alas, rejection is currently only a manual action that's
available to moderators (and only on messages for senders that have not
been unmoderated yet).

So, my take: not perfect, but much better than nothing.

Laszlo

> 
> 
> On Sun, 18 Feb 2024 at 22:00, Michael D Kinney
> <michael.d.kinney@intel.com> wrote:
>>
>> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4694
>>
>> If no Cc tags are detected in a commit message, then generate an
>> error. All patches sent for review are required to provide the set
>> of maintainers and reviewers responsible for the directories/files
>> modified. The set of maintainers and reviewers are documented in
>> Maintainers.txt and can be retrieved using the script
>> BaseTools/Scripts/GetMaintainer.py.
>>
>> Cc: Rebecca Cran <rebecca@bsdio.com>
>> Cc: Liming Gao <gaoliming@byosoft.com.cn>
>> Cc: Bob Feng <bob.c.feng@intel.com>
>> Cc: Yuwei Chen <yuwei.chen@intel.com>
>> Cc: Michael Kubacki <mikuback@linux.microsoft.com>
>> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com>
>> ---
>>  BaseTools/Scripts/PatchCheck.py | 6 ++++--
>>  1 file changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/BaseTools/Scripts/PatchCheck.py b/BaseTools/Scripts/PatchCheck.py
>> index 158a2b30a5ce..415198e3824e 100755
>> --- a/BaseTools/Scripts/PatchCheck.py
>> +++ b/BaseTools/Scripts/PatchCheck.py
>> @@ -229,8 +229,10 @@ class CommitMessageCheck:
>>          )
>>
>>      def check_misc_signatures(self):
>> -        for sig in self.sig_types:
>> -            self.find_signatures(sig)
>> +        for sigtype in self.sig_types:
>> +            sigs = self.find_signatures(sigtype)
>> +            if sigtype == 'Cc' and len(sigs) == 0:
>> +                self.error('No Cc: tags for maintainers/reviewers found!')
>>
>>      cve_re = re.compile('CVE-[0-9]{4}-[0-9]{5}[^0-9]')
>>
>> --
>> 2.40.1.windows.1
>>
>>
>>
>>
>>
>>
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#115745): https://edk2.groups.io/g/devel/message/115745
Mute This Topic: https://groups.io/mt/104434584/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  parent reply	other threads:[~2024-02-21 22:16 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-18 20:59 [edk2-devel] [Patch 0/4] PatchCheck Updates Michael D Kinney
2024-02-18 20:59 ` [edk2-devel] [Patch 1/4] BaseTools/Scripts/PatchCheck: Update Author checks Michael D Kinney
2024-02-27 17:59   ` Rebecca Cran
2024-02-18 20:59 ` [edk2-devel] [Patch 2/4] BaseTools/Scripts/PatchCheck: Return CommitMessageCheck errors Michael D Kinney
2024-02-24  1:26   ` Michael Kubacki
2024-02-18 20:59 ` [edk2-devel] [Patch 3/4] BaseTools/Scripts/PatchCheck: Error if no Cc tags are present Michael D Kinney
2024-02-20 14:48   ` Ard Biesheuvel
2024-02-20 22:09     ` Michael D Kinney
2024-02-21 22:16     ` Laszlo Ersek [this message]
2024-02-21 23:32       ` Ard Biesheuvel
2024-02-24  1:26   ` Michael Kubacki
2024-02-18 20:59 ` [edk2-devel] [Patch 4/4] BaseTools/Scripts/PatchCheck: Error if commit modifies multiple packages Michael D Kinney
2024-02-24  1:27   ` Michael Kubacki
2024-02-27 19:28 ` [edk2-devel] [Patch 0/4] PatchCheck Updates Rebecca Cran

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-list 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=f7e5a936-b27e-133a-895d-e54fd546a2ac@redhat.com \
    --to=devel@edk2.groups.io \
    /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