Skip to content

Commit 5f1bd72

Browse files
authored
Workaround for changelog generation when last stable version is outdated (Azure#47047)
* Workaround for changelog generation when last stable version is outdated * add log * update with review comments
1 parent 21f7af9 commit 5f1bd72

1 file changed

Lines changed: 19 additions & 4 deletions

File tree

eng/tools/azure-sdk-tools/packaging_tools/package_utils.py

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,21 +60,36 @@ def get_version_info(package_name: str, tag_is_stable: bool = False) -> Tuple[st
6060
ordered_versions = client.get_ordered_versions(package_name)
6161
last_release = ordered_versions[-1]
6262
stable_releases = [x for x in ordered_versions if not x.is_prerelease]
63-
last_stable_release = stable_releases[-1] if stable_releases else ""
63+
last_stable_version = str(stable_releases[-1] if stable_releases else "")
6464
if tag_is_stable:
65-
last_version = str(last_stable_release) if last_stable_release else str(last_release)
65+
last_version = last_stable_version if last_stable_version else str(last_release)
6666
else:
6767
last_version = str(last_release)
68+
69+
# temporary logic to always get latest version from pypi for specific packages whose latest stable version
70+
# is not updated for a long time and has some issue in changelog generation.
71+
# This is a workaround before we have a better solution to determine the version for changelog generation.
72+
sdks_with_changelog_issue = {"azure-mgmt-sql": "3.0.1"}
73+
if package_name in sdks_with_changelog_issue and (
74+
last_version == sdks_with_changelog_issue[package_name]
75+
or last_stable_version == sdks_with_changelog_issue[package_name]
76+
):
77+
_LOGGER.info(
78+
f"Package {package_name} has changelog generation issue with version {last_version}, fallback to get latest version from pypi"
79+
)
80+
last_version = str(last_release)
81+
last_stable_version = ""
82+
6883
except Exception as e:
6984
_LOGGER.warning(f"Failed to get version info from PyPI for {package_name}: {e}")
7085
last_version = ""
71-
last_stable_release = ""
86+
last_stable_version = ""
7287

7388
# Ignore 0.0.0 when it appears on PyPI as a placeholder or name-reservation version.
7489
if last_version and Version(last_version).base_version == "0.0.0":
7590
return "", ""
7691

77-
return last_version, str(last_stable_release)
92+
return last_version, last_stable_version
7893

7994

8095
def change_log_generate(

0 commit comments

Comments
 (0)