qemu-devel
[Top][All Lists]
Advanced

[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]);
>>
> 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]