Add presubmit check for relnotes field in accessibility changes.
R=akihiroota,dmazzoni,jam,dpranke
Change-Id: I37d5035967941da1d2e3d671426133668b87f0f3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2162427
Commit-Queue: Chris Hall <[email protected]>
Reviewed-by: John Abd-El-Malek <[email protected]>
Reviewed-by: Dirk Pranke <[email protected]>
Reviewed-by: Akihiro Ota <[email protected]>
Cr-Commit-Position: refs/heads/master@{#764594}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index abb83ec..b68e1ea 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -4196,6 +4196,46 @@
results.extend(_CheckAndroidXmlStyle(input_api, output_api, False))
return results
+# TODO(chrishall): could we additionally match on any path owned by
+# ui/accessibility/OWNERS ?
+_ACCESSIBILITY_PATHS = (
+ r"^chrome[\\/]browser.*[\\/]accessibility[\\/]",
+ r"^chrome[\\/]browser[\\/]extensions[\\/]api[\\/]automation.*[\\/]",
+ r"^chrome[\\/]renderer[\\/]extensions[\\/]accessibility_.*",
+ r"^chrome[\\/]tests[\\/]data[\\/]accessibility[\\/]",
+ r"^content[\\/]browser[\\/]accessibility[\\/]",
+ r"^content[\\/]renderer[\\/]accessibility[\\/]",
+ r"^content[\\/]tests[\\/]data[\\/]accessibility[\\/]",
+ r"^extensions[\\/]renderer[\\/]api[\\/]automation[\\/]",
+ r"^ui[\\/]accessibility[\\/]",
+ r"^ui[\\/]views[\\/]accessibility[\\/]",
+)
+
+def _CheckAccessibilityRelnotesField(input_api, output_api):
+ """Checks that commits to accessibility code contain an AX-Relnotes field in
+ their commit message."""
+ def FileFilter(affected_file):
+ paths = _ACCESSIBILITY_PATHS
+ return input_api.FilterSourceFile(affected_file, white_list=paths)
+
+ # Only consider changes affecting accessibility paths.
+ if not any(input_api.AffectedFiles(file_filter=FileFilter)):
+ return []
+
+ relnotes = input_api.change.GitFootersFromDescription().get('AX-Relnotes', [])
+ if relnotes:
+ return []
+
+ # TODO(chrishall): link to Relnotes documentation in message.
+ message = ("Missing 'AX-Relnotes:' field required for accessibility changes"
+ "\n please add 'AX-Relnotes: [release notes].' to describe any "
+ "user-facing changes"
+ "\n otherwise add 'AX-Relnotes: n/a.' if this change has no "
+ "user-facing effects"
+ "\n if this is confusing or annoying then please contact members "
+ "of ui/accessibility/OWNERS.")
+
+ return [output_api.PresubmitNotifyResult(message)]
def _CommonChecks(input_api, output_api):
"""Checks common to both upload and commit."""
@@ -4209,6 +4249,7 @@
results.extend(
input_api.canned_checks.CheckAuthorizedAuthor(input_api, output_api))
+ results.extend(_CheckAccessibilityRelnotesField(input_api, output_api))
results.extend(
_CheckNoProductionCodeUsingTestOnlyFunctions(input_api, output_api))
results.extend(