From: Kees Cook <keescook@chromium.org>
To: Joe Perches <joe@perches.com>
Cc: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>,
ksummit-discuss@lists.linuxfoundation.org,
Dan Carpenter <dan.carpenter@oracle.com>,
Linux Media Mailing List <linux-media@vger.kernel.org>
Subject: Re: [Ksummit-discuss] [PATCH] media: add a subsystem profile documentation
Date: Wed, 25 Sep 2019 11:40:08 -0700 [thread overview]
Message-ID: <201909251127.D0C517171E@keescook> (raw)
In-Reply-To: <5d71311232fd6d4aa0fab038512eab933c13a722.camel@perches.com>
On Wed, Sep 25, 2019 at 10:13:37AM -0700, Joe Perches wrote:
> On Thu, 2019-09-19 at 09:56 +0300, Dan Carpenter wrote:
> > When I sent a patch, I use get_maintainer.pl then I add whoever the
> > wrote the commit from the Fixes tag. Then I remove Colin King and Kees
> > Cook from the CC list because they worked all over the tree and I know
> > them. I also normally remove LKML if there is another mailing list but
> > at least one subsystem uses LKML for patchwork so this isn't safe.
> >
> > So the safest instructions are "Use get_matainer.pl and add the person
> > who wrote the commit in the Fixes tag".
>
> Maybe add this:
>
> Add the signers of any commit referenced in a "Fixes: <commit>" line
> of a patch description.
Oh yes please! I've always done this manually, so that's a nice bit of
automation. :)
>
> ---
> scripts/get_maintainer.pl | 38 +++++++++++++++++++++++++++++++++++++-
> 1 file changed, 37 insertions(+), 1 deletion(-)
>
> diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
> index 5ef59214c555..34085d146fa2 100755
> --- a/scripts/get_maintainer.pl
> +++ b/scripts/get_maintainer.pl
> @@ -26,6 +26,7 @@ my $email = 1;
> my $email_usename = 1;
> my $email_maintainer = 1;
> my $email_reviewer = 1;
> +my $email_fixes = 1;
> my $email_list = 1;
> my $email_moderated_list = 1;
> my $email_subscriber_list = 0;
> @@ -249,6 +250,7 @@ if (!GetOptions(
> 'r!' => \$email_reviewer,
> 'n!' => \$email_usename,
> 'l!' => \$email_list,
> + 'fixes!' => \$email_fixes,
> 'moderated!' => \$email_moderated_list,
> 's!' => \$email_subscriber_list,
> 'multiline!' => \$output_multiline,
> @@ -503,6 +505,7 @@ sub read_mailmap {
> ## use the filenames on the command line or find the filenames in the patchfiles
>
> my @files = ();
> +my @fixes = (); # If a patch description includes Fixes: lines
> my @range = ();
> my @keyword_tvi = ();
> my @file_emails = ();
> @@ -568,6 +571,8 @@ foreach my $file (@ARGV) {
> my $filename2 = $2;
> push(@files, $filename1);
> push(@files, $filename2);
> + } elsif (m/^Fixes:\s+([0-9a-fA-F]{6,40})/) {
Is "6" a safe lower bound here? I thought 12 was the way to go?
$ git log | egrep 'Fixes: [a-f0-9]{1,40}' | col2 | awk '{print length }' | sort | uniq -c | sort -n | tail
238 8
300 7
330 14
344 6
352 11
408 40
425 10
735 16
1866 13
31446 12
Hmpf, 6 is pretty high up there...
> + push(@fixes, $1) if ($email_fixes);
> } elsif (m/^\+\+\+\s+(\S+)/ or m/^---\s+(\S+)/) {
> my $filename = $1;
> $filename =~ s@^[^/]*/@@;
> @@ -598,6 +603,7 @@ foreach my $file (@ARGV) {
> }
>
> @file_emails = uniq(@file_emails);
> +@fixes = uniq(@fixes);
>
> my %email_hash_name;
> my %email_hash_address;
> @@ -612,7 +618,6 @@ my %deduplicate_name_hash = ();
> my %deduplicate_address_hash = ();
>
> my @maintainers = get_maintainers();
> -
> if (@maintainers) {
> @maintainers = merge_email(@maintainers);
> output(@maintainers);
> @@ -927,6 +932,10 @@ sub get_maintainers {
> }
> }
>
> + foreach my $fix (@fixes) {
> + vcs_add_commit_signers($fix, "blamed_fixes");
> + }
> +
> foreach my $email (@email_to, @list_to) {
> $email->[0] = deduplicate_email($email->[0]);
> }
> @@ -1031,6 +1040,7 @@ MAINTAINER field selection options:
> --roles => show roles (status:subsystem, git-signer, list, etc...)
> --rolestats => show roles and statistics (commits/total_commits, %)
> --file-emails => add email addresses found in -f file (default: 0 (off))
> + --fixes => for patches, add signatures of commits with 'Fixes: <commit>' (default: 1 (on))
Should "Tested-by" and "Co-developed-by" get added to @signature_tags ?
> --scm => print SCM tree(s) if any
> --status => print status if any
> --subsystem => print subsystem name if any
> @@ -1730,6 +1740,32 @@ sub vcs_is_hg {
> return $vcs_used == 2;
> }
>
> +sub vcs_add_commit_signers {
> + return if (!vcs_exists());
> +
> + my ($commit, $desc) = @_;
> + my $commit_count = 0;
> + my $commit_authors_ref;
> + my $commit_signers_ref;
> + my $stats_ref;
> + my @commit_authors = ();
> + my @commit_signers = ();
> + my $cmd;
> +
> + $cmd = $VCS_cmds{"find_commit_signers_cmd"};
> + $cmd =~ s/(\$\w+)/$1/eeg; #substitute variables in $cmd
> +
> + ($commit_count, $commit_signers_ref, $commit_authors_ref, $stats_ref) = vcs_find_signers($cmd, "");
> + @commit_authors = @{$commit_authors_ref} if defined $commit_authors_ref;
> + @commit_signers = @{$commit_signers_ref} if defined $commit_signers_ref;
> +
> + foreach my $signer (@commit_signers) {
> + $signer = deduplicate_email($signer);
> + }
> +
> + vcs_assign($desc, 1, @commit_signers);
> +}
@commit_authors is unused?
> +
> sub interactive_get_maintainers {
> my ($list_ref) = @_;
> my @list = @$list_ref;
>
>
> _______________________________________________
> Ksummit-discuss mailing list
> Ksummit-discuss@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/ksummit-discuss
Yay! :)
--
Kees Cook
_______________________________________________
Ksummit-discuss mailing list
Ksummit-discuss@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/ksummit-discuss
next prev parent reply other threads:[~2019-09-25 18:40 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-11 15:48 [Ksummit-discuss] [PATCH v2 0/3] Maintainer Entry Profiles Dan Williams
2019-09-11 15:48 ` [Ksummit-discuss] [PATCH v2 1/3] MAINTAINERS: Reclaim the P: tag for Maintainer Entry Profile Dan Williams
2019-09-13 15:37 ` Mauro Carvalho Chehab
2019-09-11 15:48 ` [Ksummit-discuss] [PATCH v2 2/3] Maintainer Handbook: " Dan Williams
2019-09-16 12:35 ` Jani Nikula
2019-10-01 13:55 ` Jonathan Corbet
2019-10-01 18:17 ` Martin K. Petersen
2019-11-07 20:13 ` Jonathan Corbet
2019-11-08 2:41 ` Dan Williams
2019-09-11 15:48 ` [Ksummit-discuss] [PATCH v2 3/3] libnvdimm, MAINTAINERS: " Dan Williams
2019-09-11 17:42 ` Vishal Verma
2019-09-11 18:43 ` Dan Carpenter
2019-09-11 22:11 ` Jens Axboe
2019-09-12 7:41 ` Dan Williams
[not found] ` <CANiq72k2so3ZcqA3iRziGY=Shd_B1=qGoXXROeAF7Y3+pDmqyA@mail.gmail.com>
2019-09-12 10:18 ` Joe Perches
2019-09-13 7:09 ` Jonathan Corbet
2019-09-13 11:48 ` Dan Carpenter
2019-09-13 12:18 ` Dan Williams
2019-09-13 15:00 ` Randy Dunlap
2019-09-13 15:46 ` Rob Herring
2019-09-13 16:42 ` Joe Perches
2019-09-13 19:32 ` Rob Herring
2019-09-13 17:57 ` Geert Uytterhoeven
2019-09-16 12:42 ` Jani Nikula
[not found] ` <20190917161608.GA12866@ziepe.ca>
2019-09-17 21:59 ` Dan Williams
2019-09-13 21:44 ` Martin K. Petersen
2019-09-16 7:01 ` Dan Carpenter
2019-09-16 17:08 ` Martin K. Petersen
2019-09-16 17:15 ` Mark Brown
2019-09-11 20:30 ` Joe Perches
2019-09-13 16:19 ` [Ksummit-discuss] [PATCH] media: add a subsystem profile documentation Mauro Carvalho Chehab
2019-09-13 16:19 ` Mauro Carvalho Chehab
2019-09-17 3:35 ` [Ksummit-discuss] single maintainer profile directory (was Re: [PATCH] media: add a subsystem profile documentation) Kees Cook
2019-09-17 13:28 ` Mauro Carvalho Chehab
2019-09-17 16:33 ` Kees Cook
2019-09-18 11:23 ` Mauro Carvalho Chehab
2019-09-18 17:39 ` Kees Cook
2019-09-18 18:35 ` Mauro Carvalho Chehab
2019-09-21 19:13 ` Jonathan Corbet
2019-09-21 19:45 ` Mauro Carvalho Chehab
2019-09-23 22:45 ` Kees Cook
2019-09-18 12:36 ` [Ksummit-discuss] [PATCH] media: add a subsystem profile documentation Laurent Pinchart
2019-09-18 13:57 ` Mauro Carvalho Chehab
2019-09-18 17:27 ` Laurent Pinchart
2019-09-18 18:48 ` Mauro Carvalho Chehab
2019-09-19 7:08 ` Dan Carpenter
2019-09-20 5:29 ` Joe Perches
2019-09-20 14:09 ` Daniel Vetter
2019-09-19 6:56 ` Dan Carpenter
2019-09-19 7:22 ` Geert Uytterhoeven
2019-09-19 8:49 ` Jani Nikula
2019-09-19 8:58 ` Geert Uytterhoeven
2019-09-19 9:52 ` Jani Nikula
2019-09-20 14:53 ` Laurent Pinchart
2019-09-20 14:59 ` Doug Anderson
2019-09-21 8:56 ` Jani Nikula
2019-09-23 15:58 ` Doug Anderson
2019-09-23 16:04 ` Jonathan Corbet
2019-09-19 9:52 ` Mauro Carvalho Chehab
2019-09-25 17:13 ` Joe Perches
2019-09-25 18:40 ` Kees Cook [this message]
2019-09-26 15:14 ` Joe Perches
2019-09-26 15:53 ` Kees Cook
2019-09-26 16:02 ` Joe Perches
2019-09-26 16:24 ` Kees Cook
2019-09-26 10:25 ` Geert Uytterhoeven
2019-09-18 13:59 ` [Ksummit-discuss] [PATCH v2] " Mauro Carvalho Chehab
[not found] ` <1e479f17-dbc8-b44d-bd1e-4229a6dbf151@collabora.com>
2019-09-18 14:11 ` Mauro Carvalho Chehab
2019-09-11 16:40 ` [Ksummit-discuss] [PATCH v2 0/3] Maintainer Entry Profiles Martin K. Petersen
2019-09-12 13:31 ` Bart Van Assche
2019-09-12 15:34 ` Joe Perches
2019-09-12 20:01 ` Bart Van Assche
2019-09-12 20:34 ` Joe Perches
2019-09-13 14:26 ` Rob Herring
2019-09-13 18:42 ` Joe Perches
2019-09-13 19:17 ` Mauro Carvalho Chehab
2019-09-13 20:33 ` Joe Perches
2019-09-13 12:56 ` Matthew Wilcox
2019-09-13 13:54 ` Mauro Carvalho Chehab
2019-09-13 14:59 ` Guenter Roeck
2019-09-13 22:03 ` Martin K. Petersen
2019-09-12 13:10 ` Bart Van Assche
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=201909251127.D0C517171E@keescook \
--to=keescook@chromium.org \
--cc=dan.carpenter@oracle.com \
--cc=joe@perches.com \
--cc=ksummit-discuss@lists.linuxfoundation.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab+samsung@kernel.org \
/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).