Browse Source

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>
Thomas Petazzoni 3 years ago
parent
commit
47f359a615
2 changed files with 13 additions and 2 deletions
  1. 3 2
      docs/manual/developers.txt
  2. 10 0
      utils/get-developers

+ 3 - 2
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.

+ 10 - 0
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)