utils/get-developers: implement a -v action for DEVELOPERS file validation

Commit "45aabcddc5 utils/get-developers: really make it callable from
elsewhere than the toplevel directory" had a unforeseen side-effect:
the fact that check-developers with no arguments used to validate the
syntax of the DEVELOPERS no longer works. Indeed, the
parse_developers() call was moved *after* the check that verifies if
at least one action is passed. Due to this, the check-DEVELOPERS
verification in Gitlab CI, which invokes get-developers without
argument to validate the DEVELOPERS file... no longer does anything
useful.

In order to fix this, we introduce an explicit action in
get-developers to request the validation of the DEVELOPERS file. The
implementation is trivial, as the validation is already done by
calling parse_developers(), but at least now we have an action that
does "nothing", except execute until the validation is done.

This is also much more explicit than "invoke get-developers without
arguments to just do validation".

The initial investigation of the issue was done by Ricardo Martincoski
<ricardo.martincoski@gmail.com> and reported at
https://patchwork.ozlabs.org/project/buildroot/patch/20220528014832.289907-1-ricardo.martincoski@gmail.com/,
but we have chosen to introduce a separate -v option rather than
making the validation part of the existing -c action, which serves a
different purpose.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Thomas Petazzoni 2022-07-23 15:42:26 +02:00
parent dc000bd1a6
commit 47f359a615
2 changed files with 13 additions and 2 deletions

View File

@ -45,5 +45,6 @@ the +DEVELOPERS+ file for various tasks:
list the ones that are not handled by any developer. The purpose of
this option is to help completing the +DEVELOPERS+ file.
- When using without any arguments, it validates the integrity of the
DEVELOPERS file and will note WARNINGS for items that don't match.
- When using the +-v+ command line option, it validates the integrity
of the DEVELOPERS file and will note WARNINGS for items that don't
match.

View File

@ -19,6 +19,8 @@ def parse_args():
const=True, help='list files not handled by any developer')
parser.add_argument('-e', dest='email', action='store_const',
const=True, help='only list affected developer email addresses')
parser.add_argument('-v', dest='validate', action='store_const',
const=True, help='validate syntax of DEVELOPERS file')
return parser.parse_args()
@ -35,6 +37,8 @@ def __main__():
action += 1
if args.check:
action += 1
if args.validate:
action += 1
if len(args.patches) != 0:
action += 1
if action > 1:
@ -48,6 +52,12 @@ def __main__():
if devs is None:
sys.exit(1)
# Validation is done by parse_developers() above and we error out
# if the validation didn't work, so if we reach here, it means
# validation passed, so we can simply bail out in success.
if args.validate:
return
# Handle the check action
if args.check:
files = getdeveloperlib.check_developers(devs)