From 47f359a615ae4772ea9d03a5134785aec230c317 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Sat, 23 Jul 2022 15:42:26 +0200 Subject: [PATCH] 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 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 --- docs/manual/developers.txt | 5 +++-- utils/get-developers | 10 ++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/docs/manual/developers.txt b/docs/manual/developers.txt index 7058d57b20..29846b5650 100644 --- a/docs/manual/developers.txt +++ b/docs/manual/developers.txt @@ -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. diff --git a/utils/get-developers b/utils/get-developers index 22accaf181..158867ce3f 100755 --- a/utils/get-developers +++ b/utils/get-developers @@ -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)