diff mbox

[U-Boot] patman: Don't request full names from get_maintainer

Message ID 1397760452-7749-1-git-send-email-dianders@chromium.org
State Changes Requested
Delegated to: Simon Glass
Headers show

Commit Message

Doug Anderson April 17, 2014, 6:47 p.m. UTC
The Linux get_maintainer.pl can often produce a whole lot of results.
As a result you'll sometimes blow your CC field over 1024 characters
and that can cause listservs to reject your message.

As a stopgap, call get_maintainer.pl with "--non" so it doesn't
include real names.  This will dramatically reduce the number of
characters.

Signed-off-by: Doug Anderson <dianders@chromium.org>
---

 tools/patman/get_maintainer.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Simon Glass April 18, 2014, 8:43 p.m. UTC | #1
Hi Doug,

On 17 April 2014 12:47, Doug Anderson <dianders@chromium.org> wrote:
>
> The Linux get_maintainer.pl can often produce a whole lot of results.
> As a result you'll sometimes blow your CC field over 1024 characters
> and that can cause listservs to reject your message.
>
> As a stopgap, call get_maintainer.pl with "--non" so it doesn't
> include real names.  This will dramatically reduce the number of
> characters.
>
> Signed-off-by: Doug Anderson <dianders@chromium.org>
> ---
>
>  tools/patman/get_maintainer.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
> index 00b4939..a5160bc 100644
> --- a/tools/patman/get_maintainer.py
> +++ b/tools/patman/get_maintainer.py
> @@ -43,5 +43,5 @@ def GetMaintainer(fname, verbose=False):
>              print "WARNING: Couldn't find get_maintainer.pl"
>          return []
>
> -    stdout = command.Output(get_maintainer, '--norolestats', fname)
> +    stdout = command.Output(get_maintainer, '--norolestats', '--non', fname)
>      return stdout.splitlines()
> --
> 1.9.1.423.g4596e3a
>

Good to avoid this problem, but I wonder if we should check the size
and re-run the command if too long? That way we can keep names on the
thread when it is possible.

Also, why is there a limit on CC - is that a limitation described in
the RFC, or just certain mailers? Can we get around it by specifying
multiple Cc tags?

Regards,
Simon
Doug Anderson April 18, 2014, 9:32 p.m. UTC | #2
Simon,

On Fri, Apr 18, 2014 at 1:43 PM, Simon Glass <sjg@chromium.org> wrote:
> Hi Doug,
>
> On 17 April 2014 12:47, Doug Anderson <dianders@chromium.org> wrote:
>>
>> The Linux get_maintainer.pl can often produce a whole lot of results.
>> As a result you'll sometimes blow your CC field over 1024 characters
>> and that can cause listservs to reject your message.
>>
>> As a stopgap, call get_maintainer.pl with "--non" so it doesn't
>> include real names.  This will dramatically reduce the number of
>> characters.
>>
>> Signed-off-by: Doug Anderson <dianders@chromium.org>
>> ---
>>
>>  tools/patman/get_maintainer.py | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
>> index 00b4939..a5160bc 100644
>> --- a/tools/patman/get_maintainer.py
>> +++ b/tools/patman/get_maintainer.py
>> @@ -43,5 +43,5 @@ def GetMaintainer(fname, verbose=False):
>>              print "WARNING: Couldn't find get_maintainer.pl"
>>          return []
>>
>> -    stdout = command.Output(get_maintainer, '--norolestats', fname)
>> +    stdout = command.Output(get_maintainer, '--norolestats', '--non', fname)
>>      return stdout.splitlines()
>> --
>> 1.9.1.423.g4596e3a
>>
>
> Good to avoid this problem, but I wonder if we should check the size
> and re-run the command if too long? That way we can keep names on the
> thread when it is possible.
>
> Also, why is there a limit on CC - is that a limitation described in
> the RFC, or just certain mailers? Can we get around it by specifying
> multiple Cc tags?

I believe that we're actually fighting a heuristic that the mailing
list servers have to avoid spammers.  In the past I've seen my mail
get through to list servers that weren't run by kernel.org but _not_
the the ones at kernel.org.  Kind of like how if you want to write
code that's for generic exynos 5 hardware you need to use exynos_5yyy
and _not_ replace the y with x (because that would be adult content!)

We could possibly only run the heuristic if the CC list was > 800
characters?  I'd hesitate to getting too close to 1024 since I think
there are instances where git will itself add a CC and that might blow
us out.

...another option is to just forget this patch and force people to add
this to ".get_maintainer.conf"

-Doug
Simon Glass May 13, 2014, 6:17 p.m. UTC | #3
Hi Doug,

On 18 April 2014 15:32, Doug Anderson <dianders@chromium.org> wrote:
> Simon,
>
> On Fri, Apr 18, 2014 at 1:43 PM, Simon Glass <sjg@chromium.org> wrote:
>> Hi Doug,
>>
>> On 17 April 2014 12:47, Doug Anderson <dianders@chromium.org> wrote:
>>>
>>> The Linux get_maintainer.pl can often produce a whole lot of results.
>>> As a result you'll sometimes blow your CC field over 1024 characters
>>> and that can cause listservs to reject your message.
>>>
>>> As a stopgap, call get_maintainer.pl with "--non" so it doesn't
>>> include real names.  This will dramatically reduce the number of
>>> characters.
>>>
>>> Signed-off-by: Doug Anderson <dianders@chromium.org>
>>> ---
>>>
>>>  tools/patman/get_maintainer.py | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
>>> index 00b4939..a5160bc 100644
>>> --- a/tools/patman/get_maintainer.py
>>> +++ b/tools/patman/get_maintainer.py
>>> @@ -43,5 +43,5 @@ def GetMaintainer(fname, verbose=False):
>>>              print "WARNING: Couldn't find get_maintainer.pl"
>>>          return []
>>>
>>> -    stdout = command.Output(get_maintainer, '--norolestats', fname)
>>> +    stdout = command.Output(get_maintainer, '--norolestats', '--non', fname)
>>>      return stdout.splitlines()
>>> --
>>> 1.9.1.423.g4596e3a
>>>
>>
>> Good to avoid this problem, but I wonder if we should check the size
>> and re-run the command if too long? That way we can keep names on the
>> thread when it is possible.
>>
>> Also, why is there a limit on CC - is that a limitation described in
>> the RFC, or just certain mailers? Can we get around it by specifying
>> multiple Cc tags?
>
> I believe that we're actually fighting a heuristic that the mailing
> list servers have to avoid spammers.  In the past I've seen my mail
> get through to list servers that weren't run by kernel.org but _not_
> the the ones at kernel.org.  Kind of like how if you want to write
> code that's for generic exynos 5 hardware you need to use exynos_5yyy
> and _not_ replace the y with x (because that would be adult content!)
>
> We could possibly only run the heuristic if the CC list was > 800
> characters?  I'd hesitate to getting too close to 1024 since I think
> there are instances where git will itself add a CC and that might blow
> us out.

Yes that seems reasonable - that way we get the names most of the time.

>
> ...another option is to just forget this patch and force people to add
> this to ".get_maintainer.conf"

I think the previous option is better.

Regards,
Simon
Doug Anderson May 20, 2014, 10:51 p.m. UTC | #4
Simon,

On Tue, May 13, 2014 at 11:17 AM, Simon Glass <sjg@chromium.org> wrote:
> Hi Doug,
>
> On 18 April 2014 15:32, Doug Anderson <dianders@chromium.org> wrote:
>> Simon,
>>
>> On Fri, Apr 18, 2014 at 1:43 PM, Simon Glass <sjg@chromium.org> wrote:
>>> Hi Doug,
>>>
>>> On 17 April 2014 12:47, Doug Anderson <dianders@chromium.org> wrote:
>>>>
>>>> The Linux get_maintainer.pl can often produce a whole lot of results.
>>>> As a result you'll sometimes blow your CC field over 1024 characters
>>>> and that can cause listservs to reject your message.
>>>>
>>>> As a stopgap, call get_maintainer.pl with "--non" so it doesn't
>>>> include real names.  This will dramatically reduce the number of
>>>> characters.
>>>>
>>>> Signed-off-by: Doug Anderson <dianders@chromium.org>
>>>> ---
>>>>
>>>>  tools/patman/get_maintainer.py | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
>>>> index 00b4939..a5160bc 100644
>>>> --- a/tools/patman/get_maintainer.py
>>>> +++ b/tools/patman/get_maintainer.py
>>>> @@ -43,5 +43,5 @@ def GetMaintainer(fname, verbose=False):
>>>>              print "WARNING: Couldn't find get_maintainer.pl"
>>>>          return []
>>>>
>>>> -    stdout = command.Output(get_maintainer, '--norolestats', fname)
>>>> +    stdout = command.Output(get_maintainer, '--norolestats', '--non', fname)
>>>>      return stdout.splitlines()
>>>> --
>>>> 1.9.1.423.g4596e3a
>>>>
>>>
>>> Good to avoid this problem, but I wonder if we should check the size
>>> and re-run the command if too long? That way we can keep names on the
>>> thread when it is possible.
>>>
>>> Also, why is there a limit on CC - is that a limitation described in
>>> the RFC, or just certain mailers? Can we get around it by specifying
>>> multiple Cc tags?
>>
>> I believe that we're actually fighting a heuristic that the mailing
>> list servers have to avoid spammers.  In the past I've seen my mail
>> get through to list servers that weren't run by kernel.org but _not_
>> the the ones at kernel.org.  Kind of like how if you want to write
>> code that's for generic exynos 5 hardware you need to use exynos_5yyy
>> and _not_ replace the y with x (because that would be adult content!)
>>
>> We could possibly only run the heuristic if the CC list was > 800
>> characters?  I'd hesitate to getting too close to 1024 since I think
>> there are instances where git will itself add a CC and that might blow
>> us out.
>
> Yes that seems reasonable - that way we get the names most of the time.
>
>>
>> ...another option is to just forget this patch and force people to add
>> this to ".get_maintainer.conf"
>
> I think the previous option is better.

I started coding this up and then realized one corner case that
wouldn't be handled: the cover letter case.  This is the most likely
message to go over the limit, even if individual patches are not over
the limit.  That's because we add all addresses to the cover letter in
(3118725 patman: Add all CC addresses to the cover letter).

If we want to try to handle this dynamically, we probably need to
handle it at a higher level and manually strip off the full names
right before passing it off to git.

What do you think?

-Doug
Simon Glass May 22, 2014, 1:01 a.m. UTC | #5
Hi Doug,

On 20 May 2014 12:51, Doug Anderson <dianders@chromium.org> wrote:
> Simon,
>
> On Tue, May 13, 2014 at 11:17 AM, Simon Glass <sjg@chromium.org> wrote:
>> Hi Doug,
>>
>> On 18 April 2014 15:32, Doug Anderson <dianders@chromium.org> wrote:
>>> Simon,
>>>
>>> On Fri, Apr 18, 2014 at 1:43 PM, Simon Glass <sjg@chromium.org> wrote:
>>>> Hi Doug,
>>>>
>>>> On 17 April 2014 12:47, Doug Anderson <dianders@chromium.org> wrote:
>>>>>
>>>>> The Linux get_maintainer.pl can often produce a whole lot of results.
>>>>> As a result you'll sometimes blow your CC field over 1024 characters
>>>>> and that can cause listservs to reject your message.
>>>>>
>>>>> As a stopgap, call get_maintainer.pl with "--non" so it doesn't
>>>>> include real names.  This will dramatically reduce the number of
>>>>> characters.
>>>>>
>>>>> Signed-off-by: Doug Anderson <dianders@chromium.org>
>>>>> ---
>>>>>
>>>>>  tools/patman/get_maintainer.py | 2 +-
>>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
>>>>> index 00b4939..a5160bc 100644
>>>>> --- a/tools/patman/get_maintainer.py
>>>>> +++ b/tools/patman/get_maintainer.py
>>>>> @@ -43,5 +43,5 @@ def GetMaintainer(fname, verbose=False):
>>>>>              print "WARNING: Couldn't find get_maintainer.pl"
>>>>>          return []
>>>>>
>>>>> -    stdout = command.Output(get_maintainer, '--norolestats', fname)
>>>>> +    stdout = command.Output(get_maintainer, '--norolestats', '--non', fname)
>>>>>      return stdout.splitlines()
>>>>> --
>>>>> 1.9.1.423.g4596e3a
>>>>>
>>>>
>>>> Good to avoid this problem, but I wonder if we should check the size
>>>> and re-run the command if too long? That way we can keep names on the
>>>> thread when it is possible.
>>>>
>>>> Also, why is there a limit on CC - is that a limitation described in
>>>> the RFC, or just certain mailers? Can we get around it by specifying
>>>> multiple Cc tags?
>>>
>>> I believe that we're actually fighting a heuristic that the mailing
>>> list servers have to avoid spammers.  In the past I've seen my mail
>>> get through to list servers that weren't run by kernel.org but _not_
>>> the the ones at kernel.org.  Kind of like how if you want to write
>>> code that's for generic exynos 5 hardware you need to use exynos_5yyy
>>> and _not_ replace the y with x (because that would be adult content!)
>>>
>>> We could possibly only run the heuristic if the CC list was > 800
>>> characters?  I'd hesitate to getting too close to 1024 since I think
>>> there are instances where git will itself add a CC and that might blow
>>> us out.
>>
>> Yes that seems reasonable - that way we get the names most of the time.
>>
>>>
>>> ...another option is to just forget this patch and force people to add
>>> this to ".get_maintainer.conf"
>>
>> I think the previous option is better.
>
> I started coding this up and then realized one corner case that
> wouldn't be handled: the cover letter case.  This is the most likely
> message to go over the limit, even if individual patches are not over
> the limit.  That's because we add all addresses to the cover letter in
> (3118725 patman: Add all CC addresses to the cover letter).
>
> If we want to try to handle this dynamically, we probably need to
> handle it at a higher level and manually strip off the full names
> right before passing it off to git.
>
> What do you think?

It looks like it should be doable in series.MakeCcFile unless I am
misunderstanding the problem. It creates separate CC lists for each
commit, including the cover letter.

Regards,
Simon
diff mbox

Patch

diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
index 00b4939..a5160bc 100644
--- a/tools/patman/get_maintainer.py
+++ b/tools/patman/get_maintainer.py
@@ -43,5 +43,5 @@  def GetMaintainer(fname, verbose=False):
             print "WARNING: Couldn't find get_maintainer.pl"
         return []
 
-    stdout = command.Output(get_maintainer, '--norolestats', fname)
+    stdout = command.Output(get_maintainer, '--norolestats', '--non', fname)
     return stdout.splitlines()