From a3eca5979d1fc51e5627739db791609989ef4f73 Mon Sep 17 00:00:00 2001 From: xiaofeicao Date: Thu, 6 Mar 2025 17:49:27 +0800 Subject: [PATCH 1/2] changelog for self-serve --- eng/automation/generate.py | 15 ++++++++++++++- eng/automation/generate_utils.py | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/eng/automation/generate.py b/eng/automation/generate.py index e3ac47d63e7a..51b47eb91b64 100755 --- a/eng/automation/generate.py +++ b/eng/automation/generate.py @@ -244,7 +244,6 @@ def sdk_automation_typespec(config: dict) -> List[dict]: def sdk_automation_typespec_project(tsp_project: str, config: dict) -> dict: - # TODO(xiaofei) support changelog, etc base_dir = os.path.abspath(os.path.dirname(sys.argv[0])) sdk_root = os.path.abspath(os.path.join(base_dir, SDK_ROOT)) spec_root = os.path.abspath(config["specFolder"]) @@ -272,6 +271,7 @@ def sdk_automation_typespec_project(tsp_project: str, config: dict) -> dict: # compile succeeded = compile_arm_package(sdk_root, module) if succeeded: + logging.info("[Changelog] Start breaking change detection for SDK automation.") breaking, changelog, breaking_change_items = compare_with_maven_package( sdk_root, GROUP_ID, @@ -279,7 +279,20 @@ def sdk_automation_typespec_project(tsp_project: str, config: dict) -> dict: get_latest_ga_version(GROUP_ID, module, stable_version), current_version, module, + False ) + logging.info("[Changelog] Complete breaking change detection for SDK automation.") + logging.info("[Changelog] Start generating changelog.") + compare_with_maven_package( + sdk_root, + GROUP_ID, + service, + get_latest_release_version(stable_version, current_version), + current_version, + module + ) + update_changelog_version(sdk_root, output_folder, current_version) + logging.info("[Changelog] Complete generating changelog.") # output if sdk_folder and module and service: diff --git a/eng/automation/generate_utils.py b/eng/automation/generate_utils.py index ce077ac9beaf..16c7a007ff6c 100755 --- a/eng/automation/generate_utils.py +++ b/eng/automation/generate_utils.py @@ -189,7 +189,7 @@ def update_changelog(changelog_file, changelog): def compare_with_maven_package( - sdk_root: str, group_id: str, service: str, previous_version: str, current_version: str, module: str + sdk_root: str, group_id: str, service: str, previous_version: str, current_version: str, module: str, write_changelog: bool = True ): breaking = False changelog = "" @@ -221,7 +221,7 @@ def compare_with_maven_package( if not os.path.exists(new_jar): raise Exception("Cannot found built jar in {0}".format(new_jar)) breaking, changelog, breaking_changes = generate_changelog_and_breaking_change(sdk_root, old_jar, new_jar) - if changelog is not None: + if changelog is not None and write_changelog: changelog_file = os.path.join(sdk_root, CHANGELOG_FORMAT.format(service=service, artifact_id=module)) update_changelog(changelog_file, changelog) else: From 18d163d613e000d73db72f31c71632f1aaa7cf2b Mon Sep 17 00:00:00 2001 From: xiaofeicao Date: Fri, 7 Mar 2025 15:16:30 +0800 Subject: [PATCH 2/2] always write changelog --- eng/automation/generate.py | 3 +-- eng/automation/generate_utils.py | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/eng/automation/generate.py b/eng/automation/generate.py index 51b47eb91b64..94b0b9e3aea0 100755 --- a/eng/automation/generate.py +++ b/eng/automation/generate.py @@ -278,8 +278,7 @@ def sdk_automation_typespec_project(tsp_project: str, config: dict) -> dict: service, get_latest_ga_version(GROUP_ID, module, stable_version), current_version, - module, - False + module ) logging.info("[Changelog] Complete breaking change detection for SDK automation.") logging.info("[Changelog] Start generating changelog.") diff --git a/eng/automation/generate_utils.py b/eng/automation/generate_utils.py index 16c7a007ff6c..ce077ac9beaf 100755 --- a/eng/automation/generate_utils.py +++ b/eng/automation/generate_utils.py @@ -189,7 +189,7 @@ def update_changelog(changelog_file, changelog): def compare_with_maven_package( - sdk_root: str, group_id: str, service: str, previous_version: str, current_version: str, module: str, write_changelog: bool = True + sdk_root: str, group_id: str, service: str, previous_version: str, current_version: str, module: str ): breaking = False changelog = "" @@ -221,7 +221,7 @@ def compare_with_maven_package( if not os.path.exists(new_jar): raise Exception("Cannot found built jar in {0}".format(new_jar)) breaking, changelog, breaking_changes = generate_changelog_and_breaking_change(sdk_root, old_jar, new_jar) - if changelog is not None and write_changelog: + if changelog is not None: changelog_file = os.path.join(sdk_root, CHANGELOG_FORMAT.format(service=service, artifact_id=module)) update_changelog(changelog_file, changelog) else: