From a607feba10b20c8018f5e9d31ff282f4b6343112 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 15 Jun 2026 11:51:28 +0800 Subject: [PATCH 01/24] refresh for next stable release --- mgmt_sdk_report.md | 42 ++++++ mgmt_stable_sdk_report.py | 261 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 303 insertions(+) create mode 100644 mgmt_sdk_report.md create mode 100644 mgmt_stable_sdk_report.py diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md new file mode 100644 index 000000000000..de96a59690c1 --- /dev/null +++ b/mgmt_sdk_report.md @@ -0,0 +1,42 @@ +# Stable Management SDK Report + +Total kept SDKs: 36 + +| id | sdk name | api version | sdk version | pr link | release date | +| --- | --- | --- | --- | --- | --- | +| 1 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | +| 2 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | +| 3 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | +| 4 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | +| 5 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | +| 6 | azure-mgmt-computerecommender | 2025-06-05 | 1.0.0b1 | [#42783](https://github.com/Azure/azure-sdk-for-python/pull/42783) | 2025-09-04 | +| 7 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | +| 8 | azure-mgmt-containerorchestratorruntime | 2024-03-01 | 1.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2024-10-20 | +| 9 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | +| 10 | azure-mgmt-databasewatcher | 2025-01-02 | 1.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2025-02-28 | +| 11 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | +| 12 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | +| 13 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | +| 14 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | +| 15 | azure-mgmt-hybridconnectivity | 2024-12-01 | 2.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2025-04-01 | +| 16 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | +| 17 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | +| 18 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | +| 19 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | +| 20 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | +| 21 | azure-mgmt-monitorworkspaces | 2025-10-03 | 1.0.0b1 | [#46604](https://github.com/Azure/azure-sdk-for-python/pull/46604) | 2026-06-04 | +| 22 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | +| 23 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | +| 24 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | +| 25 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | +| 26 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | +| 27 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | +| 28 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | +| 29 | azure-mgmt-resource-bicep | 2023-11-01 | 1.0.0b1 | [#42629](https://github.com/Azure/azure-sdk-for-python/pull/42629) | 2025-06-25 | +| 30 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | +| 31 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | +| 32 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | +| 33 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | +| 34 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | +| 35 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | +| 36 | azure-mgmt-workloadorchestration | 2025-06-01 | 1.0.0b1 | [#42629](https://github.com/Azure/azure-sdk-for-python/pull/42629) | 2025-08-18 | diff --git a/mgmt_stable_sdk_report.py b/mgmt_stable_sdk_report.py new file mode 100644 index 000000000000..c1daa927c51d --- /dev/null +++ b/mgmt_stable_sdk_report.py @@ -0,0 +1,261 @@ +#!/usr/bin/env python3 +"""Generate a Markdown report of stable, non-SDK-bot management (mgmt) SDKs. + +Workflow: + (1) Discover all mgmt SDKs via the glob ``sdk/*/azure-mgmt-*/tsp-location.yaml`` + (ignoring cache/virtualenv folders such as ``.tox``, ``.venv``, + ``.pytest_cache``, ``.mypy_cache``, ...). + (2) Read each SDK's api-version from the ``:keyword api_version:`` docstring in + ``azure/mgmt/*/_client.py``. If the api-version contains ``preview`` -> + drop the SDK. + (3) Read the latest sdk version + release date from ``CHANGELOG.md``. If the + version contains ``b`` (beta/preview release) -> keep the SDK; otherwise + -> drop the SDK. + (4) Find the latest merged PR that touched the package directory (via the + squash-merge ``(#NNNN)`` reference on the last commit), then read the PR + body with ``gh``. If the body contains ``Submitted by`` -> drop the SDK. + (5) Write a Markdown table: + id / sdk name / api version / sdk version / pr link / release date. + +Use ``--limit 1`` to process a single SDK quickly for a manual sanity check. + +Requires the GitHub CLI (``gh``) to be installed and authenticated +(``gh auth login``) for the PR-body check. +""" + +from __future__ import annotations + +import argparse +import glob +import json +import re +import subprocess +import sys +from pathlib import Path +from typing import Optional + +REPO = "Azure/azure-sdk-for-python" +ROOT = Path(__file__).resolve().parent + +# Folders that may contain installed/cached copies of packages we must ignore. +IGNORED_PARTS = { + ".tox", + ".venv", + "venv", + ".pytest_cache", + ".mypy_cache", + ".pyright", + "__pycache__", + "node_modules", + ".git", + "build", + "dist", + ".eggs", +} + +# Regex helpers. +# The ``:keyword api_version:`` docstring block, captured up to ``:paramtype``. +_API_VERSION_DOC_RE = re.compile( + r":keyword api_version:.*?:paramtype\s+api_version:", re.DOTALL +) +# First quoted date-like api-version inside that block (e.g. "2026-01-01" or +# "2025-03-01-preview"). +_API_VERSION_VALUE_RE = re.compile(r'"(\d{4}-\d{2}-\d{2}[^"]*)"') +# CHANGELOG heading like ``## 5.0.0b1 (2026-05-27)``. +_CHANGELOG_RE = re.compile(r"^##\s+(\S+)\s+\((\d{4}-\d{2}-\d{2})\)") +_PR_NUMBER_RE = re.compile(r"\(#(\d+)\)") + + +def log(message: str) -> None: + """Print progress to stderr so stdout stays clean.""" + print(message, file=sys.stderr, flush=True) + + +def find_mgmt_sdks() -> list[Path]: + """Return sorted package directories that contain a tsp-location.yaml. + + Paths under cache/virtualenv folders are filtered out. + """ + pattern = str(ROOT / "sdk" / "*" / "azure-mgmt-*" / "tsp-location.yaml") + result: list[Path] = [] + for match in glob.glob(pattern): + path = Path(match) + if IGNORED_PARTS.intersection(path.parts): + continue + result.append(path.parent) + return sorted(result) + + +def get_api_version(pkg_dir: Path) -> Optional[str]: + """Read the api-version from the _client.py ``:keyword api_version:`` docstring.""" + candidates = [ + c for c in pkg_dir.glob("azure/mgmt/*/_client.py") if "aio" not in c.parts + ] + if not candidates: + candidates = [ + c for c in pkg_dir.glob("azure/mgmt/**/_client.py") if "aio" not in c.parts + ] + for client in sorted(candidates): + block = _API_VERSION_DOC_RE.search(client.read_text(encoding="utf-8")) + if not block: + continue + value = _API_VERSION_VALUE_RE.search(block.group(0)) + if value: + return value.group(1) + return None + + +def get_version_and_release_date(pkg_dir: Path) -> tuple[Optional[str], Optional[str]]: + """Read the latest (version, release date) from CHANGELOG.md.""" + changelog = pkg_dir / "CHANGELOG.md" + if not changelog.exists(): + return None, None + for line in changelog.read_text(encoding="utf-8").splitlines(): + match = _CHANGELOG_RE.match(line.strip()) + if match: + return match.group(1), match.group(2) + return None, None + + +def get_latest_pr_number(pkg_dir: Path) -> Optional[str]: + """Find the latest merged PR number touching the package directory. + + Uses ``git log`` over the package path and extracts the squash-merge + ``(#NNNN)`` reference from the most recent commit subject that has one. + """ + rel_path = pkg_dir.relative_to(ROOT).as_posix() + result = subprocess.run( + ["git", "log", "-n", "50", "--format=%s", "--", rel_path], + cwd=ROOT, + capture_output=True, + text=True, + ) + if result.returncode != 0: + log(f" ! git log failed for {rel_path}: {result.stderr.strip()}") + return None + for subject in result.stdout.splitlines(): + match = _PR_NUMBER_RE.search(subject) + if match: + return match.group(1) + return None + + +def get_pr_body_and_url(pr_number: str) -> tuple[Optional[str], str]: + """Return (body, url) for a PR using the gh CLI. + + Returns (None, url) when the body could not be retrieved. + """ + url = f"https://github.com/{REPO}/pull/{pr_number}" + result = subprocess.run( + ["gh", "pr", "view", pr_number, "--repo", REPO, "--json", "body,url"], + cwd=ROOT, + capture_output=True, + text=True, + ) + if result.returncode != 0: + log(f" ! gh pr view {pr_number} failed: {result.stderr.strip()}") + return None, url + try: + data = json.loads(result.stdout) + except json.JSONDecodeError: + return None, url + return data.get("body") or "", data.get("url") or url + + +def build_report(rows: list[dict]) -> str: + """Render the kept SDK rows as a Markdown document with a table.""" + lines = [ + "# Stable Management SDK Report", + "", + f"Total kept SDKs: {len(rows)}", + "", + "| id | sdk name | api version | sdk version | pr link | release date |", + "| --- | --- | --- | --- | --- | --- |", + ] + for index, row in enumerate(rows, start=1): + pr_link = f"[#{row['pr_number']}]({row['pr_url']})" if row.get("pr_number") else "" + lines.append( + f"| {index} | {row['name']} | {row['api_version']} | " + f"{row.get('sdk_version') or ''} | {pr_link} | " + f"{row.get('release_date') or ''} |" + ) + lines.append("") + return "\n".join(lines) + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + parser.add_argument( + "--limit", + type=int, + default=0, + help="Process only the first N discovered SDKs (use 1 for a quick check). 0 = all.", + ) + parser.add_argument( + "--output", + default=str(ROOT / "mgmt_sdk_report.md"), + help="Path to the output Markdown file.", + ) + args = parser.parse_args() + + sdks = find_mgmt_sdks() + log(f"Discovered {len(sdks)} mgmt SDK(s).") + if args.limit > 0: + sdks = sdks[: args.limit] + log(f"Limiting to first {len(sdks)} SDK(s) (--limit {args.limit}).") + + kept: list[dict] = [] + for pkg_dir in sdks: + name = pkg_dir.name + log(f"Processing {name} ...") + + api_version = get_api_version(pkg_dir) + if not api_version: + log(" - skip: no api-version found") + continue + if "preview" in api_version.lower(): + log(f" - skip: preview api-version ({api_version})") + continue + + sdk_version, release_date = get_version_and_release_date(pkg_dir) + if not sdk_version: + log(" - skip: no version found in CHANGELOG.md") + continue + if "b" not in sdk_version.lower(): + log(f" - skip: non-beta sdk version ({sdk_version})") + continue + + pr_number = get_latest_pr_number(pkg_dir) + if not pr_number: + log(" - skip: no PR found for package path") + continue + + body, pr_url = get_pr_body_and_url(pr_number) + if body is not None and "Submitted by" in body: + log(f" - skip: PR #{pr_number} body contains 'Submitted by'") + continue + + kept.append( + { + "name": name, + "api_version": api_version, + "sdk_version": sdk_version, + "release_date": release_date, + "pr_number": pr_number, + "pr_url": pr_url, + } + ) + log( + f" + keep: api={api_version}, version={sdk_version}, " + f"release={release_date}, pr=#{pr_number}" + ) + + report = build_report(kept) + output_path = Path(args.output) + output_path.write_text(report, encoding="utf-8") + log(f"Wrote {len(kept)} row(s) to {output_path}") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) From 6e5f072ee4212c5736d4693887bd824e28fcfbbe Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 15 Jun 2026 12:02:34 +0800 Subject: [PATCH 02/24] refresh for next stable release --- mgmt_sdk_report.md | 72 +++++++++++++++++++-------------------- mgmt_stable_sdk_report.py | 3 ++ 2 files changed, 39 insertions(+), 36 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index de96a59690c1..00ff2930d41a 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -4,39 +4,39 @@ Total kept SDKs: 36 | id | sdk name | api version | sdk version | pr link | release date | | --- | --- | --- | --- | --- | --- | -| 1 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | -| 2 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | -| 3 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | -| 4 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | -| 5 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | -| 6 | azure-mgmt-computerecommender | 2025-06-05 | 1.0.0b1 | [#42783](https://github.com/Azure/azure-sdk-for-python/pull/42783) | 2025-09-04 | -| 7 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | -| 8 | azure-mgmt-containerorchestratorruntime | 2024-03-01 | 1.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2024-10-20 | -| 9 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | -| 10 | azure-mgmt-databasewatcher | 2025-01-02 | 1.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2025-02-28 | -| 11 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | -| 12 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | -| 13 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | -| 14 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | -| 15 | azure-mgmt-hybridconnectivity | 2024-12-01 | 2.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2025-04-01 | -| 16 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | -| 17 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | -| 18 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | -| 19 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | -| 20 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | -| 21 | azure-mgmt-monitorworkspaces | 2025-10-03 | 1.0.0b1 | [#46604](https://github.com/Azure/azure-sdk-for-python/pull/46604) | 2026-06-04 | -| 22 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | -| 23 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | -| 24 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | -| 25 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | -| 26 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | -| 27 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | -| 28 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | -| 29 | azure-mgmt-resource-bicep | 2023-11-01 | 1.0.0b1 | [#42629](https://github.com/Azure/azure-sdk-for-python/pull/42629) | 2025-06-25 | -| 30 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | -| 31 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | -| 32 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | -| 33 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | -| 34 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | -| 35 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | -| 36 | azure-mgmt-workloadorchestration | 2025-06-01 | 1.0.0b1 | [#42629](https://github.com/Azure/azure-sdk-for-python/pull/42629) | 2025-08-18 | +| 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | +| 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | +| 3 | azure-mgmt-monitorworkspaces | 2025-10-03 | 1.0.0b1 | [#46604](https://github.com/Azure/azure-sdk-for-python/pull/46604) | 2026-06-04 | +| 4 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | +| 5 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | +| 6 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | +| 7 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | +| 8 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | +| 9 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | +| 10 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | +| 11 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | +| 12 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | +| 13 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | +| 14 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | +| 15 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | +| 16 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | +| 17 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | +| 18 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | +| 19 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | +| 20 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | +| 21 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | +| 22 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | +| 23 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | +| 24 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | +| 25 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | +| 26 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | +| 27 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | +| 28 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | +| 29 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | +| 30 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | +| 31 | azure-mgmt-computerecommender | 2025-06-05 | 1.0.0b1 | [#42783](https://github.com/Azure/azure-sdk-for-python/pull/42783) | 2025-09-04 | +| 32 | azure-mgmt-workloadorchestration | 2025-06-01 | 1.0.0b1 | [#42629](https://github.com/Azure/azure-sdk-for-python/pull/42629) | 2025-08-18 | +| 33 | azure-mgmt-resource-bicep | 2023-11-01 | 1.0.0b1 | [#42629](https://github.com/Azure/azure-sdk-for-python/pull/42629) | 2025-06-25 | +| 34 | azure-mgmt-hybridconnectivity | 2024-12-01 | 2.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2025-04-01 | +| 35 | azure-mgmt-databasewatcher | 2025-01-02 | 1.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2025-02-28 | +| 36 | azure-mgmt-containerorchestratorruntime | 2024-03-01 | 1.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2024-10-20 | diff --git a/mgmt_stable_sdk_report.py b/mgmt_stable_sdk_report.py index c1daa927c51d..b76ba8fb5598 100644 --- a/mgmt_stable_sdk_report.py +++ b/mgmt_stable_sdk_report.py @@ -250,6 +250,9 @@ def main() -> int: f"release={release_date}, pr=#{pr_number}" ) + # Sort from newest to oldest release date (rows without a date sort last). + kept.sort(key=lambda row: row.get("release_date") or "", reverse=True) + report = build_report(kept) output_path = Path(args.output) output_path.write_text(report, encoding="utf-8") From b3d68c3e95c304f89d470e5eefd1fe05ffddce1f Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Mon, 15 Jun 2026 12:52:44 +0800 Subject: [PATCH 03/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 00ff2930d41a..28a09e16175d 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -1,7 +1,5 @@ # Stable Management SDK Report -Total kept SDKs: 36 - | id | sdk name | api version | sdk version | pr link | release date | | --- | --- | --- | --- | --- | --- | | 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | @@ -34,9 +32,3 @@ Total kept SDKs: 36 | 28 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | | 29 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | | 30 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | -| 31 | azure-mgmt-computerecommender | 2025-06-05 | 1.0.0b1 | [#42783](https://github.com/Azure/azure-sdk-for-python/pull/42783) | 2025-09-04 | -| 32 | azure-mgmt-workloadorchestration | 2025-06-01 | 1.0.0b1 | [#42629](https://github.com/Azure/azure-sdk-for-python/pull/42629) | 2025-08-18 | -| 33 | azure-mgmt-resource-bicep | 2023-11-01 | 1.0.0b1 | [#42629](https://github.com/Azure/azure-sdk-for-python/pull/42629) | 2025-06-25 | -| 34 | azure-mgmt-hybridconnectivity | 2024-12-01 | 2.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2025-04-01 | -| 35 | azure-mgmt-databasewatcher | 2025-01-02 | 1.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2025-02-28 | -| 36 | azure-mgmt-containerorchestratorruntime | 2024-03-01 | 1.0.0b1 | [#44943](https://github.com/Azure/azure-sdk-for-python/pull/44943) | 2024-10-20 | From 6105381376e96796fc8f5f9e4daaba4bec7b24d2 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 24 Jun 2026 11:15:57 +0800 Subject: [PATCH 04/24] update --- mgmt_sdk_report.md | 57 +++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 28a09e16175d..4eb7c850cbdb 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -1,34 +1,35 @@ # Stable Management SDK Report +Total kept SDKs: 35 + | id | sdk name | api version | sdk version | pr link | release date | | --- | --- | --- | --- | --- | --- | | 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | | 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | -| 3 | azure-mgmt-monitorworkspaces | 2025-10-03 | 1.0.0b1 | [#46604](https://github.com/Azure/azure-sdk-for-python/pull/46604) | 2026-06-04 | -| 4 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | -| 5 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | -| 6 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | -| 7 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | -| 8 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | -| 9 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | -| 10 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | -| 11 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | -| 12 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | -| 13 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | -| 14 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | -| 15 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | -| 16 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | -| 17 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | -| 18 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | -| 19 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | -| 20 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | -| 21 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | -| 22 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | -| 23 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | -| 24 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | -| 25 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | -| 26 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | -| 27 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | -| 28 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | -| 29 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | -| 30 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | +| 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | +| 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | +| 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | +| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | +| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | +| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | +| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | +| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | +| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | +| 12 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | +| 13 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | +| 14 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | +| 15 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | +| 16 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | +| 17 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | +| 18 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | +| 19 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | +| 20 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | +| 21 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | +| 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | +| 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | +| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | +| 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | +| 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | +| 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | +| 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | +| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | From 3f962be68a4350a798a62f5cca528433e076208d Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 24 Jun 2026 12:00:13 +0800 Subject: [PATCH 05/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 1 - 1 file changed, 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 4eb7c850cbdb..41f871276687 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -1,6 +1,5 @@ # Stable Management SDK Report -Total kept SDKs: 35 | id | sdk name | api version | sdk version | pr link | release date | | --- | --- | --- | --- | --- | --- | From 46d8d2ccac67f6c02bd26d2c3559f50b4b566625 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:15:27 +0800 Subject: [PATCH 06/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 60 +++++++++++++++++++++++----------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 41f871276687..04ed83fbf7dc 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -1,34 +1,34 @@ # Stable Management SDK Report -| id | sdk name | api version | sdk version | pr link | release date | +| id | sdk name | api version | sdk version | pr link | release date | state | | --- | --- | --- | --- | --- | --- | -| 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | -| 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | -| 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | -| 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | -| 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | -| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | -| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | -| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | -| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | -| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | -| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | -| 12 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | -| 13 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | -| 14 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | -| 15 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | -| 16 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | -| 17 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | -| 18 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | -| 19 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | -| 20 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | -| 21 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | -| 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | -| 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | -| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | -| 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | -| 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | -| 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | -| 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | -| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | +| 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | refreshed | +| 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | refreshed | +| 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | refreshed | +| 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | refreshed | +| 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | | +| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | | +| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | | +| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | | +| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | | +| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | | +| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | | +| 12 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | | +| 13 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | | +| 14 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | | +| 15 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | | +| 16 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | | +| 17 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | | +| 18 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | | +| 19 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | | +| 20 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | | +| 21 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | | +| 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | | +| 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | | +| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | | +| 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | | +| 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | | +| 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | | +| 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | | +| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | | From 63d9760309e374be38664a1dda5a78649b7297b0 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Thu, 25 Jun 2026 17:24:27 +0800 Subject: [PATCH 07/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 62 +++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 04ed83fbf7dc..da7986d948d0 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -1,34 +1,34 @@ # Stable Management SDK Report -| id | sdk name | api version | sdk version | pr link | release date | state | -| --- | --- | --- | --- | --- | --- | -| 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | refreshed | -| 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | refreshed | -| 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | refreshed | -| 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | refreshed | -| 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | | -| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | | -| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | | -| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | | -| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | | -| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | | -| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | | -| 12 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | | -| 13 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | | -| 14 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | | -| 15 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | | -| 16 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | | -| 17 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | | -| 18 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | | -| 19 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | | -| 20 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | | -| 21 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | | -| 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | | -| 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | | -| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | | -| 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | | -| 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | | -| 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | | -| 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | | -| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | | +| id | sdk name | api version | sdk version | pr link | release date | state | refresh link | +| --- | --- | --- | --- | --- | --- | --- | --- | +| 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | refreshed | [47626](https://github.com/Azure/azure-sdk-for-python/pull/47626) | +| 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | refreshed | [47629](https://github.com/Azure/azure-sdk-for-python/pull/47629) | +| 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | refreshed | [47630](https://github.com/Azure/azure-sdk-for-python/pull/47630) | +| 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | refreshed | [47628](https://github.com/Azure/azure-sdk-for-python/pull/47628) | +| 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | Doing | [47631](https://github.com/Azure/azure-sdk-for-python/pull/47631) | +| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Not Started | | +| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Not Started | | +| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Not Started | | +| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | Not Started | | +| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | Not Started | | +| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | Not Started | | +| 12 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | Not Started | | +| 13 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | Not Started | | +| 14 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | Not Started | | +| 15 | azure-mgmt-consumption | 2024-08-01 | 11.0.0b2 | [#47108](https://github.com/Azure/azure-sdk-for-python/pull/47108) | 2026-05-25 | Not Started | | +| 16 | azure-mgmt-cdn | 2025-12-01 | 14.0.0b1 | [#47073](https://github.com/Azure/azure-sdk-for-python/pull/47073) | 2026-05-22 | Not Started | | +| 17 | azure-mgmt-resource-databoundaries | 2024-08-01 | 1.0.0b2 | [#47043](https://github.com/Azure/azure-sdk-for-python/pull/47043) | 2026-05-21 | Not Started | | +| 18 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | Not Started | | +| 19 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | Not Started | | +| 20 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | Not Started | | +| 21 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | Not Started | | +| 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | Doing | [47668](https://github.com/Azure/azure-sdk-for-python/pull/47668) | +| 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | Doing | [47667](https://github.com/Azure/azure-sdk-for-python/pull/47667) | +| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | Doing | [47665](https://github.com/Azure/azure-sdk-for-python/pull/47665) | +| 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | Doing | [47664](https://github.com/Azure/azure-sdk-for-python/pull/47640) | +| 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | Doing | [47639](https://github.com/Azure/azure-sdk-for-python/pull/47639) | +| 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | Doing | [47638](https://github.com/Azure/azure-sdk-for-python/pull/47638) | +| 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | Doing | [47636](https://github.com/Azure/azure-sdk-for-python/pull/47636) | +| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | Doing | [47635](https://github.com/Azure/azure-sdk-for-python/pull/47635) | From 5f408842844b45b7a670985d99021f16db244114 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Tue, 30 Jun 2026 11:31:07 +0800 Subject: [PATCH 08/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index da7986d948d0..08e8281a31aa 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -26,9 +26,9 @@ | 21 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | Not Started | | | 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | Doing | [47668](https://github.com/Azure/azure-sdk-for-python/pull/47668) | | 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | Doing | [47667](https://github.com/Azure/azure-sdk-for-python/pull/47667) | -| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | Doing | [47665](https://github.com/Azure/azure-sdk-for-python/pull/47665) | +| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | Refreshed | [47665](https://github.com/Azure/azure-sdk-for-python/pull/47665) | | 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | Doing | [47664](https://github.com/Azure/azure-sdk-for-python/pull/47640) | | 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | Doing | [47639](https://github.com/Azure/azure-sdk-for-python/pull/47639) | | 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | Doing | [47638](https://github.com/Azure/azure-sdk-for-python/pull/47638) | | 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | Doing | [47636](https://github.com/Azure/azure-sdk-for-python/pull/47636) | -| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | Doing | [47635](https://github.com/Azure/azure-sdk-for-python/pull/47635) | +| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | Refreshed | [47635](https://github.com/Azure/azure-sdk-for-python/pull/47635) | From 64b85d820367ccef756ad030618b792170f3bf1e Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Tue, 30 Jun 2026 14:01:51 +0800 Subject: [PATCH 09/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 08e8281a31aa..73fa3e09d456 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -27,7 +27,7 @@ | 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | Doing | [47668](https://github.com/Azure/azure-sdk-for-python/pull/47668) | | 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | Doing | [47667](https://github.com/Azure/azure-sdk-for-python/pull/47667) | | 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | Refreshed | [47665](https://github.com/Azure/azure-sdk-for-python/pull/47665) | -| 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | Doing | [47664](https://github.com/Azure/azure-sdk-for-python/pull/47640) | +| 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | Not Started | | | 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | Doing | [47639](https://github.com/Azure/azure-sdk-for-python/pull/47639) | | 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | Doing | [47638](https://github.com/Azure/azure-sdk-for-python/pull/47638) | | 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | Doing | [47636](https://github.com/Azure/azure-sdk-for-python/pull/47636) | From 3ef8152158980938296a32adfd62429ac643797f Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Fri, 3 Jul 2026 11:08:42 +0800 Subject: [PATCH 10/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 73fa3e09d456..8ebd2832dd95 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -3,11 +3,11 @@ | id | sdk name | api version | sdk version | pr link | release date | state | refresh link | | --- | --- | --- | --- | --- | --- | --- | --- | -| 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | refreshed | [47626](https://github.com/Azure/azure-sdk-for-python/pull/47626) | -| 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | refreshed | [47629](https://github.com/Azure/azure-sdk-for-python/pull/47629) | -| 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | refreshed | [47630](https://github.com/Azure/azure-sdk-for-python/pull/47630) | -| 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | refreshed | [47628](https://github.com/Azure/azure-sdk-for-python/pull/47628) | -| 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | Doing | [47631](https://github.com/Azure/azure-sdk-for-python/pull/47631) | +| 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | Done | [47626](https://github.com/Azure/azure-sdk-for-python/pull/47626) | +| 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | Done | [47629](https://github.com/Azure/azure-sdk-for-python/pull/47629) | +| 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | Done | [47630](https://github.com/Azure/azure-sdk-for-python/pull/47630) | +| 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | Done | [47628](https://github.com/Azure/azure-sdk-for-python/pull/47628) | +| 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | Done | [47631](https://github.com/Azure/azure-sdk-for-python/pull/47631) | | 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Not Started | | | 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Not Started | | | 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Not Started | | @@ -23,12 +23,12 @@ | 18 | azure-mgmt-resource-deployments | 2025-04-01 | 1.0.0b2 | [#47044](https://github.com/Azure/azure-sdk-for-python/pull/47044) | 2026-05-21 | Not Started | | | 19 | azure-mgmt-resource-subscriptions | 2022-12-01 | 1.0.0b2 | [#47042](https://github.com/Azure/azure-sdk-for-python/pull/47042) | 2026-05-21 | Not Started | | | 20 | azure-mgmt-hybridkubernetes | 2026-05-01 | 2.0.0b1 | [#47018](https://github.com/Azure/azure-sdk-for-python/pull/47018) | 2026-05-20 | Not Started | | -| 21 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | Not Started | | -| 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | Doing | [47668](https://github.com/Azure/azure-sdk-for-python/pull/47668) | -| 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | Doing | [47667](https://github.com/Azure/azure-sdk-for-python/pull/47667) | -| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | Refreshed | [47665](https://github.com/Azure/azure-sdk-for-python/pull/47665) | +| 21 | azure-mgmt-certificateregistration | 2024-11-01 | 1.0.0b1 | [#46569](https://github.com/Azure/azure-sdk-for-python/pull/46569) | 2026-04-28 | Done | [47764](https://github.com/Azure/azure-sdk-for-python/pull/47764) | +| 22 | azure-mgmt-domainregistration | 2024-11-01 | 1.0.0b1 | [#46570](https://github.com/Azure/azure-sdk-for-python/pull/46570) | 2026-04-28 | Done | [47668](https://github.com/Azure/azure-sdk-for-python/pull/47668) | +| 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | Done | [47667](https://github.com/Azure/azure-sdk-for-python/pull/47667) | +| 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | Done | [47665](https://github.com/Azure/azure-sdk-for-python/pull/47665) | | 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | Not Started | | -| 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | Doing | [47639](https://github.com/Azure/azure-sdk-for-python/pull/47639) | -| 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | Doing | [47638](https://github.com/Azure/azure-sdk-for-python/pull/47638) | +| 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | Done | [47639](https://github.com/Azure/azure-sdk-for-python/pull/47639) | +| 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | Done | [47638](https://github.com/Azure/azure-sdk-for-python/pull/47638) | | 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | Doing | [47636](https://github.com/Azure/azure-sdk-for-python/pull/47636) | | 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | Refreshed | [47635](https://github.com/Azure/azure-sdk-for-python/pull/47635) | From 5e7dbe0919240e09d89c2cf6cb3beb42fe5cd247 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Fri, 3 Jul 2026 11:08:59 +0800 Subject: [PATCH 11/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 8ebd2832dd95..084f0c597745 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -31,4 +31,4 @@ | 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | Done | [47639](https://github.com/Azure/azure-sdk-for-python/pull/47639) | | 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | Done | [47638](https://github.com/Azure/azure-sdk-for-python/pull/47638) | | 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | Doing | [47636](https://github.com/Azure/azure-sdk-for-python/pull/47636) | -| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | Refreshed | [47635](https://github.com/Azure/azure-sdk-for-python/pull/47635) | +| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | Done | [47635](https://github.com/Azure/azure-sdk-for-python/pull/47635) | From 3a8c694eaabe3b0fcf87189f49bb06ffe33950f2 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Fri, 3 Jul 2026 11:09:21 +0800 Subject: [PATCH 12/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 084f0c597745..5adbaef930bc 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -30,5 +30,5 @@ | 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | Not Started | | | 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | Done | [47639](https://github.com/Azure/azure-sdk-for-python/pull/47639) | | 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | Done | [47638](https://github.com/Azure/azure-sdk-for-python/pull/47638) | -| 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | Doing | [47636](https://github.com/Azure/azure-sdk-for-python/pull/47636) | +| 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | Done | [47636](https://github.com/Azure/azure-sdk-for-python/pull/47636) | | 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | Done | [47635](https://github.com/Azure/azure-sdk-for-python/pull/47635) | From e23e25a1eb67ec65db884a002bbcb16ad0bf82a6 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Tue, 7 Jul 2026 17:00:52 +0800 Subject: [PATCH 13/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 5adbaef930bc..58c27f0f1f62 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -8,7 +8,7 @@ | 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | Done | [47630](https://github.com/Azure/azure-sdk-for-python/pull/47630) | | 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | Done | [47628](https://github.com/Azure/azure-sdk-for-python/pull/47628) | | 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | Done | [47631](https://github.com/Azure/azure-sdk-for-python/pull/47631) | -| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Not Started | | +| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Doing | [47908](https://github.com/Azure/azure-sdk-for-python/pull/47908) | | 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Not Started | | | 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Not Started | | | 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | Not Started | | From 224de0a92558a0ac1e576e08ffc1d5cb3b2508c3 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Tue, 7 Jul 2026 17:31:32 +0800 Subject: [PATCH 14/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 58c27f0f1f62..07709475c8a6 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -9,7 +9,7 @@ | 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | Done | [47628](https://github.com/Azure/azure-sdk-for-python/pull/47628) | | 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | Done | [47631](https://github.com/Azure/azure-sdk-for-python/pull/47631) | | 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Doing | [47908](https://github.com/Azure/azure-sdk-for-python/pull/47908) | -| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Not Started | | +| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Doing | [47910](https://github.com/Azure/azure-sdk-for-python/pull/47910) | | 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Not Started | | | 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | Not Started | | | 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | Not Started | | From 19aec7bfb29301cd6936f2b55c1e7decd286547b Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Wed, 8 Jul 2026 12:57:45 +0800 Subject: [PATCH 15/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 07709475c8a6..6ff3e161077e 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -10,7 +10,7 @@ | 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | Done | [47631](https://github.com/Azure/azure-sdk-for-python/pull/47631) | | 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Doing | [47908](https://github.com/Azure/azure-sdk-for-python/pull/47908) | | 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Doing | [47910](https://github.com/Azure/azure-sdk-for-python/pull/47910) | -| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Not Started | | +| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Doing | [47925](https://github.com/Azure/azure-sdk-for-python/pull/47925) | | 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | Not Started | | | 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | Not Started | | | 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | Not Started | | From 8d243b5234e06be9211e15e988b93b6eb3ef857c Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:38:24 +0800 Subject: [PATCH 16/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 6ff3e161077e..5364472ec3fa 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -11,9 +11,9 @@ | 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Doing | [47908](https://github.com/Azure/azure-sdk-for-python/pull/47908) | | 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Doing | [47910](https://github.com/Azure/azure-sdk-for-python/pull/47910) | | 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Doing | [47925](https://github.com/Azure/azure-sdk-for-python/pull/47925) | -| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | Not Started | | -| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | Not Started | | -| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | Not Started | | +| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | Doing | [47926](https://github.com/Azure/azure-sdk-for-python/pull/47926) | +| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | Doing | [47927](https://github.com/Azure/azure-sdk-for-python/pull/47927) | +| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | Doing | [47928](https://github.com/Azure/azure-sdk-for-python/pull/47928) | | 12 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | Not Started | | | 13 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | Not Started | | | 14 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | Not Started | | From 3feeec4ad688e7fdb38bcdd2e593fa4e526ed367 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 8 Jul 2026 17:07:39 +0800 Subject: [PATCH 17/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 5364472ec3fa..b43c020f5b4e 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -1,7 +1,7 @@ # Stable Management SDK Report -| id | sdk name | api version | sdk version | pr link | release date | state | refresh link | +| id | sdk name | api version | sdk version | beta refresh pr link | release date | state | stable refresh pr link | | --- | --- | --- | --- | --- | --- | --- | --- | | 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | Done | [47626](https://github.com/Azure/azure-sdk-for-python/pull/47626) | | 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | Done | [47629](https://github.com/Azure/azure-sdk-for-python/pull/47629) | From 08a12815026dca38a41f3d0c197e74d8234beb59 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 8 Jul 2026 17:08:36 +0800 Subject: [PATCH 18/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index b43c020f5b4e..b72d66a0a095 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -1,7 +1,7 @@ # Stable Management SDK Report -| id | sdk name | api version | sdk version | beta refresh pr link | release date | state | stable refresh pr link | +| id | sdk name | api version | beta refresh sdk version | beta refresh pr link | release date | state | stable refresh pr link | | --- | --- | --- | --- | --- | --- | --- | --- | | 1 | azure-mgmt-resource | 2025-04-01 | 26.0.0b1 | [#47386](https://github.com/Azure/azure-sdk-for-python/pull/47386) | 2026-06-08 | Done | [47626](https://github.com/Azure/azure-sdk-for-python/pull/47626) | | 2 | azure-mgmt-loganalytics | 2025-07-01 | 14.0.0b1 | [#47335](https://github.com/Azure/azure-sdk-for-python/pull/47335) | 2026-06-04 | Done | [47629](https://github.com/Azure/azure-sdk-for-python/pull/47629) | From 4f841012cb7f91d2e24b00a218d58502547afefa Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 8 Jul 2026 17:30:40 +0800 Subject: [PATCH 19/24] update data --- mgmt_sdk_report.md | 21 +- mgmt_stable_sdk_report.py | 461 +++++++++++++++++++++----------------- 2 files changed, 274 insertions(+), 208 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index b72d66a0a095..e1936d8c0e77 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -28,7 +28,20 @@ | 23 | azure-mgmt-recoveryservicessiterecovery | 2025-08-01 | 2.0.0b1 | [#46275](https://github.com/Azure/azure-sdk-for-python/pull/46275) | 2026-04-27 | Done | [47667](https://github.com/Azure/azure-sdk-for-python/pull/47667) | | 24 | azure-mgmt-managementgroups | 2023-04-01 | 2.0.0b1 | [#46074](https://github.com/Azure/azure-sdk-for-python/pull/46074) | 2026-04-02 | Done | [47665](https://github.com/Azure/azure-sdk-for-python/pull/47665) | | 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | Not Started | | -| 26 | azure-mgmt-frontdoor | 2025-10-01 | 2.0.0b1 | [#45874](https://github.com/Azure/azure-sdk-for-python/pull/45874) | 2026-03-24 | Done | [47639](https://github.com/Azure/azure-sdk-for-python/pull/47639) | -| 27 | azure-mgmt-kubernetesconfiguration-fluxconfigurations | 2025-04-01 | 1.0.0b2 | [#45714](https://github.com/Azure/azure-sdk-for-python/pull/45714) | 2026-03-18 | Done | [47638](https://github.com/Azure/azure-sdk-for-python/pull/47638) | -| 28 | azure-mgmt-networkfunction | 2022-11-01 | 1.0.0b2 | [#45641](https://github.com/Azure/azure-sdk-for-python/pull/45641) | 2026-03-16 | Done | [47636](https://github.com/Azure/azure-sdk-for-python/pull/47636) | -| 29 | azure-mgmt-communication | 2025-09-01 | 3.0.0b1 | [#45767](https://github.com/Azure/azure-sdk-for-python/pull/45767) | 2026-03-10 | Done | [47635](https://github.com/Azure/azure-sdk-for-python/pull/47635) | +| 30 | azure-mgmt-sqlvirtualmachine | 2023-10-01 | 1.0.0b7 | | 2026-07-07 | Not Started | | +| 31 | azure-mgmt-servicebus | 2026-01-01 | 10.0.0b2 | | 2026-07-07 | Not Started | | +| 32 | azure-mgmt-peering | 2025-05-01 | 2.0.0 | | 2026-07-07 | Done | [#47907](https://github.com/Azure/azure-sdk-for-python/pull/47907) | +| 33 | azure-mgmt-guestconfig | 2024-04-05 | 1.0.0b3 | | 2026-07-07 | Not Started | | +| 34 | azure-mgmt-eventhub | 2026-01-01 | 12.0.0b2 | | 2026-07-07 | Not Started | | +| 35 | azure-mgmt-elastic | 2025-06-01 | 3.0.0b1 | | 2026-07-07 | Not Started | | +| 36 | azure-mgmt-storagesync | 2022-09-01 | 2.0.0b2 | | 2026-07-06 | Not Started | | +| 37 | azure-mgmt-relay | 2024-01-01 | 2.0.0b2 | | 2026-07-06 | Not Started | | +| 38 | azure-mgmt-privatedns | 2024-06-01 | 2.0.0b1 | | 2026-07-06 | Not Started | | +| 39 | azure-mgmt-powerbidedicated | 2021-01-01 | 1.1.0b2 | | 2026-07-06 | Not Started | | +| 40 | azure-mgmt-edgeorder | 2024-02-01 | 3.0.0b1 | | 2026-07-06 | Not Started | | +| 41 | azure-mgmt-dynatrace | 2024-04-24 | 3.0.0b1 | | 2026-07-06 | Not Started | | +| 42 | azure-mgmt-databox | 2025-07-01 | 4.0.0b1 | | 2026-07-06 | Not Started | | +| 43 | azure-mgmt-reservations | 2020-10-25, 2022-11-01 | 3.0.0b1 | | 2026-06-02 | Not Started | | +| 44 | azure-mgmt-automation | 2024-10-23 | 1.1.0b5 | | 2026-05-27 | Not Started | | +| 45 | azure-mgmt-dataprotection | 2026-03-01 | 2.1.0b1 | | 2026-04-07 | Not Started | | +| 46 | azure-mgmt-computerecommender | 2025-06-05 | 1.0.0b1 | | 2025-09-04 | Not Started | | diff --git a/mgmt_stable_sdk_report.py b/mgmt_stable_sdk_report.py index b76ba8fb5598..47523b3d5a8d 100644 --- a/mgmt_stable_sdk_report.py +++ b/mgmt_stable_sdk_report.py @@ -1,262 +1,315 @@ #!/usr/bin/env python3 -"""Generate a Markdown report of stable, non-SDK-bot management (mgmt) SDKs. +"""Append stable-management-SDK refresh status rows to mgmt_sdk_report.md. Workflow: - (1) Discover all mgmt SDKs via the glob ``sdk/*/azure-mgmt-*/tsp-location.yaml`` - (ignoring cache/virtualenv folders such as ``.tox``, ``.venv``, - ``.pytest_cache``, ``.mypy_cache``, ...). - (2) Read each SDK's api-version from the ``:keyword api_version:`` docstring in - ``azure/mgmt/*/_client.py``. If the api-version contains ``preview`` -> - drop the SDK. - (3) Read the latest sdk version + release date from ``CHANGELOG.md``. If the - version contains ``b`` (beta/preview release) -> keep the SDK; otherwise - -> drop the SDK. - (4) Find the latest merged PR that touched the package directory (via the - squash-merge ``(#NNNN)`` reference on the last commit), then read the PR - body with ``gh``. If the body contains ``Submitted by`` -> drop the SDK. - (5) Write a Markdown table: - id / sdk name / api version / sdk version / pr link / release date. - -Use ``--limit 1`` to process a single SDK quickly for a manual sanity check. - -Requires the GitHub CLI (``gh``) to be installed and authenticated -(``gh auth login``) for the PR-body check. + (1) Read management SDK package names from PR 47885's data set. + (2) Keep only packages that exist locally under sdk/*/azure-mgmt-* and have + tsp-location.yaml. + (3) Read apiVersions from _metadata.json. If any api-version contains + "preview", abandon the SDK. + (4) Read the latest SDK version from CHANGELOG.md. + * stable SDK version + stable apiVersions -> state Done, with a best-effort + stable refresh PR link from git history. + * beta SDK version + stable apiVersions -> state Not Started. + (5) Append new rows to mgmt_sdk_report.md without editing existing rows. + +Requires the GitHub CLI (gh) to be installed and authenticated. """ from __future__ import annotations import argparse -import glob +import base64 import json import re +import shlex import subprocess import sys +from dataclasses import dataclass from pathlib import Path -from typing import Optional +from typing import Sequence REPO = "Azure/azure-sdk-for-python" +PR_NUMBER = "47885" ROOT = Path(__file__).resolve().parent -# Folders that may contain installed/cached copies of packages we must ignore. -IGNORED_PARTS = { - ".tox", - ".venv", - "venv", - ".pytest_cache", - ".mypy_cache", - ".pyright", - "__pycache__", - "node_modules", - ".git", - "build", - "dist", - ".eggs", -} - -# Regex helpers. -# The ``:keyword api_version:`` docstring block, captured up to ``:paramtype``. -_API_VERSION_DOC_RE = re.compile( - r":keyword api_version:.*?:paramtype\s+api_version:", re.DOTALL -) -# First quoted date-like api-version inside that block (e.g. "2026-01-01" or -# "2025-03-01-preview"). -_API_VERSION_VALUE_RE = re.compile(r'"(\d{4}-\d{2}-\d{2}[^"]*)"') -# CHANGELOG heading like ``## 5.0.0b1 (2026-05-27)``. -_CHANGELOG_RE = re.compile(r"^##\s+(\S+)\s+\((\d{4}-\d{2}-\d{2})\)") -_PR_NUMBER_RE = re.compile(r"\(#(\d+)\)") +SDK_NAME_RE = re.compile(r"\bazure-mgmt-[A-Za-z0-9][A-Za-z0-9_-]*\b") +CHANGELOG_RE = re.compile(r"^##\s+(\S+)\s+\((\d{4}-\d{2}-\d{2})\)") +PR_NUMBER_RE = re.compile(r"\(#(\d+)\)") +REPORT_ROW_RE = re.compile(r"^\|\s*(\d+)\s*\|\s*(azure-mgmt-[^|\s]+)") + + +@dataclass(frozen=True) +class PackageRow: + name: str + api_versions: list[str] + sdk_version: str + release_date: str + state: str + beta_refresh_pr: str = "" + stable_refresh_pr: str = "" def log(message: str) -> None: - """Print progress to stderr so stdout stays clean.""" print(message, file=sys.stderr, flush=True) -def find_mgmt_sdks() -> list[Path]: - """Return sorted package directories that contain a tsp-location.yaml. +def run_command(args: Sequence[str]) -> subprocess.CompletedProcess[str]: + return subprocess.run(args, cwd=ROOT, capture_output=True, text=True) + - Paths under cache/virtualenv folders are filtered out. - """ - pattern = str(ROOT / "sdk" / "*" / "azure-mgmt-*" / "tsp-location.yaml") - result: list[Path] = [] - for match in glob.glob(pattern): - path = Path(match) - if IGNORED_PARTS.intersection(path.parts): +def run_gh_json(args: Sequence[str]) -> dict: + result = run_command(["gh", *args]) + if result.returncode != 0: + raise RuntimeError(result.stderr.strip() or result.stdout.strip()) + return json.loads(result.stdout) + + +def fetch_pr_file(pr_number: str, file_name: str) -> str: + pr_data = run_gh_json(["pr", "view", pr_number, "--repo", REPO, "--json", "headRefName,headRepositoryOwner,headRepository"]) + owner = pr_data["headRepositoryOwner"]["login"] + repo = pr_data["headRepository"]["name"] + ref = pr_data["headRefName"] + contents = run_gh_json(["api", f"repos/{owner}/{repo}/contents/{file_name}?ref={ref}"]) + encoded = "".join(str(contents["content"]).splitlines()) + return base64.b64decode(encoded).decode("utf-8") + + +def sdk_names_from_data(data_text: str) -> list[str]: + names: list[str] = [] + seen: set[str] = set() + for line in data_text.splitlines(): + stripped = line.strip() + if not stripped or ("service" in stripped.lower() and "folder" in stripped.lower()): continue - result.append(path.parent) - return sorted(result) - - -def get_api_version(pkg_dir: Path) -> Optional[str]: - """Read the api-version from the _client.py ``:keyword api_version:`` docstring.""" - candidates = [ - c for c in pkg_dir.glob("azure/mgmt/*/_client.py") if "aio" not in c.parts - ] - if not candidates: - candidates = [ - c for c in pkg_dir.glob("azure/mgmt/**/_client.py") if "aio" not in c.parts - ] - for client in sorted(candidates): - block = _API_VERSION_DOC_RE.search(client.read_text(encoding="utf-8")) - if not block: + for part in shlex.split(stripped): + if SDK_NAME_RE.fullmatch(part) and part not in seen: + seen.add(part) + names.append(part) + return names + + +def sdk_names_from_result(result_text: str) -> list[str]: + names: list[str] = [] + seen: set[str] = set() + for line in result_text.splitlines(): + if not line.startswith("|") or "azure-mgmt" not in line: continue - value = _API_VERSION_VALUE_RE.search(block.group(0)) - if value: - return value.group(1) + cells = [cell.strip() for cell in line.strip().strip("|").split("|")] + if len(cells) < 4: + continue + name = cells[3] + if SDK_NAME_RE.fullmatch(name) and name not in seen: + seen.add(name) + names.append(name) + return names + + +def get_candidate_sdk_names(pr_number: str) -> list[str]: + data_names = sdk_names_from_data(fetch_pr_file(pr_number, "data.txt")) + try: + result_names = sdk_names_from_result(fetch_pr_file(pr_number, "result.md")) + except Exception as ex: # pylint: disable=broad-except + log(f"Could not read result.md from PR {pr_number}; using explicit data.txt names only: {ex}") + return data_names + + names: list[str] = [] + seen: set[str] = set() + for name in [*result_names, *data_names]: + if name not in seen: + seen.add(name) + names.append(name) + return names + + +def package_dir(sdk_name: str) -> Path | None: + matches = sorted((ROOT / "sdk").glob(f"*/{sdk_name}")) + for match in matches: + if (match / "tsp-location.yaml").is_file(): + return match return None -def get_version_and_release_date(pkg_dir: Path) -> tuple[Optional[str], Optional[str]]: - """Read the latest (version, release date) from CHANGELOG.md.""" +def get_api_versions(pkg_dir: Path) -> list[str]: + metadata = pkg_dir / "_metadata.json" + if not metadata.is_file(): + return [] + data = json.loads(metadata.read_text(encoding="utf-8")) + api_versions = data.get("apiVersions") + if isinstance(api_versions, dict): + values = api_versions.values() + elif isinstance(api_versions, list): + values = api_versions + else: + values = [data.get("apiVersion")] + return sorted({str(value) for value in values if value}) + + +def has_preview_api_version(api_versions: Sequence[str]) -> bool: + return any("preview" in version.lower() for version in api_versions) + + +def get_version_and_release_date(pkg_dir: Path) -> tuple[str, str]: changelog = pkg_dir / "CHANGELOG.md" - if not changelog.exists(): - return None, None + if not changelog.is_file(): + return "", "" for line in changelog.read_text(encoding="utf-8").splitlines(): - match = _CHANGELOG_RE.match(line.strip()) + match = CHANGELOG_RE.match(line.strip()) if match: return match.group(1), match.group(2) - return None, None + return "", "" + +def is_beta_version(version: str) -> bool: + return bool(re.search(r"\d+b\d*", version.lower())) -def get_latest_pr_number(pkg_dir: Path) -> Optional[str]: - """Find the latest merged PR number touching the package directory. - Uses ``git log`` over the package path and extracts the squash-merge - ``(#NNNN)`` reference from the most recent commit subject that has one. - """ +def find_refresh_pr(pkg_dir: Path) -> str: rel_path = pkg_dir.relative_to(ROOT).as_posix() - result = subprocess.run( - ["git", "log", "-n", "50", "--format=%s", "--", rel_path], - cwd=ROOT, - capture_output=True, - text=True, - ) + result = run_command(["git", "log", "-n", "80", "--format=%s", "--", rel_path]) if result.returncode != 0: log(f" ! git log failed for {rel_path}: {result.stderr.strip()}") - return None + return "" + for subject in result.stdout.splitlines(): - match = _PR_NUMBER_RE.search(subject) - if match: + match = PR_NUMBER_RE.search(subject) + if match and "refresh" in subject.lower(): return match.group(1) - return None + return "" -def get_pr_body_and_url(pr_number: str) -> tuple[Optional[str], str]: - """Return (body, url) for a PR using the gh CLI. +def build_rows(sdk_names: Sequence[str], limit: int = 0) -> list[PackageRow]: + rows: list[PackageRow] = [] + processed = 0 + for sdk_name in sdk_names: + if limit and processed >= limit: + break + processed += 1 + log(f"Processing {sdk_name} ...") - Returns (None, url) when the body could not be retrieved. - """ - url = f"https://github.com/{REPO}/pull/{pr_number}" - result = subprocess.run( - ["gh", "pr", "view", pr_number, "--repo", REPO, "--json", "body,url"], - cwd=ROOT, - capture_output=True, - text=True, - ) - if result.returncode != 0: - log(f" ! gh pr view {pr_number} failed: {result.stderr.strip()}") - return None, url - try: - data = json.loads(result.stdout) - except json.JSONDecodeError: - return None, url - return data.get("body") or "", data.get("url") or url - - -def build_report(rows: list[dict]) -> str: - """Render the kept SDK rows as a Markdown document with a table.""" - lines = [ - "# Stable Management SDK Report", - "", - f"Total kept SDKs: {len(rows)}", - "", - "| id | sdk name | api version | sdk version | pr link | release date |", - "| --- | --- | --- | --- | --- | --- |", - ] - for index, row in enumerate(rows, start=1): - pr_link = f"[#{row['pr_number']}]({row['pr_url']})" if row.get("pr_number") else "" - lines.append( - f"| {index} | {row['name']} | {row['api_version']} | " - f"{row.get('sdk_version') or ''} | {pr_link} | " - f"{row.get('release_date') or ''} |" - ) - lines.append("") - return "\n".join(lines) - - -def main() -> int: - parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) - parser.add_argument( - "--limit", - type=int, - default=0, - help="Process only the first N discovered SDKs (use 1 for a quick check). 0 = all.", - ) - parser.add_argument( - "--output", - default=str(ROOT / "mgmt_sdk_report.md"), - help="Path to the output Markdown file.", - ) - args = parser.parse_args() - - sdks = find_mgmt_sdks() - log(f"Discovered {len(sdks)} mgmt SDK(s).") - if args.limit > 0: - sdks = sdks[: args.limit] - log(f"Limiting to first {len(sdks)} SDK(s) (--limit {args.limit}).") - - kept: list[dict] = [] - for pkg_dir in sdks: - name = pkg_dir.name - log(f"Processing {name} ...") - - api_version = get_api_version(pkg_dir) - if not api_version: - log(" - skip: no api-version found") + pkg_dir = package_dir(sdk_name) + if not pkg_dir: + log(" - skip: local package with tsp-location.yaml not found") continue - if "preview" in api_version.lower(): - log(f" - skip: preview api-version ({api_version})") + + api_versions = get_api_versions(pkg_dir) + if not api_versions: + log(" - skip: _metadata.json/apiVersions not found") + continue + if has_preview_api_version(api_versions): + log(f" - skip: preview api-version ({', '.join(api_versions)})") continue sdk_version, release_date = get_version_and_release_date(pkg_dir) if not sdk_version: log(" - skip: no version found in CHANGELOG.md") continue - if "b" not in sdk_version.lower(): - log(f" - skip: non-beta sdk version ({sdk_version})") - continue - pr_number = get_latest_pr_number(pkg_dir) - if not pr_number: - log(" - skip: no PR found for package path") + if is_beta_version(sdk_version): + rows.append( + PackageRow( + name=sdk_name, + api_versions=api_versions, + sdk_version=sdk_version, + release_date=release_date, + state="Not Started", + ) + ) + log(f" + keep: beta SDK version ({sdk_version}); state=Not Started") + else: + refresh_pr = find_refresh_pr(pkg_dir) + rows.append( + PackageRow( + name=sdk_name, + api_versions=api_versions, + sdk_version=sdk_version, + release_date=release_date, + state="Done", + stable_refresh_pr=refresh_pr, + ) + ) + log(f" + keep: stable SDK version ({sdk_version}); state=Done") + return rows + + +def existing_report_state(report_path: Path) -> tuple[int, set[str]]: + if not report_path.is_file(): + return 0, set() + max_id = 0 + existing_names: set[str] = set() + for line in report_path.read_text(encoding="utf-8").splitlines(): + match = REPORT_ROW_RE.match(line) + if not match: continue + max_id = max(max_id, int(match.group(1))) + existing_names.add(match.group(2)) + return max_id, existing_names - body, pr_url = get_pr_body_and_url(pr_number) - if body is not None and "Submitted by" in body: - log(f" - skip: PR #{pr_number} body contains 'Submitted by'") - continue - kept.append( - { - "name": name, - "api_version": api_version, - "sdk_version": sdk_version, - "release_date": release_date, - "pr_number": pr_number, - "pr_url": pr_url, - } - ) - log( - f" + keep: api={api_version}, version={sdk_version}, " - f"release={release_date}, pr=#{pr_number}" - ) - - # Sort from newest to oldest release date (rows without a date sort last). - kept.sort(key=lambda row: row.get("release_date") or "", reverse=True) - - report = build_report(kept) - output_path = Path(args.output) - output_path.write_text(report, encoding="utf-8") - log(f"Wrote {len(kept)} row(s) to {output_path}") +def markdown_link(pr_number: str) -> str: + if not pr_number: + return "" + return f"[#{pr_number}](https://github.com/{REPO}/pull/{pr_number})" + + +def table_value(value: str) -> str: + return value.replace("|", "\\|") + + +def format_row(row_id: int, row: PackageRow) -> str: + return "| " + " | ".join( + [ + str(row_id), + table_value(row.name), + table_value(", ".join(row.api_versions)), + table_value(row.sdk_version), + markdown_link(row.beta_refresh_pr), + table_value(row.release_date), + table_value(row.state), + markdown_link(row.stable_refresh_pr), + ] + ) + " |" + + +def append_rows(report_path: Path, rows: Sequence[PackageRow], include_existing: bool) -> int: + max_id, existing_names = existing_report_state(report_path) + rows_to_append = [row for row in rows if include_existing or row.name not in existing_names] + if not rows_to_append: + log("No new rows to append.") + return 0 + + existing_text = report_path.read_text(encoding="utf-8") if report_path.is_file() else "" + prefix = "" if not existing_text or existing_text.endswith("\n") else "\n" + lines = [format_row(max_id + index, row) for index, row in enumerate(rows_to_append, start=1)] + with report_path.open("a", encoding="utf-8") as report_file: + report_file.write(prefix + "\n".join(lines) + "\n") + return len(rows_to_append) + + +def parse_args(argv: Sequence[str] | None = None) -> argparse.Namespace: + parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + parser.add_argument("--pr", default=PR_NUMBER, help=f"PR number to read package data from. Defaults to {PR_NUMBER}.") + parser.add_argument("--limit", type=int, default=0, help="Process only the first N candidate SDKs. 0 = all.") + parser.add_argument("--output", type=Path, default=ROOT / "mgmt_sdk_report.md", help="Report file to append to.") + parser.add_argument("--include-existing", action="store_true", help="Append rows even when the SDK name already exists in the report.") + parser.add_argument("--dry-run", action="store_true", help="Print rows to stdout instead of appending to the report.") + return parser.parse_args(argv) + + +def main(argv: Sequence[str] | None = None) -> int: + args = parse_args(argv) + sdk_names = get_candidate_sdk_names(args.pr) + log(f"Discovered {len(sdk_names)} candidate SDK name(s) from PR {args.pr}.") + rows = build_rows(sdk_names, args.limit) + rows.sort(key=lambda row: (row.release_date, row.name), reverse=True) + + if args.dry_run: + for index, row in enumerate(rows, start=1): + print(format_row(index, row)) + return 0 + + appended = append_rows(args.output, rows, args.include_existing) + log(f"Appended {appended} row(s) to {args.output}") return 0 From 3b1a1559008dae482594b159d8d7465a06990a9e Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 8 Jul 2026 17:32:31 +0800 Subject: [PATCH 20/24] update data --- mgmt_sdk_report.md | 1 - 1 file changed, 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index e1936d8c0e77..09afe65022dd 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -44,4 +44,3 @@ | 43 | azure-mgmt-reservations | 2020-10-25, 2022-11-01 | 3.0.0b1 | | 2026-06-02 | Not Started | | | 44 | azure-mgmt-automation | 2024-10-23 | 1.1.0b5 | | 2026-05-27 | Not Started | | | 45 | azure-mgmt-dataprotection | 2026-03-01 | 2.1.0b1 | | 2026-04-07 | Not Started | | -| 46 | azure-mgmt-computerecommender | 2025-06-05 | 1.0.0b1 | | 2025-09-04 | Not Started | | From 9e5fe8a3041a885743d0d1d161f95cba1dcc1c4b Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Wed, 8 Jul 2026 17:34:23 +0800 Subject: [PATCH 21/24] update data --- mgmt_sdk_report.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 09afe65022dd..7848eda7f6ab 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -30,7 +30,7 @@ | 25 | azure-mgmt-networkcloud | 2025-09-01 | 3.0.0b1 | [#46048](https://github.com/Azure/azure-sdk-for-python/pull/46048) | 2026-04-02 | Not Started | | | 30 | azure-mgmt-sqlvirtualmachine | 2023-10-01 | 1.0.0b7 | | 2026-07-07 | Not Started | | | 31 | azure-mgmt-servicebus | 2026-01-01 | 10.0.0b2 | | 2026-07-07 | Not Started | | -| 32 | azure-mgmt-peering | 2025-05-01 | 2.0.0 | | 2026-07-07 | Done | [#47907](https://github.com/Azure/azure-sdk-for-python/pull/47907) | +| 32 | azure-mgmt-peering | 2025-05-01 | 2.0.0b2 | | 2026-07-07 | Done | [#47907](https://github.com/Azure/azure-sdk-for-python/pull/47907) | | 33 | azure-mgmt-guestconfig | 2024-04-05 | 1.0.0b3 | | 2026-07-07 | Not Started | | | 34 | azure-mgmt-eventhub | 2026-01-01 | 12.0.0b2 | | 2026-07-07 | Not Started | | | 35 | azure-mgmt-elastic | 2025-06-01 | 3.0.0b1 | | 2026-07-07 | Not Started | | From 831e837de72f3a356691932802973d096d8c8bc6 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 <119990644+ChenxiJiang333@users.noreply.github.com> Date: Wed, 8 Jul 2026 17:38:46 +0800 Subject: [PATCH 22/24] Update mgmt_sdk_report.md --- mgmt_sdk_report.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 7848eda7f6ab..9839f9f528b4 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -8,12 +8,12 @@ | 3 | azure-mgmt-billing | 2024-04-01 | 8.0.0b1 | [#47277](https://github.com/Azure/azure-sdk-for-python/pull/47277) | 2026-06-02 | Done | [47630](https://github.com/Azure/azure-sdk-for-python/pull/47630) | | 4 | azure-mgmt-kusto | 2025-02-14 | 4.0.0b1 | [#47278](https://github.com/Azure/azure-sdk-for-python/pull/47278) | 2026-06-02 | Done | [47628](https://github.com/Azure/azure-sdk-for-python/pull/47628) | | 5 | azure-mgmt-sql | 2025-01-01 | 4.0.0b25 | [#47365](https://github.com/Azure/azure-sdk-for-python/pull/47365) | 2026-06-02 | Done | [47631](https://github.com/Azure/azure-sdk-for-python/pull/47631) | -| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Doing | [47908](https://github.com/Azure/azure-sdk-for-python/pull/47908) | -| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Doing | [47910](https://github.com/Azure/azure-sdk-for-python/pull/47910) | -| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Doing | [47925](https://github.com/Azure/azure-sdk-for-python/pull/47925) | -| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | Doing | [47926](https://github.com/Azure/azure-sdk-for-python/pull/47926) | -| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | Doing | [47927](https://github.com/Azure/azure-sdk-for-python/pull/47927) | -| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | Doing | [47928](https://github.com/Azure/azure-sdk-for-python/pull/47928) | +| 6 | azure-mgmt-datafactory | 2018-06-01 | 10.0.0b1 | [#47198](https://github.com/Azure/azure-sdk-for-python/pull/47198) | 2026-05-28 | Done | [47908](https://github.com/Azure/azure-sdk-for-python/pull/47908) | +| 7 | azure-mgmt-resourcehealth | 2025-05-01 | 1.0.0b7 | [#47187](https://github.com/Azure/azure-sdk-for-python/pull/47187) | 2026-05-28 | Done | [47910](https://github.com/Azure/azure-sdk-for-python/pull/47910) | +| 8 | azure-mgmt-appcontainers | 2026-01-01 | 5.0.0b1 | [#47161](https://github.com/Azure/azure-sdk-for-python/pull/47161) | 2026-05-27 | Done | [47925](https://github.com/Azure/azure-sdk-for-python/pull/47925) | +| 9 | azure-mgmt-databricks | 2026-01-01 | 3.0.0b1 | [#47151](https://github.com/Azure/azure-sdk-for-python/pull/47151) | 2026-05-27 | Done | [47926](https://github.com/Azure/azure-sdk-for-python/pull/47926) | +| 10 | azure-mgmt-storagecache | 2026-01-01 | 4.0.0b1 | [#47154](https://github.com/Azure/azure-sdk-for-python/pull/47154) | 2026-05-27 | Done | [47927](https://github.com/Azure/azure-sdk-for-python/pull/47927) | +| 11 | azure-mgmt-costmanagement | 2025-03-01 | 5.0.0b1 | [#47118](https://github.com/Azure/azure-sdk-for-python/pull/47118) | 2026-05-26 | Done | [47928](https://github.com/Azure/azure-sdk-for-python/pull/47928) | | 12 | azure-mgmt-databoxedge | 2023-12-01 | 3.0.0b2 | [#47119](https://github.com/Azure/azure-sdk-for-python/pull/47119) | 2026-05-26 | Not Started | | | 13 | azure-mgmt-redhatopenshift | 2025-07-25 | 4.0.0b1 | [#47124](https://github.com/Azure/azure-sdk-for-python/pull/47124) | 2026-05-26 | Not Started | | | 14 | azure-mgmt-serialconsole | 2024-07-01 | 1.1.0b2 | [#47125](https://github.com/Azure/azure-sdk-for-python/pull/47125) | 2026-05-26 | Not Started | | From 81aac5b012ebd9cc88beaf922159bdbdf975d2f0 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Thu, 9 Jul 2026 15:55:05 +0800 Subject: [PATCH 23/24] update data --- mgmt_sdk_report.md | 2 ++ mgmt_stable_sdk_report.py | 34 +++++++++++------------ test_mgmt_stable_sdk_report.py | 51 ++++++++++++++++++++++++++++++++++ 3 files changed, 69 insertions(+), 18 deletions(-) create mode 100644 test_mgmt_stable_sdk_report.py diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index 9839f9f528b4..ebb33c1df83e 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -44,3 +44,5 @@ | 43 | azure-mgmt-reservations | 2020-10-25, 2022-11-01 | 3.0.0b1 | | 2026-06-02 | Not Started | | | 44 | azure-mgmt-automation | 2024-10-23 | 1.1.0b5 | | 2026-05-27 | Not Started | | | 45 | azure-mgmt-dataprotection | 2026-03-01 | 2.1.0b1 | | 2026-04-07 | Not Started | | +| 46 | azure-mgmt-prometheusrulegroups | 2023-03-01 | 1.0.0b1 | | 2026-07-09 | Not Started | | +| 47 | azure-mgmt-alertprocessingrules | 2021-08-08 | 1.0.0b1 | | 2026-07-09 | Not Started | | diff --git a/mgmt_stable_sdk_report.py b/mgmt_stable_sdk_report.py index 47523b3d5a8d..7117091d1697 100644 --- a/mgmt_stable_sdk_report.py +++ b/mgmt_stable_sdk_report.py @@ -7,10 +7,10 @@ tsp-location.yaml. (3) Read apiVersions from _metadata.json. If any api-version contains "preview", abandon the SDK. - (4) Read the latest SDK version from CHANGELOG.md. - * stable SDK version + stable apiVersions -> state Done, with a best-effort - stable refresh PR link from git history. - * beta SDK version + stable apiVersions -> state Not Started. + (4) Read the latest SDK version from CHANGELOG.md. + * SDKs with last release dates older than 2026-01-01 are abandoned. + * stable SDK version + stable apiVersions -> already done; do not record. + * beta SDK version + stable apiVersions -> state Not Started. (5) Append new rows to mgmt_sdk_report.md without editing existing rows. Requires the GitHub CLI (gh) to be installed and authenticated. @@ -32,6 +32,12 @@ REPO = "Azure/azure-sdk-for-python" PR_NUMBER = "47885" ROOT = Path(__file__).resolve().parent +RELEASE_DATE_CUTOFF = "2026-01-01" +SUPPLEMENTAL_CANDIDATE_SDK_NAMES = ( + "azure-mgmt-domainservices", + "azure-mgmt-alertprocessingrules", + "azure-mgmt-prometheusrulegroups", +) SDK_NAME_RE = re.compile(r"\bazure-mgmt-[A-Za-z0-9][A-Za-z0-9_-]*\b") CHANGELOG_RE = re.compile(r"^##\s+(\S+)\s+\((\d{4}-\d{2}-\d{2})\)") @@ -111,11 +117,11 @@ def get_candidate_sdk_names(pr_number: str) -> list[str]: result_names = sdk_names_from_result(fetch_pr_file(pr_number, "result.md")) except Exception as ex: # pylint: disable=broad-except log(f"Could not read result.md from PR {pr_number}; using explicit data.txt names only: {ex}") - return data_names + result_names = [] names: list[str] = [] seen: set[str] = set() - for name in [*result_names, *data_names]: + for name in [*result_names, *data_names, *SUPPLEMENTAL_CANDIDATE_SDK_NAMES]: if name not in seen: seen.add(name) names.append(name) @@ -204,6 +210,9 @@ def build_rows(sdk_names: Sequence[str], limit: int = 0) -> list[PackageRow]: if not sdk_version: log(" - skip: no version found in CHANGELOG.md") continue + if release_date and release_date < RELEASE_DATE_CUTOFF: + log(f" - skip: last release date {release_date} is older than {RELEASE_DATE_CUTOFF}") + continue if is_beta_version(sdk_version): rows.append( @@ -217,18 +226,7 @@ def build_rows(sdk_names: Sequence[str], limit: int = 0) -> list[PackageRow]: ) log(f" + keep: beta SDK version ({sdk_version}); state=Not Started") else: - refresh_pr = find_refresh_pr(pkg_dir) - rows.append( - PackageRow( - name=sdk_name, - api_versions=api_versions, - sdk_version=sdk_version, - release_date=release_date, - state="Done", - stable_refresh_pr=refresh_pr, - ) - ) - log(f" + keep: stable SDK version ({sdk_version}); state=Done") + log(f" - skip: stable SDK version ({sdk_version}) is already done") return rows diff --git a/test_mgmt_stable_sdk_report.py b/test_mgmt_stable_sdk_report.py new file mode 100644 index 000000000000..e25b3d1503f1 --- /dev/null +++ b/test_mgmt_stable_sdk_report.py @@ -0,0 +1,51 @@ +from pathlib import Path + +import mgmt_stable_sdk_report as report + + +def test_get_candidate_sdk_names_includes_supplemental_candidates(monkeypatch): + files = { + "data.txt": "azure-mgmt-domainservices azure-mgmt-existing\n", + "result.md": "| a | b | c | azure-mgmt-result |\n", + } + + monkeypatch.setattr(report, "fetch_pr_file", lambda pr_number, file_name: files[file_name]) + + names = report.get_candidate_sdk_names("123") + + assert names == [ + "azure-mgmt-result", + "azure-mgmt-domainservices", + "azure-mgmt-existing", + "azure-mgmt-alertprocessingrules", + "azure-mgmt-prometheusrulegroups", + ] + + +def _write_package(root: Path, service: str, name: str, version: str, release_date: str) -> None: + package_dir = root / "sdk" / service / name + package_dir.mkdir(parents=True) + (package_dir / "tsp-location.yaml").write_text("directory: .\n", encoding="utf-8") + (package_dir / "_metadata.json").write_text('{"apiVersions": ["2025-01-01"]}\n', encoding="utf-8") + (package_dir / "CHANGELOG.md").write_text(f"## {version} ({release_date})\n", encoding="utf-8") + + +def test_build_rows_skips_beta_sdk_when_last_release_date_is_before_cutoff(tmp_path, monkeypatch): + monkeypatch.setattr(report, "ROOT", tmp_path) + _write_package(tmp_path, "old", "azure-mgmt-old", "1.0.0b1", "2025-12-31") + _write_package(tmp_path, "current", "azure-mgmt-current", "1.0.0b1", "2026-01-01") + + rows = report.build_rows(["azure-mgmt-old", "azure-mgmt-current"]) + + assert [row.name for row in rows] == ["azure-mgmt-current"] + + +def test_build_rows_skips_stable_sdk_because_stable_release_is_already_done(tmp_path, monkeypatch): + monkeypatch.setattr(report, "ROOT", tmp_path) + monkeypatch.setattr(report, "find_refresh_pr", lambda package_dir: "123") + _write_package(tmp_path, "done", "azure-mgmt-done", "1.0.0", "2026-02-01") + _write_package(tmp_path, "candidate", "azure-mgmt-candidate", "1.0.0b1", "2026-02-01") + + rows = report.build_rows(["azure-mgmt-done", "azure-mgmt-candidate"]) + + assert [row.name for row in rows] == ["azure-mgmt-candidate"] \ No newline at end of file From 499212d4b7e1b7c1ec039374aba7f838e2f524f3 Mon Sep 17 00:00:00 2001 From: Yuchao Yan Date: Fri, 10 Jul 2026 10:47:43 +0800 Subject: [PATCH 24/24] update data --- mgmt_sdk_report.md | 2 ++ mgmt_stable_sdk_report.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/mgmt_sdk_report.md b/mgmt_sdk_report.md index ebb33c1df83e..1487c83f4cad 100644 --- a/mgmt_sdk_report.md +++ b/mgmt_sdk_report.md @@ -46,3 +46,5 @@ | 45 | azure-mgmt-dataprotection | 2026-03-01 | 2.1.0b1 | | 2026-04-07 | Not Started | | | 46 | azure-mgmt-prometheusrulegroups | 2023-03-01 | 1.0.0b1 | | 2026-07-09 | Not Started | | | 47 | azure-mgmt-alertprocessingrules | 2021-08-08 | 1.0.0b1 | | 2026-07-09 | Not Started | | +| 48 | azure-mgmt-providerhub | | 1.0.0b1 | | | Not Started | | +| 49 | azure-mgmt-marketplace | | 1.0.0b1 | | | Not Started | | diff --git a/mgmt_stable_sdk_report.py b/mgmt_stable_sdk_report.py index 7117091d1697..fa0ee6ddd282 100644 --- a/mgmt_stable_sdk_report.py +++ b/mgmt_stable_sdk_report.py @@ -37,6 +37,8 @@ "azure-mgmt-domainservices", "azure-mgmt-alertprocessingrules", "azure-mgmt-prometheusrulegroups", + "azure-mgmt-providerhub", + "azure-mgmt-marketplace", ) SDK_NAME_RE = re.compile(r"\bazure-mgmt-[A-Za-z0-9][A-Za-z0-9_-]*\b")