utils/getdeveloperlib.py: add defconfig parsing
authorVictor Huesca <victor.huesca@bootlin.com>
Sun, 4 Aug 2019 14:21:43 +0000 (16:21 +0200)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Sun, 4 Aug 2019 22:02:35 +0000 (00:02 +0200)
This patch extends the Developer class so that it associates each
developer with the defconfigs (in configs/) is in responsible for,
according to the DEVELOPERS file.

It will allow using the getdeveloperlib module to find which developer
is responsible for which defconfig, and send e-mail notifications of
defconfig build failures.

Signed-off-by: Victor Huesca <victor.huesca@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
utils/getdeveloperlib.py

index c0eff7df295e026f6698843cea5576256feaae58..c18236b3a58db4512cde04997cd4aa6dd8cce71c 100644 (file)
@@ -120,6 +120,7 @@ class Developer:
         self.architectures = parse_developer_architectures(files)
         self.infras = parse_developer_infras(files)
         self.runtime_tests = parse_developer_runtime_tests(files)
+        self.defconfigs = parse_developer_defconfigs(files)
 
     def hasfile(self, f):
         f = os.path.abspath(f)
@@ -141,6 +142,8 @@ class Developer:
             things.append('{} infras'.format(len(self.infras)))
         if len(self.runtime_tests):
             things.append('{} tests'.format(len(self.runtime_tests)))
+        if len(self.defconfigs):
+            things.append('{} defconfigs'.format(len(self.defconfigs)))
         if things:
             return 'Developer <{} ({})>'.format(name, ', '.join(things))
         else:
@@ -203,6 +206,14 @@ def parse_developer_infras(fnames):
     return infras
 
 
+def parse_developer_defconfigs(fnames):
+    """Given a list of file names, returns the config names
+    corresponding to defconfigs."""
+    return {os.path.basename(fname[:-10])
+            for fname in fnames
+            if fname.endswith('_defconfig')}
+
+
 def parse_developer_runtime_tests(fnames):
     """Given a list of file names, returns the runtime tests
     corresponding to the file."""