From 47b7a9cb1cc3ed33d5888ac966bd71f7dd2a644d Mon Sep 17 00:00:00 2001 From: Nate Jiang Date: Tue, 8 Aug 2023 14:00:37 -0700 Subject: Add check for string change All string change needs a add spricific bug to the commit. Also remove the PDD check as we will no longer update the proto Bug: 295059245 Test: TH Change-Id: Icab3679dd5d5348548954dfb2fedac71685ba36e --- PREUPLOAD.cfg | 3 +- metrics_pdd_hook.py | 84 ------------------------------------- overlayable_hook.py | 104 --------------------------------------------- wifi_upload_hook.py | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 119 insertions(+), 190 deletions(-) delete mode 100755 metrics_pdd_hook.py delete mode 100755 overlayable_hook.py create mode 100755 wifi_upload_hook.py diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg index 15c826130d..c26604c827 100644 --- a/PREUPLOAD.cfg +++ b/PREUPLOAD.cfg @@ -1,7 +1,6 @@ [Hook Scripts] checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPLOAD_COMMIT} -metrics_pdd_hook = ${REPO_ROOT}/packages/modules/Wifi/metrics_pdd_hook.py "service/proto/src/metrics.proto" ${PREUPLOAD_COMMIT_MESSAGE} ${PREUPLOAD_FILES} -resource_overlayable_hook = ${REPO_ROOT}/packages/modules/Wifi/overlayable_hook.py ${PREUPLOAD_COMMIT_MESSAGE} ${PREUPLOAD_FILES} +wifi_upload_hook = ${REPO_ROOT}/packages/modules/Wifi/wifi_upload_hook.py ${PREUPLOAD_COMMIT_MESSAGE} ${PREUPLOAD_FILES} hidden_api_txt_checksorted_hook = ${REPO_ROOT}/tools/platform-compat/hiddenapi/checksorted_sha.sh ${PREUPLOAD_COMMIT} ${REPO_ROOT} diff --git a/metrics_pdd_hook.py b/metrics_pdd_hook.py deleted file mode 100755 index 65d467cc29..0000000000 --- a/metrics_pdd_hook.py +++ /dev/null @@ -1,84 +0,0 @@ -#!/usr/bin/python3 - -# -# Copyright 2020, The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -from __future__ import print_function - -from argparse import ArgumentParser -import subprocess -import sys - - -def is_in_aosp(): - branches = subprocess.check_output(['git', 'branch', '-vv']).splitlines() - - for branch in branches: - # current branch starts with a '*' - if branch.startswith(b'*'): - return b'[aosp/' in branch - - # otherwise assume in AOSP - return True - - -def is_commit_msg_valid(commit_msg): - for line in commit_msg.splitlines(): - line = line.strip().lower() - if line.startswith('updated-pdd'): - return True - - return False - - -def main(): - parser = ArgumentParser(description='Check if the Privacy Design Doc (PDD) has been updated') - parser.add_argument('metrics_file', type=str, help='path to the metrics Protobuf file') - parser.add_argument('commit_msg', type=str, help='commit message') - parser.add_argument('commit_files', type=str, nargs='*', help='files changed in the commit') - args = parser.parse_args() - - metrics_file = args.metrics_file - commit_msg = args.commit_msg - commit_files = args.commit_files - - if is_in_aosp(): - return 0 - - if metrics_file not in commit_files: - return 0 - - if is_commit_msg_valid(commit_msg): - return 0 - - print('This commit has changed {metrics_file}.'.format(metrics_file=metrics_file)) - print('If this change added/changed/removed metrics collected from the device,') - print('please update the Wifi Metrics Privacy Design Doc (PDD) at go/wifi-metrics-pdd') - print('and acknowledge you have done so by adding this line to your commit message:') - print() - print('Updated-PDD: TRUE') - print() - print('Otherwise, please explain why the PDD does not need to be updated:') - print() - print('Updated-PDD: Not applicable - reformatted file') - print() - print('Please reach out to the OWNERS for more information about the Wifi Metrics PDD.') - return 1 - - -if __name__ == '__main__': - exit_code = main() - sys.exit(exit_code) diff --git a/overlayable_hook.py b/overlayable_hook.py deleted file mode 100755 index 52b33f7901..0000000000 --- a/overlayable_hook.py +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/python3 - -# Copyright (C) 2022 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from __future__ import print_function - -from argparse import ArgumentParser -import subprocess -import sys - -def is_commit_msg_valid(commit_msg): - for line in commit_msg.splitlines(): - line = line.strip().lower() - if line.startswith('updated-overlayable'): - return True - - return False - -def is_in_aosp(): - branches = subprocess.check_output(['git', 'branch', '-vv']).splitlines() - - for branch in branches: - # current branch starts with a '*' - if branch.startswith(b'*'): - return b'[aosp/' in branch - - # otherwise assume in AOSP - return True - -def get_changed_resource_file(base_dir, commit_files): - config_file = base_dir + "values/config.xml" - string_file = base_dir + "values/strings.xml" - styles_file = base_dir + "values/styles.xml" - drawable_dir = base_dir + "drawable/" - layout_dir = base_dir + "layout/" - - for commit_file in commit_files: - if commit_file == config_file: - return commit_file - if commit_file == string_file: - return commit_file - if commit_file == styles_file: - return commit_file - if commit_file.startswith(drawable_dir): - return commit_file - if commit_file.startswith(layout_dir): - return commit_file - return None - - - - -def main(): - parser = ArgumentParser(description='Check if the overlayable file has been updated') - parser.add_argument('commit_msg', type=str, help='commit message') - parser.add_argument('commit_files', type=str, nargs='*', help='files changed in the commit') - args = parser.parse_args() - - base_dir = "service/ServiceWifiResources/res/" - overlay_file = base_dir + "values/overlayable.xml" - commit_msg = args.commit_msg - commit_files = args.commit_files - - if is_in_aosp(): - return 0 - - changed_file = get_changed_resource_file(base_dir, commit_files) - - if not changed_file: - return 0 - - if is_commit_msg_valid(commit_msg): - return 0 - - print('This commit has changed: "{changed_file}".'.format(changed_file=changed_file)) - print() - print('If this change added/changed/removed overlayable resources used by the Wifi Module, ') - print('please update the "{overlay_file}".'.format(overlay_file=overlay_file)) - print('and acknowledge you have done so by adding this line to your commit message:') - print() - print('Updated-Overlayable: TRUE') - print() - print('Otherwise, please explain why the Overlayable does not need to be updated:') - print() - print('Updated-Overlayable: Not applicable - changing default value') - print() - return 1 - - -if __name__ == '__main__': - exit_code = main() - sys.exit(exit_code) \ No newline at end of file diff --git a/wifi_upload_hook.py b/wifi_upload_hook.py new file mode 100755 index 0000000000..55fa267c15 --- /dev/null +++ b/wifi_upload_hook.py @@ -0,0 +1,118 @@ +#!/usr/bin/python3 + +# Copyright (C) 2022 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from __future__ import print_function + +from argparse import ArgumentParser +import subprocess +import sys + +BASE_DIR = "service/ServiceWifiResources/res/" +OVERLAY_FILE = BASE_DIR + "values/overlayable.xml" +CONFIG_FILE = BASE_DIR + "values/config.xml" +STRING_FILE = BASE_DIR + "values/strings.xml" +STYLES_FILE = BASE_DIR + "values/styles.xml" +DRAWABLE_DIR = BASE_DIR + "drawable/" +LAYOUT_DIR = BASE_DIR + "layout/" + +def is_commit_msg_valid(commit_msg): + for line in commit_msg.splitlines(): + line = line.strip().lower() + if line.startswith('updated-overlayable'): + return True + + return False + +def is_in_aosp(): + branches = subprocess.check_output(['git', 'branch', '-vv']).splitlines() + + for branch in branches: + # current branch starts with a '*' + if branch.startswith(b'*'): + return b'[aosp/' in branch + + # otherwise assume in AOSP + return True + +def get_changed_resource_file(commit_files): + for commit_file in commit_files: + if commit_file == STRING_FILE: + return STRING_FILE + if commit_file == CONFIG_FILE: + return commit_file + if commit_file == STYLES_FILE: + return commit_file + if commit_file.startswith(DRAWABLE_DIR): + return commit_file + if commit_file.startswith(LAYOUT_DIR): + return commit_file + return None + +def is_commit_msg_has_translation_bug_id(commit_msg): + for line in commit_msg.splitlines(): + line = line.strip().lower() + if line.startswith('bug: 294871353'): + return True + return False + + +def main(): + parser = ArgumentParser(description='Check if the overlayable file has been updated') + parser.add_argument('commit_msg', type=str, help='commit message') + parser.add_argument('commit_files', type=str, nargs='*', help='files changed in the commit') + args = parser.parse_args() + + commit_msg = args.commit_msg + commit_files = args.commit_files + + if is_in_aosp(): + return 0 + + changed_file = get_changed_resource_file(commit_files) + + if not changed_file: + return 0 + if changed_file == STRING_FILE: + if not is_commit_msg_has_translation_bug_id(commit_msg): + print('This commit has changed: "{changed_file}".'.format(changed_file=changed_file)) + print() + print('Please add the following line to your commit message') + print() + print('Bug: 294871353') + print() + return 1 + + if is_commit_msg_valid(commit_msg): + return 0 + + print('This commit has changed: "{changed_file}".'.format(changed_file=changed_file)) + print() + print('If this change added/changed/removed overlayable resources used by the Wifi Module, ') + print('please update the "{overlay_file}".'.format(overlay_file=OVERLAY_FILE)) + print('and acknowledge you have done so by adding this line to your commit message:') + print() + print('Updated-Overlayable: TRUE') + print() + print('Otherwise, please explain why the Overlayable does not need to be updated:') + print() + print('Updated-Overlayable: Not applicable - changing default value') + print() + return 1 + + +if __name__ == '__main__': + exit_code = main() + sys.exit(exit_code) \ No newline at end of file -- cgit v1.2.3-59-g8ed1b