utils/getdeveloperlib.py: reduce Cc: list based on package infras

When a developer has package/pkg-<infra>.mk assigned to him/her in the
DEVELOPERS file, this has 3 implications:

 (1) Patches adding new packages using this infrastructure are Cc'ed
     to this developer. This is done by the analyze_patch() function,
     which matches the regexp r"^\+\$\(eval
     \$\((host-)?([^-]*)-package\)\)$" in the patch, i.e where an
     added line contains a reference to the infra maintained by the
     developer.

 (2) Patches touching the package/pkg-<infra>.mk file itself are Cc'ed
     to this developer.

 (3) Any patch touching a package using this infra are also Cc'ed to
     this developer.

Point (3) causes a significant amount of patches to be sent to
developers who have package/pkg-generic.mk and
package/pkg-autotools.mk assigned to them in the DEVELOPERS
file. Basically, all patches touching generic or autotools packages
get CC'ed to such developers, which causes a massive amount of patches
to be received.

So this patch adjusts the getdeveloperlib.py to drop point (3), but
preserves point (1) and (2). Indeed, it makes sense to be Cc'ed on new
package additions (to make a review that they use the package
infrastructure correctly), and it makes sense to be Cc'ed on patches
that touch the infrastructure code itself.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
This commit is contained in:
Thomas Petazzoni 2021-02-10 09:01:35 +01:00 committed by Yann E. MORIN
parent a7bd76b6f5
commit 38b0560f4e

View file

@ -56,17 +56,6 @@ def fname_get_package_infra(fname):
return None return None
def get_infras(files):
"""Search in the list of files for .mk files, and collect the package
infrastructures used by those .mk files."""
infras = set()
for fname in files:
infra = fname_get_package_infra(fname)
if infra:
infras.add(infra)
return infras
def analyze_patches(patches): def analyze_patches(patches):
"""Parse a list of patches and returns the list of files modified, """Parse a list of patches and returns the list of files modified,
added or removed by the patches, as well as the list of package added or removed by the patches, as well as the list of package
@ -77,7 +66,6 @@ def analyze_patches(patches):
(files, infras) = analyze_patch(patch) (files, infras) = analyze_patch(patch)
allfiles = allfiles | files allfiles = allfiles | files
allinfras = allinfras | infras allinfras = allinfras | infras
allinfras = allinfras | get_infras(allfiles)
return (allfiles, allinfras) return (allfiles, allinfras)