All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list
@ 2018-06-07  8:45 Chris Packham
  2018-06-07  8:45 ` [U-Boot] [PATCH v3 2/2] patman: add test for SPDX license Chris Packham
  2018-06-08 21:59 ` [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list Simon Glass
  0 siblings, 2 replies; 6+ messages in thread
From: Chris Packham @ 2018-06-07  8:45 UTC (permalink / raw)
  To: u-boot

Many mailing-lists consider a long Cc list a sign of spam and will
either drop the message or mark it for moderation. Because patman
automatically invokes get_maintainer.pl the Cc list can expand
unexpectedly. Allow the user to specify a limit for the Cc list.

This limit is applied after removing any known bouncing addresses. By
default no limit is applied.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
I've fallen foul of the u-boot ML Cc limit a few times recently. I'm not
sure what the actual limit is so I've left patman's default behaviour
unlimited.

Changes in v3:
- update func_test

Changes in v2:
- make default None to allow limit 0 to suppress the list completely

 tools/patman/func_test.py | 3 ++-
 tools/patman/patman.py    | 4 +++-
 tools/patman/series.py    | 5 ++++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/tools/patman/func_test.py b/tools/patman/func_test.py
index 85372f3c0ade..3f7e03214470 100644
--- a/tools/patman/func_test.py
+++ b/tools/patman/func_test.py
@@ -149,7 +149,8 @@ class TestFunctional(unittest.TestCase):
                 patchstream.InsertCoverLetter(cover_fname, series, count)
             series.DoChecks()
             cc_file = series.MakeCcFile(process_tags, cover_fname,
-                                        not ignore_bad_tags, add_maintainers)
+                                        not ignore_bad_tags, add_maintainers,
+                                        None)
             cmd = gitutil.EmailPatches(series, cover_fname, args,
                     dry_run, not ignore_bad_tags, cc_file,
                     in_reply_to=in_reply_to, thread=None)
diff --git a/tools/patman/patman.py b/tools/patman/patman.py
index 8d2c78235a7e..e01510df9c0f 100755
--- a/tools/patman/patman.py
+++ b/tools/patman/patman.py
@@ -38,6 +38,8 @@ parser.add_option('-i', '--ignore-errors', action='store_true',
 parser.add_option('-m', '--no-maintainers', action='store_false',
        dest='add_maintainers', default=True,
        help="Don't cc the file maintainers automatically")
+parser.add_option('-l', '--limit-cc', dest='limit', type='int',
+       default=None, help='Limit the cc list to LIMIT entries [default: %default]')
 parser.add_option('-n', '--dry-run', action='store_true', dest='dry_run',
        default=False, help="Do a dry run (create but don't email patches)")
 parser.add_option('-p', '--project', default=project.DetectProject(),
@@ -157,7 +159,7 @@ else:
 
     cc_file = series.MakeCcFile(options.process_tags, cover_fname,
                                 not options.ignore_bad_tags,
-                                options.add_maintainers)
+                                options.add_maintainers, options.limit)
 
     # Email the patches out (giving the user time to check / cancel)
     cmd = ''
diff --git a/tools/patman/series.py b/tools/patman/series.py
index d526d4ee91d3..2735afaf88fe 100644
--- a/tools/patman/series.py
+++ b/tools/patman/series.py
@@ -202,7 +202,7 @@ class Series(dict):
             print(col.Color(col.RED, str))
 
     def MakeCcFile(self, process_tags, cover_fname, raise_on_error,
-                   add_maintainers):
+                   add_maintainers, limit):
         """Make a cc file for us to use for per-commit Cc automation
 
         Also stores in self._generated_cc to make ShowActions() faster.
@@ -215,6 +215,7 @@ class Series(dict):
             add_maintainers: Either:
                 True/False to call the get_maintainers to CC maintainers
                 List of maintainers to include (for testing)
+            limit: Limit the length of the Cc list
         Return:
             Filename of temp file created
         """
@@ -238,6 +239,8 @@ class Series(dict):
                 print(col.Color(col.YELLOW, 'Skipping "%s"' % x))
             cc = set(cc) - set(settings.bounces)
             cc = [m.encode('utf-8') if type(m) != str else m for m in cc]
+            if limit is not None:
+                cc = cc[:limit]
             all_ccs += cc
             print(commit.patch, ', '.join(set(cc)), file=fd)
             self._generated_cc[commit.patch] = cc
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v3 2/2] patman: add test for SPDX license
  2018-06-07  8:45 [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list Chris Packham
@ 2018-06-07  8:45 ` Chris Packham
  2018-06-08 21:59   ` Simon Glass
  2018-06-08 21:59 ` [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list Simon Glass
  1 sibling, 1 reply; 6+ messages in thread
From: Chris Packham @ 2018-06-07  8:45 UTC (permalink / raw)
  To: u-boot

Add a test to exercise the check for a valid SPDX license.

Signed-off-by: Chris Packham <judge.packham@gmail.com>
---
This is dependent on http://patchwork.ozlabs.org/patch/914202/

I also seem to get a bunch of doctest failures due to unicode strings, e.g.

  File "tools/patman/settings.py", line 78, in settings._ProjectConfigParser
  Failed example:
      sorted(config.items("settings"))
  Expected:
      [('am_hero', 'True')]
  Got:
      [('am_hero', u'True')

I haven't attempted to fix these as I suspect they might be python
version (2.7.12 for me) and/or locale dependent.

Changes in v3:
- new

Changes in v2: None

 tools/patman/test.py | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/tools/patman/test.py b/tools/patman/test.py
index c7ba4e6bb47c..e1b94bd1a7db 100644
--- a/tools/patman/test.py
+++ b/tools/patman/test.py
@@ -148,7 +148,7 @@ index 0000000..2234c87
 --- /dev/null
 +++ b/common/bootstage.c
 @@ -0,0 +1,37 @@
-+// SPDX-License-Identifier: GPL-2.0+
++%s
 +/*
 + * Copyright (c) 2011, Google Inc. All rights reserved.
 + *
@@ -189,19 +189,22 @@ index 0000000..2234c87
 1.7.3.1
 '''
         signoff = 'Signed-off-by: Simon Glass <sjg@chromium.org>\n'
+        license = '// SPDX-License-Identifier: GPL-2.0+'
         tab = '	'
         indent = '    '
         if data_type == 'good':
             pass
         elif data_type == 'no-signoff':
             signoff = ''
+        elif data_type == 'no-license':
+            license = ''
         elif data_type == 'spaces':
             tab = '   '
         elif data_type == 'indent':
             indent = tab
         else:
             print('not implemented')
-        return data % (signoff, tab, indent, tab)
+        return data % (signoff, license, tab, indent, tab)
 
     def SetupData(self, data_type):
         inhandle, inname = tempfile.mkstemp()
@@ -234,6 +237,17 @@ index 0000000..2234c87
         self.assertEqual(result.lines, 62)
         os.remove(inf)
 
+    def testNoLicense(self):
+        inf = self.SetupData('no-license')
+        result = checkpatch.CheckPatch(inf)
+        self.assertEqual(result.ok, False)
+        self.assertEqual(len(result.problems), 1)
+        self.assertEqual(result.errors, 0)
+        self.assertEqual(result.warnings, 1)
+        self.assertEqual(result.checks, 0)
+        self.assertEqual(result.lines, 62)
+        os.remove(inf)
+
     def testSpaces(self):
         inf = self.SetupData('spaces')
         result = checkpatch.CheckPatch(inf)
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v3 2/2] patman: add test for SPDX license
  2018-06-07  8:45 ` [U-Boot] [PATCH v3 2/2] patman: add test for SPDX license Chris Packham
@ 2018-06-08 21:59   ` Simon Glass
  2018-06-23 14:06     ` Simon Glass
  0 siblings, 1 reply; 6+ messages in thread
From: Simon Glass @ 2018-06-08 21:59 UTC (permalink / raw)
  To: u-boot

On 7 June 2018 at 00:45, Chris Packham <judge.packham@gmail.com> wrote:
> Add a test to exercise the check for a valid SPDX license.
>
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> This is dependent on http://patchwork.ozlabs.org/patch/914202/
>
> I also seem to get a bunch of doctest failures due to unicode strings, e.g.
>
>   File "tools/patman/settings.py", line 78, in settings._ProjectConfigParser
>   Failed example:
>       sorted(config.items("settings"))
>   Expected:
>       [('am_hero', 'True')]
>   Got:
>       [('am_hero', u'True')
>
> I haven't attempted to fix these as I suspect they might be python
> version (2.7.12 for me) and/or locale dependent.

That is a bit odd since I would expect those lists to be the same.
Normally you can compare uincode and strings without any trouble.

>
> Changes in v3:
> - new
>
> Changes in v2: None
>
>  tools/patman/test.py | 18 ++++++++++++++++--
>  1 file changed, 16 insertions(+), 2 deletions(-)
>

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list
  2018-06-07  8:45 [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list Chris Packham
  2018-06-07  8:45 ` [U-Boot] [PATCH v3 2/2] patman: add test for SPDX license Chris Packham
@ 2018-06-08 21:59 ` Simon Glass
  2018-06-23 14:06   ` Simon Glass
  1 sibling, 1 reply; 6+ messages in thread
From: Simon Glass @ 2018-06-08 21:59 UTC (permalink / raw)
  To: u-boot

On 7 June 2018 at 00:45, Chris Packham <judge.packham@gmail.com> wrote:
> Many mailing-lists consider a long Cc list a sign of spam and will
> either drop the message or mark it for moderation. Because patman
> automatically invokes get_maintainer.pl the Cc list can expand
> unexpectedly. Allow the user to specify a limit for the Cc list.
>
> This limit is applied after removing any known bouncing addresses. By
> default no limit is applied.
>
> Signed-off-by: Chris Packham <judge.packham@gmail.com>
> ---
> I've fallen foul of the u-boot ML Cc limit a few times recently. I'm not
> sure what the actual limit is so I've left patman's default behaviour
> unlimited.
>
> Changes in v3:
> - update func_test
>
> Changes in v2:
> - make default None to allow limit 0 to suppress the list completely
>
>  tools/patman/func_test.py | 3 ++-
>  tools/patman/patman.py    | 4 +++-
>  tools/patman/series.py    | 5 ++++-
>  3 files changed, 9 insertions(+), 3 deletions(-)

Reviewed-by: Simon Glass <sjg@chromium.org>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list
  2018-06-08 21:59 ` [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list Simon Glass
@ 2018-06-23 14:06   ` Simon Glass
  0 siblings, 0 replies; 6+ messages in thread
From: Simon Glass @ 2018-06-23 14:06 UTC (permalink / raw)
  To: u-boot

On 8 June 2018 at 15:59, Simon Glass <sjg@chromium.org> wrote:
> On 7 June 2018 at 00:45, Chris Packham <judge.packham@gmail.com> wrote:
>> Many mailing-lists consider a long Cc list a sign of spam and will
>> either drop the message or mark it for moderation. Because patman
>> automatically invokes get_maintainer.pl the Cc list can expand
>> unexpectedly. Allow the user to specify a limit for the Cc list.
>>
>> This limit is applied after removing any known bouncing addresses. By
>> default no limit is applied.
>>
>> Signed-off-by: Chris Packham <judge.packham@gmail.com>
>> ---
>> I've fallen foul of the u-boot ML Cc limit a few times recently. I'm not
>> sure what the actual limit is so I've left patman's default behaviour
>> unlimited.
>>
>> Changes in v3:
>> - update func_test
>>
>> Changes in v2:
>> - make default None to allow limit 0 to suppress the list completely
>>
>>  tools/patman/func_test.py | 3 ++-
>>  tools/patman/patman.py    | 4 +++-
>>  tools/patman/series.py    | 5 ++++-
>>  3 files changed, 9 insertions(+), 3 deletions(-)
>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot-dm, thanks!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [U-Boot] [PATCH v3 2/2] patman: add test for SPDX license
  2018-06-08 21:59   ` Simon Glass
@ 2018-06-23 14:06     ` Simon Glass
  0 siblings, 0 replies; 6+ messages in thread
From: Simon Glass @ 2018-06-23 14:06 UTC (permalink / raw)
  To: u-boot

On 8 June 2018 at 15:59, Simon Glass <sjg@chromium.org> wrote:
> On 7 June 2018 at 00:45, Chris Packham <judge.packham@gmail.com> wrote:
>> Add a test to exercise the check for a valid SPDX license.
>>
>> Signed-off-by: Chris Packham <judge.packham@gmail.com>
>> ---
>> This is dependent on http://patchwork.ozlabs.org/patch/914202/
>>
>> I also seem to get a bunch of doctest failures due to unicode strings, e.g.
>>
>>   File "tools/patman/settings.py", line 78, in settings._ProjectConfigParser
>>   Failed example:
>>       sorted(config.items("settings"))
>>   Expected:
>>       [('am_hero', 'True')]
>>   Got:
>>       [('am_hero', u'True')
>>
>> I haven't attempted to fix these as I suspect they might be python
>> version (2.7.12 for me) and/or locale dependent.
>
> That is a bit odd since I would expect those lists to be the same.
> Normally you can compare uincode and strings without any trouble.
>
>>
>> Changes in v3:
>> - new
>>
>> Changes in v2: None
>>
>>  tools/patman/test.py | 18 ++++++++++++++++--
>>  1 file changed, 16 insertions(+), 2 deletions(-)
>>
>
> Reviewed-by: Simon Glass <sjg@chromium.org>

Applied to u-boot-dm, thanks!

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-06-23 14:06 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-07  8:45 [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list Chris Packham
2018-06-07  8:45 ` [U-Boot] [PATCH v3 2/2] patman: add test for SPDX license Chris Packham
2018-06-08 21:59   ` Simon Glass
2018-06-23 14:06     ` Simon Glass
2018-06-08 21:59 ` [U-Boot] [PATCH v3 1/2] patman: add option for limiting the Cc list Simon Glass
2018-06-23 14:06   ` Simon Glass

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.