[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] scripts/get_maintainer: Use .ignoredmailmap to ignore invali
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH] scripts/get_maintainer: Use .ignoredmailmap to ignore invalid emails |
Date: |
Wed, 1 Jul 2020 17:07:31 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 |
On 7/1/20 4:25 PM, Paolo Bonzini wrote:
> On 29/06/20 19:27, Philippe Mathieu-Daudé wrote:
>> Sometime emails get rejected and 'bounce'. It might take time
>> between we report that, a patch is posted, reviewed, merged...
>>
>> To reduce time spent looking at bouncing emails in one mailbox,
>> add the feature to simply ignore broken email addresses. The
>> format is similar to the '.mailmap' file. Add an email address
>> in your local '.ignoredmailmap. and get_maintainer.pl won't
>> list it anymore.
>>
>> This is particularly useful when git-send-email is used with
>> the --cc-cmd argument, like suggested in QEMU wiki:
>> https://wiki.qemu.org/Contribute/SubmitAPatch#CC_the_relevant_maintainer
>>
>> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
>
> Do you have such a list already?
$ cat .ignoredmailmap
#
# From man git-shortlog the forms are:
#
# Proper Name <commit@email.xx>
# <proper@email.xx>
#
Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Caio Carrara <ccarrara@redhat.com>
Yongbok Kim <yongbok.kim@mips.com>
James Hogan <james.hogan@mips.com>
Paul Burton <pburton@wavecomp.com>
Alexander Graf <agraf@suse.de>
Roy Franz <roy.franz@linaro.org>
Dmitry Solodkiy <d.solodkiy@samsung.com>
Evgeny Voevodin <e.voevodin@samsung.com>
Serge Hallyn <serge.hallyn@ubuntu.com>
Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
>
> Paolo
>
>> ---
>> scripts/get_maintainer.pl | 50 +++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 50 insertions(+)
>>
>> diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
>> index 271f5ff42a..7f7a4ff3ef 100755
>> --- a/scripts/get_maintainer.pl
>> +++ b/scripts/get_maintainer.pl
>> @@ -38,6 +38,7 @@
>> my $interactive = 0;
>> my $email_remove_duplicates = 1;
>> my $email_use_mailmap = 1;
>> +my $email_use_ignoredmailmap = 1;
>> my $output_multiline = 1;
>> my $output_separator = ", ";
>> my $output_roles = 0;
>> @@ -365,6 +366,51 @@ sub read_mailmap {
>> close($mailmap_file);
>> }
>>
>> +my $ignoredmailmap;
>> +
>> +read_ignoredmailmap();
>> +
>> +sub read_ignoredmailmap {
>> + $ignoredmailmap = {
>> + names => {},
>> + addresses => {}
>> + };
>> +
>> + return if (!$email_use_ignoredmailmap || !(-f
>> "${lk_path}.ignoredmailmap"));
>> +
>> + open(my $ignoredmailmap_file, '<', "${lk_path}.ignoredmailmap")
>> + or warn "$P: Can't open .ignoredmailmap: $!\n";
>> +
>> + while (<$ignoredmailmap_file>) {
>> + s/#.*$//; #strip comments
>> + s/^\s+|\s+$//g; #trim
>> +
>> + next if (/^\s*$/); #skip empty lines
>> + #entries have one of the following formats:
>> + # name1 <mail1>
>> + # <mail1>
>> +
>> + if (/^([^<]+)<([^>]+)>$/) {
>> + my $real_name = $1;
>> + my $address = $2;
>> +
>> + $real_name =~ s/\s+$//;
>> + ($real_name, $address) = parse_email("$real_name <$address>");
>> + $ignoredmailmap->{$address} = 1;
>> + } elsif (/^(.+)<([^>]+)>\s*<([^>]+)>$/) {
>> + my $real_name = $1;
>> + my $real_address = $2;
>> + my $wrong_address = $3;
>> +
>> + $real_name =~ s/\s+$//;
>> + ($real_name, $real_address) =
>> + parse_email("$real_name <$real_address>");
>> + $ignoredmailmap->{$real_address} = 1;
>> + }
>> + }
>> + close($ignoredmailmap_file);
>> +}
>> +
>> ## use the filenames on the command line or find the filenames in the
>> patchfiles
>>
>> my @files = ();
>> @@ -1074,6 +1120,10 @@ sub push_email_address {
>> if ($address eq "") {
>> return 0;
>> }
>> + if (exists $ignoredmailmap->{$address}) {
>> + #warn("Ignoring address: '" . $address . "'\n");
>> + return 0;
>> + }
>>
>> if (!$email_remove_duplicates) {
>> push(@email_to, [format_email($name, $address, $email_usename), $role]);
>>
>
>