diff mbox

[2/5] get_maintainer: Teach get_maintainer.pl about the new "R:" tag

Message ID 20170503094351.5040-3-pbonzini@redhat.com
State New
Headers show

Commit Message

Paolo Bonzini May 3, 2017, 9:43 a.m. UTC
From: Joe Perches <joe@perches.com>

We can now designate reviewers in the MAINTAINERS file with the new
"R:" tag, so this commit teaches get_maintainers.pl to add their
email addresses.

Cherry picked from Linux commit c1c3f2c906e35bcb6e4cdf5b8e077660fead14fe,
with fixes to avoid \C as in QEMU commit ba10f729f1 ("get_maintainer.pl:
\C is deprecated", 2015-09-25).

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 scripts/get_maintainer.pl | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

Comments

Thomas Huth May 3, 2017, 10:45 a.m. UTC | #1
On 03.05.2017 11:43, Paolo Bonzini wrote:
> From: Joe Perches <joe@perches.com>
> 
> We can now designate reviewers in the MAINTAINERS file with the new
> "R:" tag, so this commit teaches get_maintainers.pl to add their
> email addresses.
> 
> Cherry picked from Linux commit c1c3f2c906e35bcb6e4cdf5b8e077660fead14fe,
> with fixes to avoid \C as in QEMU commit ba10f729f1 ("get_maintainer.pl:
> \C is deprecated", 2015-09-25).

Upstream linux.git changed it to [A-Z] in commit ce8155f7a ... so maybe
use that in QEMU, too, so we stay closer to the Linux version?

 Thomas
Paolo Bonzini May 3, 2017, 11:53 a.m. UTC | #2
On 03/05/2017 12:45, Thomas Huth wrote:
> On 03.05.2017 11:43, Paolo Bonzini wrote:
>> From: Joe Perches <joe@perches.com>
>>
>> We can now designate reviewers in the MAINTAINERS file with the new
>> "R:" tag, so this commit teaches get_maintainers.pl to add their
>> email addresses.
>>
>> Cherry picked from Linux commit c1c3f2c906e35bcb6e4cdf5b8e077660fead14fe,
>> with fixes to avoid \C as in QEMU commit ba10f729f1 ("get_maintainer.pl:
>> \C is deprecated", 2015-09-25).
> 
> Upstream linux.git changed it to [A-Z] in commit ce8155f7a ... so maybe
> use that in QEMU, too, so we stay closer to the Linux version?

We used "." in ba10f729f1, so I stayed consistent with that one.  But we
could also change those periods to [A-Z] en masse.

Paolo
diff mbox

Patch

diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 8261bcb1ad..2bde32f64b 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -21,6 +21,7 @@  my $lk_path = "./";
 my $email = 1;
 my $email_usename = 1;
 my $email_maintainer = 1;
+my $email_reviewer = 1;
 my $email_list = 1;
 my $email_subscriber_list = 0;
 my $email_git = 0;
@@ -180,6 +181,7 @@  if (!GetOptions(
 		'remove-duplicates!' => \$email_remove_duplicates,
 		'mailmap!' => \$email_use_mailmap,
 		'm!' => \$email_maintainer,
+		'r!' => \$email_reviewer,
 		'n!' => \$email_usename,
 		'l!' => \$email_list,
 		's!' => \$email_subscriber_list,
@@ -238,7 +240,8 @@  if ($sections) {
 }
 
 if ($email &&
-    ($email_maintainer + $email_list + $email_subscriber_list +
+    ($email_maintainer + $email_reviewer +
+     $email_list + $email_subscriber_list +
      $email_git + $email_git_blame) == 0) {
     die "$P: Please select at least 1 email option\n";
 }
@@ -718,6 +721,7 @@  MAINTAINER field selection options:
     --hg-since => hg history to use (default: $email_hg_since)
     --interactive => display a menu (mostly useful if used with the --git option)
     --m => include maintainer(s) if any
+    --r => include reviewer(s) if any
     --n => include name 'Full Name <addr\@domain.tld>'
     --l => include list(s) if any
     --s => include subscriber only list(s) if any
@@ -1022,6 +1026,22 @@  sub add_categories {
 		    my $role = get_maintainer_role($i);
 		    push_email_addresses($pvalue, $role);
 		}
+	    } elsif ($ptype eq "R") {
+		my ($name, $address) = parse_email($pvalue);
+		if ($name eq "") {
+		    if ($i > 0) {
+			my $tv = $typevalue[$i - 1];
+			if ($tv =~ m/^(.):\s*(.*)/) {
+			    if ($1 eq "P") {
+				$name = $2;
+				$pvalue = format_email($name, $address, $email_usename);
+			    }
+			}
+		    }
+		}
+		if ($email_reviewer) {
+		    push_email_addresses($pvalue, 'reviewer');
+		}
 	    } elsif ($ptype eq "T") {
 		push(@scm, $pvalue);
 	    } elsif ($ptype eq "W") {