All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 1/5] patman: Drop unnecessary import in gitutil
@ 2020-05-22  2:29 Simon Glass
  2020-05-22  2:29 ` [PATCH v3 2/5] patman: Avoid circular dependency between command and tools Simon Glass
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Simon Glass @ 2020-05-22  2:29 UTC (permalink / raw)
  To: u-boot

The checkpatch module is not used, so drop it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Stefan Bosch <stefan_b@posteo.net>
---

Changes in v3:
- Split out the gitutil change into a separate patch

Changes in v2: None

 tools/patman/gitutil.py | 1 -
 1 file changed, 1 deletion(-)

diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py
index 770a0510142..844f8759dec 100644
--- a/tools/patman/gitutil.py
+++ b/tools/patman/gitutil.py
@@ -7,7 +7,6 @@ import os
 import subprocess
 import sys
 
-from patman import checkpatch
 from patman import command
 from patman import series
 from patman import settings
-- 
2.27.0.rc0.183.gde8f92d652-goog

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

* [PATCH v3 2/5] patman: Avoid circular dependency between command and tools
  2020-05-22  2:29 [PATCH v3 1/5] patman: Drop unnecessary import in gitutil Simon Glass
@ 2020-05-22  2:29 ` Simon Glass
  2020-05-22  2:29 ` [PATCH v3 3/5] patman: Use a dict in gitutil to avoid importing series Simon Glass
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2020-05-22  2:29 UTC (permalink / raw)
  To: u-boot

This seems to cause problems in some cases. Split the dependency by
copying the code to command.

Reported-by: Stefan Bosch <stefan_b@posteo.net>
Signed-off-by: Simon Glass <sjg@chromium.org>
---

Changes in v3: None
Changes in v2: None

 tools/patman/command.py | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/tools/patman/command.py b/tools/patman/command.py
index e67ac159e5a..bf8ea6c8c3c 100644
--- a/tools/patman/command.py
+++ b/tools/patman/command.py
@@ -5,7 +5,6 @@
 import os
 
 from patman import cros_subprocess
-from patman import tools
 
 """Shell command ease-ups for Python."""
 
@@ -35,9 +34,9 @@ class CommandResult:
 
     def ToOutput(self, binary):
         if not binary:
-            self.stdout = tools.ToString(self.stdout)
-            self.stderr = tools.ToString(self.stderr)
-            self.combined = tools.ToString(self.combined)
+            self.stdout = self.stdout.decode('utf-8')
+            self.stderr = self.stderr.decode('utf-8')
+            self.combined = self.combined.decode('utf-8')
         return self
 
 
-- 
2.27.0.rc0.183.gde8f92d652-goog

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

* [PATCH v3 3/5] patman: Use a dict in gitutil to avoid importing series
  2020-05-22  2:29 [PATCH v3 1/5] patman: Drop unnecessary import in gitutil Simon Glass
  2020-05-22  2:29 ` [PATCH v3 2/5] patman: Avoid circular dependency between command and tools Simon Glass
@ 2020-05-22  2:29 ` Simon Glass
  2020-05-22  2:29 ` [PATCH v3 4/5] patman: Pass in maintainer dirs to avoid and import Simon Glass
  2020-05-22  2:29 ` [PATCH v3 5/5] patman: Avoid importing gitutil in settings Simon Glass
  3 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2020-05-22  2:29 UTC (permalink / raw)
  To: u-boot

Only a few members of this class are used and only in a test. To avoid
importing the module, convert the test to use a dict.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Stefan Bosch <stefan_b@posteo.net>
---

Changes in v3: None
Changes in v2: None

 tools/patman/gitutil.py | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/tools/patman/gitutil.py b/tools/patman/gitutil.py
index 844f8759dec..0bac9824811 100644
--- a/tools/patman/gitutil.py
+++ b/tools/patman/gitutil.py
@@ -8,7 +8,6 @@ import subprocess
 import sys
 
 from patman import command
-from patman import series
 from patman import settings
 from patman import terminal
 from patman import tools
@@ -366,9 +365,9 @@ def EmailPatches(series, cover_fname, args, dry_run, raise_on_error, cc_fname,
     >>> alias['boys'] = ['fred', ' john']
     >>> alias['all'] = ['fred ', 'john', '   mary   ']
     >>> alias[os.getenv('USER')] = ['this-is-me at me.com']
-    >>> series = series.Series()
-    >>> series.to = ['fred']
-    >>> series.cc = ['mary']
+    >>> series = {}
+    >>> series['to'] = ['fred']
+    >>> series['cc'] = ['mary']
     >>> EmailPatches(series, 'cover', ['p1', 'p2'], True, True, 'cc-fname', \
             False, alias)
     'git send-email --annotate --to "f.bloggs at napier.co.nz" --cc \
@@ -377,7 +376,7 @@ def EmailPatches(series, cover_fname, args, dry_run, raise_on_error, cc_fname,
             alias)
     'git send-email --annotate --to "f.bloggs at napier.co.nz" --cc \
 "m.poppins at cloud.net" --cc-cmd "./patman --cc-cmd cc-fname" p1'
-    >>> series.cc = ['all']
+    >>> series['cc'] = ['all']
     >>> EmailPatches(series, 'cover', ['p1', 'p2'], True, True, 'cc-fname', \
             True, alias)
     'git send-email --annotate --to "this-is-me at me.com" --cc-cmd "./patman \
-- 
2.27.0.rc0.183.gde8f92d652-goog

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

* [PATCH v3 4/5] patman: Pass in maintainer dirs to avoid and import
  2020-05-22  2:29 [PATCH v3 1/5] patman: Drop unnecessary import in gitutil Simon Glass
  2020-05-22  2:29 ` [PATCH v3 2/5] patman: Avoid circular dependency between command and tools Simon Glass
  2020-05-22  2:29 ` [PATCH v3 3/5] patman: Use a dict in gitutil to avoid importing series Simon Glass
@ 2020-05-22  2:29 ` Simon Glass
  2020-05-22  2:29 ` [PATCH v3 5/5] patman: Avoid importing gitutil in settings Simon Glass
  3 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2020-05-22  2:29 UTC (permalink / raw)
  To: u-boot

Adjust the get_maintainer module to accept a list of directories to search
for the script. This avoids needing to import gitutil.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Stefan Bosch <stefan_b@posteo.net>
---

Changes in v3: None
Changes in v2: None

 tools/patman/get_maintainer.py | 14 +++++++-------
 tools/patman/series.py         |  3 ++-
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/tools/patman/get_maintainer.py b/tools/patman/get_maintainer.py
index 473f0feebf4..af4ba15bcdd 100644
--- a/tools/patman/get_maintainer.py
+++ b/tools/patman/get_maintainer.py
@@ -5,17 +5,16 @@
 import os
 
 from patman import command
-from patman import gitutil
 
-def FindGetMaintainer():
+def FindGetMaintainer(try_list):
     """Look for the get_maintainer.pl script.
 
+    Args:
+        try_list: List of directories to try for the get_maintainer.pl script
+
     Returns:
         If the script is found we'll return a path to it; else None.
     """
-    try_list = [
-        os.path.join(gitutil.GetTopLevel(), 'scripts'),
-        ]
     # Look in the list
     for path in try_list:
         fname = os.path.join(path, 'get_maintainer.pl')
@@ -24,7 +23,7 @@ def FindGetMaintainer():
 
     return None
 
-def GetMaintainer(fname, verbose=False):
+def GetMaintainer(dir_list, fname, verbose=False):
     """Run get_maintainer.pl on a file if we find it.
 
     We look for get_maintainer.pl in the 'scripts' directory at the top of
@@ -32,12 +31,13 @@ def GetMaintainer(fname, verbose=False):
     then we fail silently.
 
     Args:
+        dir_list: List of directories to try for the get_maintainer.pl script
         fname: Path to the patch file to run get_maintainer.pl on.
 
     Returns:
         A list of email addresses to CC to.
     """
-    get_maintainer = FindGetMaintainer()
+    get_maintainer = FindGetMaintainer(dir_list)
     if not get_maintainer:
         if verbose:
             print("WARNING: Couldn't find get_maintainer.pl")
diff --git a/tools/patman/series.py b/tools/patman/series.py
index e5e28cebdf5..e6c72a9317b 100644
--- a/tools/patman/series.py
+++ b/tools/patman/series.py
@@ -233,7 +233,8 @@ class Series(dict):
             if type(add_maintainers) == type(cc):
                 cc += add_maintainers
             elif add_maintainers:
-                cc += get_maintainer.GetMaintainer(commit.patch)
+                dir_list = [os.path.join(gitutil.GetTopLevel(), 'scripts')]
+                cc += get_maintainer.GetMaintainer(dir_list, commit.patch)
             for x in set(cc) & set(settings.bounces):
                 print(col.Color(col.YELLOW, 'Skipping "%s"' % x))
             cc = set(cc) - set(settings.bounces)
-- 
2.27.0.rc0.183.gde8f92d652-goog

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

* [PATCH v3 5/5] patman: Avoid importing gitutil in settings
  2020-05-22  2:29 [PATCH v3 1/5] patman: Drop unnecessary import in gitutil Simon Glass
                   ` (2 preceding siblings ...)
  2020-05-22  2:29 ` [PATCH v3 4/5] patman: Pass in maintainer dirs to avoid and import Simon Glass
@ 2020-05-22  2:29 ` Simon Glass
  3 siblings, 0 replies; 5+ messages in thread
From: Simon Glass @ 2020-05-22  2:29 UTC (permalink / raw)
  To: u-boot

Pass this module in so that settings does not need to import it.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reported-by: Stefan Bosch <stefan_b@posteo.net>
---

Changes in v3:
- Add more patches based on testing on a dusty Ubuntu 14.04

Changes in v2:
- Update gitutil as well

 tools/patman/main.py     | 2 +-
 tools/patman/settings.py | 7 +++----
 2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/tools/patman/main.py b/tools/patman/main.py
index f3d9c0c4348..c5f247ed514 100755
--- a/tools/patman/main.py
+++ b/tools/patman/main.py
@@ -77,7 +77,7 @@ specified by tags you place in the commits. Use -n to do a dry run first."""
 # Parse options twice: first to get the project and second to handle
 # defaults properly (which depends on project).
 (options, args) = parser.parse_args()
-settings.Setup(parser, options.project, '')
+settings.Setup(gitutil, parser, options.project, '')
 (options, args) = parser.parse_args()
 
 if __name__ != "__main__":
diff --git a/tools/patman/settings.py b/tools/patman/settings.py
index ca74fc611ff..635561ac056 100644
--- a/tools/patman/settings.py
+++ b/tools/patman/settings.py
@@ -11,7 +11,6 @@ import os
 import re
 
 from patman import command
-from patman import gitutil
 from patman import tools
 
 """Default settings per-project.
@@ -185,7 +184,7 @@ def ReadGitAliases(fname):
 
     fd.close()
 
-def CreatePatmanConfigFile(config_fname):
+def CreatePatmanConfigFile(gitutil, config_fname):
     """Creates a config file under $(HOME)/.patman if it can't find one.
 
     Args:
@@ -301,7 +300,7 @@ def GetItems(config, section):
     except:
         raise
 
-def Setup(parser, project_name, config_fname=''):
+def Setup(gitutil, parser, project_name, config_fname=''):
     """Set up the settings module by reading config files.
 
     Args:
@@ -318,7 +317,7 @@ def Setup(parser, project_name, config_fname=''):
 
     if not os.path.exists(config_fname):
         print("No config file found ~/.patman\nCreating one...\n")
-        CreatePatmanConfigFile(config_fname)
+        CreatePatmanConfigFile(gitutil, config_fname)
 
     config.read(config_fname)
 
-- 
2.27.0.rc0.183.gde8f92d652-goog

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

end of thread, other threads:[~2020-05-22  2:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-22  2:29 [PATCH v3 1/5] patman: Drop unnecessary import in gitutil Simon Glass
2020-05-22  2:29 ` [PATCH v3 2/5] patman: Avoid circular dependency between command and tools Simon Glass
2020-05-22  2:29 ` [PATCH v3 3/5] patman: Use a dict in gitutil to avoid importing series Simon Glass
2020-05-22  2:29 ` [PATCH v3 4/5] patman: Pass in maintainer dirs to avoid and import Simon Glass
2020-05-22  2:29 ` [PATCH v3 5/5] patman: Avoid importing gitutil in settings 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.