From 6bf55572cc4b91398e56d458ce719cd3c543fc40 Mon Sep 17 00:00:00 2001 From: unknown <424401670@qq.com> Date: Fri, 29 Apr 2022 17:17:00 +0800 Subject: [PATCH 1/7] optimize change_log --- .../packaging_tools/change_log.py | 8 ++++++ .../packaging_tools/code_report.py | 27 ++++++++++--------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/tools/azure-sdk-tools/packaging_tools/change_log.py b/tools/azure-sdk-tools/packaging_tools/change_log.py index 7afb3f0d71d8..c446fb5233aa 100644 --- a/tools/azure-sdk-tools/packaging_tools/change_log.py +++ b/tools/azure-sdk-tools/packaging_tools/change_log.py @@ -144,6 +144,11 @@ def models(self, diff_entry): self.breaking_changes.append(_MODEL_PARAM_CHANGE_REQUIRED.format(parameter_name, model_name)) return + def client(self): + self.breaking_changes.append(_CLIENT_SIGNATURE_CHANGE) + return + + ## Features _ADD_OPERATION_GROUP = "Added operation group {}" @@ -156,6 +161,7 @@ def models(self, diff_entry): _REMOVE_OPERATION_GROUP = "Removed operation group {}" _REMOVE_OPERATION = "Removed operation {}.{}" _REMOVE_OPERATION_PARAM = "Operation {}.{} no longer has parameter {}" +_CLIENT_SIGNATURE_CHANGE = "Client name changed the original name" _MODEL_SIGNATURE_CHANGE = "Model {} has a new signature" _MODEL_PARAM_DELETE = "Model {} no longer has parameter {}" _MODEL_PARAM_ADD_REQUIRED = "Model {} has a new required parameter {}" @@ -174,6 +180,8 @@ def build_change_log(old_report, new_report): change_log.operation(diff_line) else: change_log.models(diff_line) + if diff_line[0][0] == 'client': + change_log.client() return change_log diff --git a/tools/azure-sdk-tools/packaging_tools/code_report.py b/tools/azure-sdk-tools/packaging_tools/code_report.py index 35ac4c48ab17..c8df7fad8919 100644 --- a/tools/azure-sdk-tools/packaging_tools/code_report.py +++ b/tools/azure-sdk-tools/packaging_tools/code_report.py @@ -20,7 +20,6 @@ # If I'm started by my main directly from venvtools import create_venv_with_package - _LOGGER = logging.getLogger(__name__) @@ -37,15 +36,20 @@ def parse_input(input_parameter): def create_empty_report(): - return {"models": {"enums": {}, "exceptions": {}, "models": {}}, "operations": {}} + return {"client": {}, "models": {"enums": {}, "exceptions": {}, "models": {}}, "operations": {}} def create_report(module_name: str) -> Dict[str, Any]: module_to_generate = importlib.import_module(module_name) + client_name = getattr(module_to_generate, '__all__') report = create_empty_report() # Look for models first + try: + report["client"] = client_name + except: + report["client"] = [] model_names = [model_name for model_name in dir(module_to_generate.models) if model_name[0].isupper()] for model_name in model_names: model_cls = getattr(module_to_generate.models, model_name) @@ -160,15 +164,14 @@ def merge_report(report_paths): def main( - input_parameter: str, - version: Optional[str] = None, - no_venv: bool = False, - pypi: bool = False, - last_pypi: bool = False, - output: Optional[str] = None, - metadata_path: Optional[str] = None, + input_parameter: str, + version: Optional[str] = None, + no_venv: bool = False, + pypi: bool = False, + last_pypi: bool = False, + output: Optional[str] = None, + metadata_path: Optional[str] = None, ): - output_msg = output if output else "default folder" _LOGGER.info( f"Building code report of {input_parameter} for version {version} in {output_msg} ({no_venv}/{pypi}/{last_pypi})" @@ -195,7 +198,7 @@ def main( for version in versions: _LOGGER.info(f"Installing version {version} of {package_name} in a venv") with create_venv_with_package( - [f"{package_name}=={version}"] + [f"{package_name}=={version}"] ) as venv, tempfile.TemporaryDirectory() as temp_dir: metadata_path = str(Path(temp_dir, f"metadata_{version}.json")) args = [ @@ -304,7 +307,7 @@ def get_sub_module_part(package_name, module_name): if not module_name.startswith(sub_module_from_package): _LOGGER.warning(f"Submodule {module_name} does not start with package name {package_name}") return - return module_name[len(sub_module_from_package) + 1 :] + return module_name[len(sub_module_from_package) + 1:] if __name__ == "__main__": From 01c16d8cc0bf99010011bfd26e07c6392ddfd8d7 Mon Sep 17 00:00:00 2001 From: zhenbiao wei <424401670@qq.com> Date: Fri, 29 Apr 2022 17:37:09 +0800 Subject: [PATCH 2/7] Update change_log.py --- tools/azure-sdk-tools/packaging_tools/change_log.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/tools/azure-sdk-tools/packaging_tools/change_log.py b/tools/azure-sdk-tools/packaging_tools/change_log.py index c446fb5233aa..97b1ba954141 100644 --- a/tools/azure-sdk-tools/packaging_tools/change_log.py +++ b/tools/azure-sdk-tools/packaging_tools/change_log.py @@ -145,10 +145,8 @@ def models(self, diff_entry): return def client(self): - self.breaking_changes.append(_CLIENT_SIGNATURE_CHANGE) - return - - + self.breaking_changes.append(_CLIENT_SIGNATURE_CHANGE) + return ## Features _ADD_OPERATION_GROUP = "Added operation group {}" @@ -161,7 +159,7 @@ def client(self): _REMOVE_OPERATION_GROUP = "Removed operation group {}" _REMOVE_OPERATION = "Removed operation {}.{}" _REMOVE_OPERATION_PARAM = "Operation {}.{} no longer has parameter {}" -_CLIENT_SIGNATURE_CHANGE = "Client name changed the original name" +_CLIENT_SIGNATURE_CHANGE = "Client name is changed" _MODEL_SIGNATURE_CHANGE = "Model {} has a new signature" _MODEL_PARAM_DELETE = "Model {} no longer has parameter {}" _MODEL_PARAM_ADD_REQUIRED = "Model {} has a new required parameter {}" From 7038151f165102f488a225c53a7d15e9401cf932 Mon Sep 17 00:00:00 2001 From: zhenbiao wei <424401670@qq.com> Date: Fri, 29 Apr 2022 17:40:54 +0800 Subject: [PATCH 3/7] Update code_report.py --- .../packaging_tools/code_report.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/tools/azure-sdk-tools/packaging_tools/code_report.py b/tools/azure-sdk-tools/packaging_tools/code_report.py index c8df7fad8919..ac54df311c58 100644 --- a/tools/azure-sdk-tools/packaging_tools/code_report.py +++ b/tools/azure-sdk-tools/packaging_tools/code_report.py @@ -45,11 +45,12 @@ def create_report(module_name: str) -> Dict[str, Any]: report = create_empty_report() - # Look for models first try: report["client"] = client_name except: report["client"] = [] + + # Look for models first model_names = [model_name for model_name in dir(module_to_generate.models) if model_name[0].isupper()] for model_name in model_names: model_cls = getattr(module_to_generate.models, model_name) @@ -164,13 +165,13 @@ def merge_report(report_paths): def main( - input_parameter: str, - version: Optional[str] = None, - no_venv: bool = False, - pypi: bool = False, - last_pypi: bool = False, - output: Optional[str] = None, - metadata_path: Optional[str] = None, + input_parameter: str, + version: Optional[str] = None, + no_venv: bool = False, + pypi: bool = False, + last_pypi: bool = False, + output: Optional[str] = None, + metadata_path: Optional[str] = None, ): output_msg = output if output else "default folder" _LOGGER.info( @@ -198,7 +199,7 @@ def main( for version in versions: _LOGGER.info(f"Installing version {version} of {package_name} in a venv") with create_venv_with_package( - [f"{package_name}=={version}"] + [f"{package_name}=={version}"] ) as venv, tempfile.TemporaryDirectory() as temp_dir: metadata_path = str(Path(temp_dir, f"metadata_{version}.json")) args = [ From b301895321d22a5b341b24a7421bb8d9f0974767 Mon Sep 17 00:00:00 2001 From: zhenbiao wei <424401670@qq.com> Date: Fri, 29 Apr 2022 17:42:48 +0800 Subject: [PATCH 4/7] Update code_report.py --- tools/azure-sdk-tools/packaging_tools/code_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/azure-sdk-tools/packaging_tools/code_report.py b/tools/azure-sdk-tools/packaging_tools/code_report.py index ac54df311c58..45926458c74d 100644 --- a/tools/azure-sdk-tools/packaging_tools/code_report.py +++ b/tools/azure-sdk-tools/packaging_tools/code_report.py @@ -308,7 +308,7 @@ def get_sub_module_part(package_name, module_name): if not module_name.startswith(sub_module_from_package): _LOGGER.warning(f"Submodule {module_name} does not start with package name {package_name}") return - return module_name[len(sub_module_from_package) + 1:] + return module_name[len(sub_module_from_package) + 1 :] if __name__ == "__main__": From bd51765ca6f28ab195b8454d78ecfbdcfd15c03f Mon Sep 17 00:00:00 2001 From: zhenbiao wei <424401670@qq.com> Date: Thu, 5 May 2022 13:37:12 +0800 Subject: [PATCH 5/7] Update code_report.py --- tools/azure-sdk-tools/packaging_tools/code_report.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/azure-sdk-tools/packaging_tools/code_report.py b/tools/azure-sdk-tools/packaging_tools/code_report.py index 45926458c74d..28f7243ca40f 100644 --- a/tools/azure-sdk-tools/packaging_tools/code_report.py +++ b/tools/azure-sdk-tools/packaging_tools/code_report.py @@ -20,6 +20,7 @@ # If I'm started by my main directly from venvtools import create_venv_with_package + _LOGGER = logging.getLogger(__name__) From 4669cf414c8840cc38a4bccc2b8ef843840f5928 Mon Sep 17 00:00:00 2001 From: zhenbiao wei <424401670@qq.com> Date: Thu, 5 May 2022 13:38:49 +0800 Subject: [PATCH 6/7] Update code_report.py --- tools/azure-sdk-tools/packaging_tools/code_report.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/azure-sdk-tools/packaging_tools/code_report.py b/tools/azure-sdk-tools/packaging_tools/code_report.py index 28f7243ca40f..f7da0c2f2538 100644 --- a/tools/azure-sdk-tools/packaging_tools/code_report.py +++ b/tools/azure-sdk-tools/packaging_tools/code_report.py @@ -20,7 +20,7 @@ # If I'm started by my main directly from venvtools import create_venv_with_package - + _LOGGER = logging.getLogger(__name__) From 5d49dd332112a3761c447861ff5cd093d3238627 Mon Sep 17 00:00:00 2001 From: zhenbiao wei <424401670@qq.com> Date: Thu, 5 May 2022 13:39:52 +0800 Subject: [PATCH 7/7] Update code_report.py --- tools/azure-sdk-tools/packaging_tools/code_report.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/azure-sdk-tools/packaging_tools/code_report.py b/tools/azure-sdk-tools/packaging_tools/code_report.py index f7da0c2f2538..60f45fbbbc10 100644 --- a/tools/azure-sdk-tools/packaging_tools/code_report.py +++ b/tools/azure-sdk-tools/packaging_tools/code_report.py @@ -174,6 +174,7 @@ def main( output: Optional[str] = None, metadata_path: Optional[str] = None, ): + output_msg = output if output else "default folder" _LOGGER.info( f"Building code report of {input_parameter} for version {version} in {output_msg} ({no_venv}/{pypi}/{last_pypi})"