mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-09-21 07:01:57 +00:00
buildman: Warn about dangling maintainer entries
Other than the top-level MAINTAINERS file, all maintainer entries should actually reference a target. Add a warning to detect those that do not. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a114c61536
commit
bc12d03493
2 changed files with 22 additions and 8 deletions
|
@ -345,17 +345,28 @@ class MaintainersDatabase:
|
|||
srcdir (str): Directory containing source code (Kconfig files)
|
||||
fname (str): MAINTAINERS file to be parsed
|
||||
"""
|
||||
def add_targets():
|
||||
"""Add any new targets"""
|
||||
def add_targets(linenum):
|
||||
"""Add any new targets
|
||||
|
||||
Args:
|
||||
linenum (int): Current line number
|
||||
"""
|
||||
added = False
|
||||
if targets:
|
||||
for target in targets:
|
||||
self.database[target] = (status, maintainers)
|
||||
added = True
|
||||
if not added and (status != '-' and maintainers):
|
||||
leaf = fname[len(srcdir) + 1:]
|
||||
if leaf != 'MAINTAINERS':
|
||||
self.warnings.append(
|
||||
f'WARNING: orphaned defconfig in {leaf} ending at line {linenum + 1}')
|
||||
|
||||
targets = []
|
||||
maintainers = []
|
||||
status = '-'
|
||||
with open(fname, encoding="utf-8") as inf:
|
||||
for line in inf:
|
||||
for linenum, line in enumerate(inf):
|
||||
# Check also commented maintainers
|
||||
if line[:3] == '#M:':
|
||||
line = line[1:]
|
||||
|
@ -388,11 +399,11 @@ class MaintainersDatabase:
|
|||
if match and not rear:
|
||||
targets.append(front)
|
||||
elif line == '\n':
|
||||
add_targets()
|
||||
add_targets(linenum)
|
||||
targets = []
|
||||
maintainers = []
|
||||
status = '-'
|
||||
add_targets()
|
||||
add_targets(linenum)
|
||||
|
||||
|
||||
class Boards:
|
||||
|
|
|
@ -917,7 +917,8 @@ Active aarch64 armv8 - armltd total_compute board2
|
|||
params_list, warnings = self._boards.build_board_list(config_dir, src)
|
||||
self.assertEquals(2, len(params_list))
|
||||
self.assertEquals(
|
||||
["WARNING: no status info for 'board0'",
|
||||
['WARNING: orphaned defconfig in boards/board0/MAINTAINERS ending at line 4',
|
||||
"WARNING: no status info for 'board0'",
|
||||
"WARNING: no maintainers for 'board0'"], warnings)
|
||||
|
||||
# Remove the maintainer line (M:) from a file (this should be fine)
|
||||
|
@ -937,9 +938,11 @@ Active aarch64 armv8 - armltd total_compute board2
|
|||
self.assertEquals(2, len(params_list))
|
||||
self.assertFalse(warnings)
|
||||
|
||||
# Add another record, this should be ignored
|
||||
# Add another record, this should be ignored with a warning
|
||||
extra = '\n\nAnother\nM: Fred\nF: configs/board9_defconfig\nS: other\n'
|
||||
tools.write_file(main, data + extra, binary=False)
|
||||
params_list, warnings = self._boards.build_board_list(config_dir, src)
|
||||
self.assertEquals(2, len(params_list))
|
||||
self.assertFalse(warnings)
|
||||
self.assertEquals(
|
||||
['WARNING: orphaned defconfig in boards/board0/MAINTAINERS ending at line 16'],
|
||||
warnings)
|
||||
|
|
Loading…
Reference in a new issue