From 31cf188c8b05590c1a81a2eaf4e11607931ace0b Mon Sep 17 00:00:00 2001 From: jennypng <63012604+JennyPng@users.noreply.github.com> Date: Thu, 28 May 2026 16:03:25 -0700 Subject: [PATCH 1/9] tolerant string match --- eng/tools/azure-sdk-tools/ci_tools/conda/conda_functions.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/tools/azure-sdk-tools/ci_tools/conda/conda_functions.py b/eng/tools/azure-sdk-tools/ci_tools/conda/conda_functions.py index 48959077b093..e432d9dd7b9a 100644 --- a/eng/tools/azure-sdk-tools/ci_tools/conda/conda_functions.py +++ b/eng/tools/azure-sdk-tools/ci_tools/conda/conda_functions.py @@ -292,7 +292,7 @@ def create_combined_sdist( [ os.path.join(config_assembled_folder, a) for a in os.listdir(config_assembled_folder) - if os.path.isfile(os.path.join(config_assembled_folder, a)) and conda_build.name.replace("-", "_") in a + if os.path.isfile(os.path.join(config_assembled_folder, a)) and tolerant_match(conda_build.name, a) ] ) ) From 22c5e2b22ca1822ea158a9ca6e35a2c105d82d74 Mon Sep 17 00:00:00 2001 From: jennypng <63012604+JennyPng@users.noreply.github.com> Date: Thu, 28 May 2026 16:10:03 -0700 Subject: [PATCH 2/9] add auth to conda sync pipeline --- eng/pipelines/conda-update-pipeline.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/eng/pipelines/conda-update-pipeline.yml b/eng/pipelines/conda-update-pipeline.yml index 1f7da1d22c87..9b936df59519 100644 --- a/eng/pipelines/conda-update-pipeline.yml +++ b/eng/pipelines/conda-update-pipeline.yml @@ -81,11 +81,15 @@ extends: - checkout: self persistCredentials: true - - task: UsePythonVersion@0 - displayName: 'Use Python 3.11' - inputs: + - template: /eng/pipelines/templates/steps/use-python-version.yml + parameters: versionSpec: '3.11' + - template: /eng/pipelines/templates/steps/auth-dev-feed.yml + parameters: + EnableTwineAuth: false + EnableUvAuth: false + - script: | python -m pip install --upgrade pip python -m pip install "eng/tools/azure-sdk-tools[build]" From 7cb26304813ea54bd8c9632119e9ba3f7d146ea7 Mon Sep 17 00:00:00 2001 From: jennypng <63012604+JennyPng@users.noreply.github.com> Date: Fri, 29 May 2026 10:39:40 -0700 Subject: [PATCH 3/9] add metadata to transcription, use simple api via azdo bc no pypi access --- conda/conda_helper_functions.py | 91 +++++++++++++++++++ .../azure-ai-transcription/pyproject.toml | 3 + 2 files changed, 94 insertions(+) diff --git a/conda/conda_helper_functions.py b/conda/conda_helper_functions.py index 04e8576e8af3..97d47aa3dbd7 100644 --- a/conda/conda_helper_functions.py +++ b/conda/conda_helper_functions.py @@ -4,8 +4,11 @@ import os import glob +import re +import base64 from functools import lru_cache from typing import Optional +from urllib.parse import urljoin, urlparse import csv from ci_tools.logging import logger import urllib.request @@ -250,6 +253,89 @@ def is_stable_on_pypi(package_name: str) -> bool: return False +def _get_package_data_from_simple_api( + package_name: str, +) -> tuple[Optional[str], Optional[str]]: + """Fetch latest version and sdist download URI via PEP 503 Simple API. + + Used as a fallback when the PyPI JSON API is unavailable, e.g. when + PIP_INDEX_URL points to an Azure DevOps Artifacts feed (set by PipAuthenticate@1). + + The AzDO feed proxies PyPI as an upstream source — authenticated requests + resolve the full upstream index, so the latest version is available even if + it hasn't been previously cached in the feed. + """ + index_url = os.environ.get("PIP_INDEX_URL", "https://pypi.org/simple/") + simple_url = f"{index_url.rstrip('/')}/{package_name}/" + + try: + # PipAuthenticate@1 embeds credentials in PIP_INDEX_URL as + # https://build:@pkgs.dev.azure.com/... + # Extract them into an Authorization header and strip from the URL. + parsed = urlparse(simple_url) + headers = {} + if parsed.password: + creds = base64.b64encode( + f"{parsed.username or ''}:{parsed.password}".encode() + ).decode() + headers["Authorization"] = f"Basic {creds}" + clean_netloc = parsed.hostname + if parsed.port and clean_netloc: + clean_netloc += f":{parsed.port}" + simple_url = parsed._replace(netloc=clean_netloc).geturl() + + req = urllib.request.Request(simple_url, headers=headers) + with urllib.request.urlopen(req, timeout=30) as response: + html = response.read().decode("utf-8") + + # Parse PEP 503 HTML: each filename is a distribution file. + link_re = re.compile( + r']*href="([^"]+)"[^>]*>([^<]+)', re.IGNORECASE + ) + # Match sdist filenames like "msal-1.35.0.tar.gz" (hyphens may appear as [-_.] per PEP 625) + name_normalized = re.escape(package_name).replace(r"\-", "[-_.]+") + ver_re = re.compile(f"^{name_normalized}-(.+)\\.tar\\.gz$", re.IGNORECASE) + + candidates = [] + for m in link_re.finditer(html): + href, filename = m.group(1), m.group(2) + ver_m = ver_re.match(filename) + if ver_m: + ver_str = ver_m.group(1) + try: + ver = Version(ver_str) + # Strip the #sha256=... fragment; resolve relative href against base URL + url = urljoin(req.full_url, href.split("#")[0]) + candidates.append((ver, ver_str, url)) + except Exception: + continue + + if not candidates: + return None, None + + # Pick the latest stable (non-prerelease) version + candidates.sort(key=lambda x: x[0], reverse=True) + for ver, ver_str, url in candidates: + if not ver.is_prerelease: + logger.info( + f"Found download URL via Simple API for {package_name}=={ver_str}: {url}" + ) + return ver_str, url + + # Fall back to latest prerelease if no stable version exists + _, ver_str, url = candidates[0] + logger.info( + f"Found download URL via Simple API for {package_name}=={ver_str}: {url}" + ) + return ver_str, url + + except Exception as e: + logger.error( + f"Failed to fetch package data from Simple API for {package_name}: {e}" + ) + return None, None + + def get_package_data_from_pypi( package_name: str, ) -> tuple[Optional[str], Optional[str]]: @@ -271,6 +357,11 @@ def get_package_data_from_pypi( ) return latest_version, download_url + except NotImplementedError: + logger.info( + f"PyPI JSON API unavailable, falling back to Simple API for {package_name}" + ) + return _get_package_data_from_simple_api(package_name) except Exception as e: logger.error(f"Failed to fetch download URI from PyPI for {package_name}: {e}") return None, None diff --git a/sdk/transcription/azure-ai-transcription/pyproject.toml b/sdk/transcription/azure-ai-transcription/pyproject.toml index 9e77b6e0286a..3c701929ad84 100644 --- a/sdk/transcription/azure-ai-transcription/pyproject.toml +++ b/sdk/transcription/azure-ai-transcription/pyproject.toml @@ -63,3 +63,6 @@ pytyped = ["py.typed"] [tool.azure-sdk-build] verifytypes = false is_stable = true + +[tool.azure-sdk-conda] +in_bundle = false From cad59c90c1b2c223130efa337df50a52cb032de6 Mon Sep 17 00:00:00 2001 From: jennypng <63012604+JennyPng@users.noreply.github.com> Date: Fri, 29 May 2026 10:51:06 -0700 Subject: [PATCH 4/9] refine --- conda/conda_helper_functions.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/conda/conda_helper_functions.py b/conda/conda_helper_functions.py index 97d47aa3dbd7..f6ac9c4d0d7b 100644 --- a/conda/conda_helper_functions.py +++ b/conda/conda_helper_functions.py @@ -284,6 +284,7 @@ def _get_package_data_from_simple_api( clean_netloc += f":{parsed.port}" simple_url = parsed._replace(netloc=clean_netloc).geturl() + headers["Accept"] = "text/html" req = urllib.request.Request(simple_url, headers=headers) with urllib.request.urlopen(req, timeout=30) as response: html = response.read().decode("utf-8") @@ -293,7 +294,9 @@ def _get_package_data_from_simple_api( r']*href="([^"]+)"[^>]*>([^<]+)', re.IGNORECASE ) # Match sdist filenames like "msal-1.35.0.tar.gz" (hyphens may appear as [-_.] per PEP 625) - name_normalized = re.escape(package_name).replace(r"\-", "[-_.]+") + # Split on separators first, escape each segment, then rejoin with a flexible separator pattern. + name_parts = re.split(r"[-_.]+", package_name) + name_normalized = "[-_.]+".join(re.escape(part) for part in name_parts) ver_re = re.compile(f"^{name_normalized}-(.+)\\.tar\\.gz$", re.IGNORECASE) candidates = [] @@ -318,15 +321,13 @@ def _get_package_data_from_simple_api( for ver, ver_str, url in candidates: if not ver.is_prerelease: logger.info( - f"Found download URL via Simple API for {package_name}=={ver_str}: {url}" + f"Found download URL via Simple API for {package_name}=={ver_str}" ) return ver_str, url # Fall back to latest prerelease if no stable version exists _, ver_str, url = candidates[0] - logger.info( - f"Found download URL via Simple API for {package_name}=={ver_str}: {url}" - ) + logger.info(f"Found download URL via Simple API for {package_name}=={ver_str}") return ver_str, url except Exception as e: From 08ea5c9435211697b58406f3b552636537718315 Mon Sep 17 00:00:00 2001 From: jennypng <63012604+JennyPng@users.noreply.github.com> Date: Fri, 29 May 2026 13:55:25 -0700 Subject: [PATCH 5/9] script improvement --- conda/update_conda_files.py | 59 ++++++++++++++++++++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/conda/update_conda_files.py b/conda/update_conda_files.py index 417f45bcbf0b..12af5f8bcbab 100644 --- a/conda/update_conda_files.py +++ b/conda/update_conda_files.py @@ -110,12 +110,24 @@ def increase_indent(self, flow=False, indentless=False): return super().increase_indent(flow, False) +def get_existing_conda_client_packages() -> set[str]: + """Return the set of package names already present in conda-sdk-client.yml.""" + with open(CONDA_CLIENT_YAML_PATH, "r") as file: + conda_client_data = yaml.safe_load(file) + + conda_artifacts = conda_client_data["extends"]["parameters"]["stages"][0]["jobs"][ + 0 + ]["steps"][0]["parameters"]["CondaArtifacts"] + + return set(build_package_index(conda_artifacts).keys()) + + def update_conda_sdk_client_yml( package_dict: dict[str, dict[str, str]], packages_to_update: list[str], new_data_plane_packages: list[str], new_mgmt_plane_packages: list[str], -) -> list[str]: +) -> tuple[list[str], list[str]]: """ Update outdated package versions and add new entries in conda-sdk-client.yml file @@ -1039,6 +1051,49 @@ def update_mgmt_plane_release_log( name for name in outdated_mgmt_plane_names if name not in new_mgmt_plane_names ] + # The pipeline runs ~a week before the official release, so a package can GA during + # that gap and be classified as "outdated" (by LatestGADate) even though it was never + # added to the conda files. Treat any package not already present as new instead, so it + # gets added rather than skipped by the update logic. Log a warning for visibility + # so it can be double checked. + existing_conda_packages = get_existing_conda_client_packages() + + reclassified_data_plane = [ + name + for name in outdated_data_plane_names + if name not in existing_conda_packages + ] + if reclassified_data_plane: + for name in reclassified_data_plane: + logger.warning( + f"Data plane package {name} was classified as outdated but is not present in " + f"conda-sdk-client.yml; treating it as new. Please double check it." + ) + outdated_data_plane_names = [ + name + for name in outdated_data_plane_names + if name not in reclassified_data_plane + ] + new_data_plane_names += reclassified_data_plane + + reclassified_mgmt_plane = [ + name + for name in outdated_mgmt_plane_names + if name not in existing_conda_packages + ] + if reclassified_mgmt_plane: + for name in reclassified_mgmt_plane: + logger.warning( + f"Management plane package {name} was classified as outdated but is not present in " + f"conda-sdk-client.yml; treating it as new. Please double check it." + ) + outdated_mgmt_plane_names = [ + name + for name in outdated_mgmt_plane_names + if name not in reclassified_mgmt_plane + ] + new_mgmt_plane_names += reclassified_mgmt_plane + # map package name to csv row for easy lookup package_dict = {pkg.get(PACKAGE_COL, ""): pkg for pkg in packages} @@ -1049,6 +1104,8 @@ def update_mgmt_plane_release_log( package_dict, outdated_package_names, new_data_plane_names, new_mgmt_plane_names ) + # packages + # pre-process bundled data packages to minimize file writes for new data plane packages, # and release logs (mgmt packages are always bundled together) bundle_map, bundle_failed_pkgs = map_bundle_to_packages( From 921d4cf7b5072694a7c7644a9929b94f522c7a6c Mon Sep 17 00:00:00 2001 From: jennypng <63012604+JennyPng@users.noreply.github.com> Date: Fri, 29 May 2026 14:04:42 -0700 Subject: [PATCH 6/9] fix --- conda/update_conda_files.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/conda/update_conda_files.py b/conda/update_conda_files.py index 12af5f8bcbab..8104e16418ce 100644 --- a/conda/update_conda_files.py +++ b/conda/update_conda_files.py @@ -127,7 +127,7 @@ def update_conda_sdk_client_yml( packages_to_update: list[str], new_data_plane_packages: list[str], new_mgmt_plane_packages: list[str], -) -> tuple[list[str], list[str]]: +) -> list[str]: """ Update outdated package versions and add new entries in conda-sdk-client.yml file @@ -1104,8 +1104,6 @@ def update_mgmt_plane_release_log( package_dict, outdated_package_names, new_data_plane_names, new_mgmt_plane_names ) - # packages - # pre-process bundled data packages to minimize file writes for new data plane packages, # and release logs (mgmt packages are always bundled together) bundle_map, bundle_failed_pkgs = map_bundle_to_packages( From c03a509427dc79b4a93c12c5b45bfe870468274b Mon Sep 17 00:00:00 2001 From: jennypng <63012604+JennyPng@users.noreply.github.com> Date: Mon, 1 Jun 2026 14:34:38 -0700 Subject: [PATCH 7/9] update pypi client to get uri --- eng/tools/azure-sdk-tools/pypi_tools/azdo.py | 73 +++++++++++++- eng/tools/azure-sdk-tools/pypi_tools/pypi.py | 31 ++++++ .../azure-sdk-tools/tests/test_pypi_client.py | 99 +++++++++++++++++++ 3 files changed, 202 insertions(+), 1 deletion(-) diff --git a/eng/tools/azure-sdk-tools/pypi_tools/azdo.py b/eng/tools/azure-sdk-tools/pypi_tools/azdo.py index 608a2ffd05fa..94c86e132224 100644 --- a/eng/tools/azure-sdk-tools/pypi_tools/azdo.py +++ b/eng/tools/azure-sdk-tools/pypi_tools/azdo.py @@ -62,9 +62,15 @@ class AzureArtifactsClient: via Azure DevOps Artifacts REST API. """ - def __init__(self, cfg: AzureArtifactsFeedConfig, base_url: str = "https://feeds.dev.azure.com"): + def __init__( + self, + cfg: AzureArtifactsFeedConfig, + base_url: str = "https://feeds.dev.azure.com", + pkgs_base_url: str = "https://pkgs.dev.azure.com", + ): self._cfg = cfg self._base_url = base_url.rstrip("/") + self._pkgs_base_url = pkgs_base_url.rstrip("/") self._http = PoolManager( retries=Retry(total=3, raise_on_status=True), ca_certs=os.getenv("REQUESTS_CA_BUNDLE", None), @@ -155,3 +161,68 @@ def get_ordered_versions(self, package_name: str, include_deleted: bool = False) out.sort() return out + + def _head_ok(self, url: str) -> bool: + """Return True if a HEAD request to *url* resolves successfully (2xx).""" + headers = self._auth_header() + try: + r = self._http.request("HEAD", url, headers=headers, redirect=True) + except Exception as ex: # pylint: disable=broad-except + logging.debug("HEAD request failed for %s: %s", url, ex) + return False + return 200 <= r.status < 300 + + def _sdist_filename_candidates(self, package_name: str, version: str) -> List[str]: + """Candidate sdist filenames for *package_name*==*version*. + + Sdist filenames vary by build tooling: legacy hyphenated form + (``azure-core-1.0.0.tar.gz``) vs PEP 625 underscore form + (``azure_core-1.0.0.tar.gz``), and ``.tar.gz`` vs ``.zip``. + """ + hyphen = re.sub(r"[-_.]+", "-", package_name) + underscore = re.sub(r"[-_.]+", "_", package_name) + # Preserve insertion order while de-duplicating (e.g. single-token names). + stems = list(dict.fromkeys([hyphen, underscore, package_name])) + return [f"{stem}-{version}{ext}" for stem in stems for ext in (".tar.gz", ".zip")] + + def get_download_uri(self, package_name: str, version: str) -> Optional[str]: + """Resolve the sdist download URI for *package_name*==*version*. + + Builds the Azure Artifacts PyPI download URL and probes candidate sdist + filenames with HEAD requests, returning the first that resolves. + Requesting this URL triggers an upstream pull, so versions that are not + yet present in the feed's stale PEP 503 Simple index are still served. + """ + download_base = ( + f"{self._pkgs_base_url}/{self._path_prefix()}" + f"/_packaging/{self._cfg.feed}/pypi/download/{package_name}/{version}" + ) + for filename in self._sdist_filename_candidates(package_name, version): + url = f"{download_base}/{filename}" + if self._head_ok(url): + logging.info("Resolved download URI for %s==%s: %s", package_name, version, url) + return url + logging.warning("Could not resolve a download URI for %s==%s", package_name, version) + return None + + def get_latest_download_uri( + self, package_name: str, allow_prerelease: bool = False + ) -> "tuple[Optional[str], Optional[str]]": + """Return ``(version_str, sdist_download_uri)`` for the latest version. + + Version discovery uses the Feed REST API, which reflects the feed's + current view (the PEP 503 Simple index only serves stale, locally-cached + versions). The download URI is resolved against ``pkgs.dev.azure.com``. + """ + versions = self.get_ordered_versions(package_name) + if not versions: + return None, None + + if allow_prerelease: + latest = versions[-1] + else: + stable = [v for v in versions if not v.is_prerelease] + latest = stable[-1] if stable else versions[-1] + + version_str = str(latest) + return version_str, self.get_download_uri(package_name, version_str) diff --git a/eng/tools/azure-sdk-tools/pypi_tools/pypi.py b/eng/tools/azure-sdk-tools/pypi_tools/pypi.py index d7fc7fd03ffc..274abc7de9dc 100644 --- a/eng/tools/azure-sdk-tools/pypi_tools/pypi.py +++ b/eng/tools/azure-sdk-tools/pypi_tools/pypi.py @@ -129,6 +129,37 @@ def get_relevant_versions(self, package_name): stable_releases = [version for version in versions if not version.is_prerelease] return (versions[-1], stable_releases[-1]) + def get_latest_download_uri(self, package_name, allow_prerelease=False): + """Return ``(version_str, sdist_download_uri)`` for the latest version. + + Works against both backends: + + * **AzDO Artifacts** — discovers the latest version via the Feed REST API + and resolves the sdist URL on ``pkgs.dev.azure.com``. The PEP 503 Simple + index is intentionally avoided because it only serves stale, locally + cached versions. + * **PyPI** — reads the JSON API and returns the latest version's sdist URL. + """ + if self._backend == "azdo": + return self._azdo.get_latest_download_uri(package_name, allow_prerelease=allow_prerelease) + + versions = self.get_ordered_versions(package_name) + if not versions: + return None, None + + if allow_prerelease: + latest_version = str(versions[-1]) + else: + stable = [version for version in versions if not version.is_prerelease] + latest_version = str(stable[-1] if stable else versions[-1]) + + data = self.project(package_name) + files = data.get("releases", {}).get(latest_version) or [] + sdist = next((f for f in files if f.get("packagetype") == "sdist"), None) + if sdist: + return latest_version, sdist["url"] + return latest_version, None + def retrieve_versions_from_pypi(package_name: str) -> List[str]: """ diff --git a/eng/tools/azure-sdk-tools/tests/test_pypi_client.py b/eng/tools/azure-sdk-tools/tests/test_pypi_client.py index c93fe7db93f3..1012cfb8fce9 100644 --- a/eng/tools/azure-sdk-tools/tests/test_pypi_client.py +++ b/eng/tools/azure-sdk-tools/tests/test_pypi_client.py @@ -1,4 +1,5 @@ from pypi_tools.pypi import PyPIClient, retrieve_versions_from_pypi +from pypi_tools.azdo import AzureArtifactsClient, AzureArtifactsFeedConfig from unittest.mock import patch import os import pytest @@ -102,6 +103,104 @@ def test_retrieve_versions_returns_strings(self, index_url): assert WELL_KNOWN_VERSION in versions +class TestGetLatestDownloadUri: + """Covers latest sdist URL resolution without relying on live package indexes.""" + + def test_pypi_backend_uses_latest_stable_by_default(self): + project_data = { + "info": {"version": "2.0.0b1"}, + "releases": { + "1.0.0": [{"packagetype": "sdist", "url": "https://example.test/pkg-1.0.0.tar.gz"}], + "2.0.0b1": [{"packagetype": "sdist", "url": "https://example.test/pkg-2.0.0b1.tar.gz"}], + }, + } + client = _make_client(PYPI_HOST) + + with patch.object(PyPIClient, "project", return_value=project_data): + version, url = client.get_latest_download_uri("example-pkg") + + assert version == "1.0.0" + assert url == "https://example.test/pkg-1.0.0.tar.gz" + + def test_pypi_backend_can_return_latest_prerelease(self): + project_data = { + "info": {"version": "2.0.0b1"}, + "releases": { + "1.0.0": [{"packagetype": "sdist", "url": "https://example.test/pkg-1.0.0.tar.gz"}], + "2.0.0b1": [{"packagetype": "sdist", "url": "https://example.test/pkg-2.0.0b1.tar.gz"}], + }, + } + client = _make_client(PYPI_HOST) + + with patch.object(PyPIClient, "project", return_value=project_data): + version, url = client.get_latest_download_uri("example-pkg", allow_prerelease=True) + + assert version == "2.0.0b1" + assert url == "https://example.test/pkg-2.0.0b1.tar.gz" + + def test_pypi_backend_returns_none_when_latest_has_no_sdist(self): + project_data = { + "info": {"version": "1.0.0"}, + "releases": { + "1.0.0": [{"packagetype": "bdist_wheel", "url": "https://example.test/pkg-1.0.0.whl"}], + }, + } + client = _make_client(PYPI_HOST) + + with patch.object(PyPIClient, "project", return_value=project_data): + version, url = client.get_latest_download_uri("example-pkg") + + assert version == "1.0.0" + assert url is None + + def test_azdo_backend_uses_latest_stable_by_default(self): + client = AzureArtifactsClient(AzureArtifactsFeedConfig("org", "project", "feed")) + + with patch.object( + client, "get_ordered_versions", return_value=[Version("1.0.0"), Version("2.0.0b1")] + ), patch.object( + client, "get_download_uri", return_value="https://example.test/pkg-1.0.0.tar.gz" + ) as get_download_uri: + version, url = client.get_latest_download_uri("example-pkg") + + assert version == "1.0.0" + assert url == "https://example.test/pkg-1.0.0.tar.gz" + get_download_uri.assert_called_once_with("example-pkg", "1.0.0") + + def test_azdo_backend_can_return_latest_prerelease(self): + client = AzureArtifactsClient(AzureArtifactsFeedConfig("org", "project", "feed")) + + with patch.object( + client, "get_ordered_versions", return_value=[Version("1.0.0"), Version("2.0.0b1")] + ), patch.object( + client, "get_download_uri", return_value="https://example.test/pkg-2.0.0b1.tar.gz" + ) as get_download_uri: + version, url = client.get_latest_download_uri("example-pkg", allow_prerelease=True) + + assert version == "2.0.0b1" + assert url == "https://example.test/pkg-2.0.0b1.tar.gz" + get_download_uri.assert_called_once_with("example-pkg", "2.0.0b1") + + def test_azdo_download_uri_probes_normalized_sdist_names(self): + client = AzureArtifactsClient( + AzureArtifactsFeedConfig("org", "project", "feed"), pkgs_base_url="https://pkgs.example.test" + ) + + with patch.object(client, "_head_ok", side_effect=lambda url: url.endswith("/azure_core-1.2.3.tar.gz")): + url = client.get_download_uri("azure-core", "1.2.3") + + assert ( + url + == "https://pkgs.example.test/org/project/_packaging/feed/pypi/download/azure-core/1.2.3/azure_core-1.2.3.tar.gz" + ) + + def test_azdo_download_uri_returns_none_when_no_candidate_resolves(self): + client = AzureArtifactsClient(AzureArtifactsFeedConfig("org", "project", "feed")) + + with patch.object(client, "_head_ok", return_value=False): + assert client.get_download_uri("example-pkg", "1.0.0") is None + + # --------------------------------------------------------------------------- # project_release — works on both backends (AzDO falls back to pypi.org) # --------------------------------------------------------------------------- From 66fa6f184506ae2a83fa462c4d2b30da6748d083 Mon Sep 17 00:00:00 2001 From: jennypng <63012604+JennyPng@users.noreply.github.com> Date: Mon, 1 Jun 2026 14:47:03 -0700 Subject: [PATCH 8/9] fix --- conda/conda_helper_functions.py | 123 +++--------------- eng/tools/azure-sdk-tools/pypi_tools/azdo.py | 39 ++++-- eng/tools/azure-sdk-tools/pypi_tools/pypi.py | 24 +++- .../azure-sdk-tools/tests/test_pypi_client.py | 89 ++++++++++--- 4 files changed, 135 insertions(+), 140 deletions(-) diff --git a/conda/conda_helper_functions.py b/conda/conda_helper_functions.py index f6ac9c4d0d7b..e1d9d27c6aff 100644 --- a/conda/conda_helper_functions.py +++ b/conda/conda_helper_functions.py @@ -4,11 +4,8 @@ import os import glob -import re -import base64 from functools import lru_cache from typing import Optional -from urllib.parse import urljoin, urlparse import csv from ci_tools.logging import logger import urllib.request @@ -253,118 +250,30 @@ def is_stable_on_pypi(package_name: str) -> bool: return False -def _get_package_data_from_simple_api( +def get_package_data_from_pypi( package_name: str, ) -> tuple[Optional[str], Optional[str]]: - """Fetch latest version and sdist download URI via PEP 503 Simple API. + """Fetch the latest version and download URI for a package from the active index. - Used as a fallback when the PyPI JSON API is unavailable, e.g. when - PIP_INDEX_URL points to an Azure DevOps Artifacts feed (set by PipAuthenticate@1). + Uses :class:`PyPIClient`, which transparently selects the backend based on + ``PIP_INDEX_URL``: - The AzDO feed proxies PyPI as an upstream source — authenticated requests - resolve the full upstream index, so the latest version is available even if - it hasn't been previously cached in the feed. + * Against **pypi.org**, the JSON API is used. + * Against an **Azure DevOps Artifacts** feed (set by ``PipAuthenticate@1`` in + CI), the Feed REST API resolves the latest version and the sdist URL is + resolved on ``pkgs.dev.azure.com``. """ - index_url = os.environ.get("PIP_INDEX_URL", "https://pypi.org/simple/") - simple_url = f"{index_url.rstrip('/')}/{package_name}/" - - try: - # PipAuthenticate@1 embeds credentials in PIP_INDEX_URL as - # https://build:@pkgs.dev.azure.com/... - # Extract them into an Authorization header and strip from the URL. - parsed = urlparse(simple_url) - headers = {} - if parsed.password: - creds = base64.b64encode( - f"{parsed.username or ''}:{parsed.password}".encode() - ).decode() - headers["Authorization"] = f"Basic {creds}" - clean_netloc = parsed.hostname - if parsed.port and clean_netloc: - clean_netloc += f":{parsed.port}" - simple_url = parsed._replace(netloc=clean_netloc).geturl() - - headers["Accept"] = "text/html" - req = urllib.request.Request(simple_url, headers=headers) - with urllib.request.urlopen(req, timeout=30) as response: - html = response.read().decode("utf-8") - - # Parse PEP 503 HTML: each filename is a distribution file. - link_re = re.compile( - r']*href="([^"]+)"[^>]*>([^<]+)', re.IGNORECASE - ) - # Match sdist filenames like "msal-1.35.0.tar.gz" (hyphens may appear as [-_.] per PEP 625) - # Split on separators first, escape each segment, then rejoin with a flexible separator pattern. - name_parts = re.split(r"[-_.]+", package_name) - name_normalized = "[-_.]+".join(re.escape(part) for part in name_parts) - ver_re = re.compile(f"^{name_normalized}-(.+)\\.tar\\.gz$", re.IGNORECASE) - - candidates = [] - for m in link_re.finditer(html): - href, filename = m.group(1), m.group(2) - ver_m = ver_re.match(filename) - if ver_m: - ver_str = ver_m.group(1) - try: - ver = Version(ver_str) - # Strip the #sha256=... fragment; resolve relative href against base URL - url = urljoin(req.full_url, href.split("#")[0]) - candidates.append((ver, ver_str, url)) - except Exception: - continue - - if not candidates: - return None, None - - # Pick the latest stable (non-prerelease) version - candidates.sort(key=lambda x: x[0], reverse=True) - for ver, ver_str, url in candidates: - if not ver.is_prerelease: - logger.info( - f"Found download URL via Simple API for {package_name}=={ver_str}" - ) - return ver_str, url - - # Fall back to latest prerelease if no stable version exists - _, ver_str, url = candidates[0] - logger.info(f"Found download URL via Simple API for {package_name}=={ver_str}") - return ver_str, url - - except Exception as e: - logger.error( - f"Failed to fetch package data from Simple API for {package_name}: {e}" - ) - return None, None - - -def get_package_data_from_pypi( - package_name: str, -) -> tuple[Optional[str], Optional[str]]: - """Fetch the latest version and download URI for a package from PyPI.""" try: client = PyPIClient() - data = client.project(package_name) - - # Get the latest version - latest_version = data["info"]["version"] - if latest_version in data["releases"] and data["releases"][latest_version]: - # Get the source distribution (sdist) if available - files = data["releases"][latest_version] - source_dist = next((f for f in files if f["packagetype"] == "sdist"), None) - if source_dist: - download_url = source_dist["url"] - logger.info( - f"Found download URL for {package_name}=={latest_version}: {download_url}" - ) - return latest_version, download_url - - except NotImplementedError: - logger.info( - f"PyPI JSON API unavailable, falling back to Simple API for {package_name}" - ) - return _get_package_data_from_simple_api(package_name) + version, download_url = client.get_latest_download_uri(package_name) + if version and download_url: + logger.info( + f"Found download URL for {package_name}=={version}: {download_url}" + ) + return version, download_url + logger.error(f"No sdist download URL resolved for {package_name}") except Exception as e: - logger.error(f"Failed to fetch download URI from PyPI for {package_name}: {e}") + logger.error(f"Failed to fetch download URI from index for {package_name}: {e}") return None, None diff --git a/eng/tools/azure-sdk-tools/pypi_tools/azdo.py b/eng/tools/azure-sdk-tools/pypi_tools/azdo.py index 94c86e132224..026a191e7e02 100644 --- a/eng/tools/azure-sdk-tools/pypi_tools/azdo.py +++ b/eng/tools/azure-sdk-tools/pypi_tools/azdo.py @@ -29,7 +29,8 @@ class AzureArtifactsFeedConfig: # Pattern: https://pkgs.dev.azure.com/{org}/{project}/_packaging/{feed}/pypi/simple/ # or org-scoped: https://pkgs.dev.azure.com/{org}/_packaging/{feed}/pypi/simple/ _AZDO_FEED_RE = re.compile( - r"/(?P[^/]+)/(?:(?P[^/_][^/]*)/)?" r"_packaging/(?P[^/]+)/pypi/simple/?$" + r"/(?P[^/]+)/(?:(?P[^/_][^/]*)/)?" + r"_packaging/(?P[^/]+)/pypi/simple/?$" ) @@ -82,7 +83,9 @@ def _auth_header(self) -> Dict[str, str]: if self._cfg.pat: # Azure DevOps PATs can be used via HTTP Basic by base64-encoding ":". - token = base64.b64encode(f":{self._cfg.pat}".encode("utf-8")).decode("ascii") + token = base64.b64encode(f":{self._cfg.pat}".encode("utf-8")).decode( + "ascii" + ) return {"Authorization": f"Basic {token}"} return {} @@ -116,7 +119,9 @@ def resolve_feed_id(self) -> str: raise KeyError(f"Feed not found: {feed!r}") - def get_package_record(self, package_name: str, include_deleted: bool = False) -> Dict[str, Any]: + def get_package_record( + self, package_name: str, include_deleted: bool = False + ) -> Dict[str, Any]: feed_id = self.resolve_feed_id() url = f"{self._base_url}/{self._path_prefix()}/_apis/packaging/Feeds/{feed_id}/packages" @@ -134,7 +139,10 @@ def get_package_record(self, package_name: str, include_deleted: bool = False) - # packageNameQuery is "contains string", so choose best match. target = pep503_normalize(package_name) for pkg in packages: - if pep503_normalize(pkg.get("normalizedName", pkg.get("name", ""))) == target: + if ( + pep503_normalize(pkg.get("normalizedName", pkg.get("name", ""))) + == target + ): return pkg for pkg in packages: if pep503_normalize(pkg.get("name", "")) == target: @@ -142,7 +150,9 @@ def get_package_record(self, package_name: str, include_deleted: bool = False) - raise KeyError(f"Package not found in feed: {package_name!r}") - def get_ordered_versions(self, package_name: str, include_deleted: bool = False) -> List[Version]: + def get_ordered_versions( + self, package_name: str, include_deleted: bool = False + ) -> List[Version]: pkg = self.get_package_record(package_name, include_deleted=include_deleted) out: List[Version] = [] @@ -157,7 +167,12 @@ def get_ordered_versions(self, package_name: str, include_deleted: bool = False) try: out.append(parse(raw)) except InvalidVersion: - logging.warning("Invalid version %r for package %s (feed=%s)", raw, package_name, self._cfg.feed) + logging.warning( + "Invalid version %r for package %s (feed=%s)", + raw, + package_name, + self._cfg.feed, + ) out.sort() return out @@ -183,7 +198,9 @@ def _sdist_filename_candidates(self, package_name: str, version: str) -> List[st underscore = re.sub(r"[-_.]+", "_", package_name) # Preserve insertion order while de-duplicating (e.g. single-token names). stems = list(dict.fromkeys([hyphen, underscore, package_name])) - return [f"{stem}-{version}{ext}" for stem in stems for ext in (".tar.gz", ".zip")] + return [ + f"{stem}-{version}{ext}" for stem in stems for ext in (".tar.gz", ".zip") + ] def get_download_uri(self, package_name: str, version: str) -> Optional[str]: """Resolve the sdist download URI for *package_name*==*version*. @@ -200,9 +217,13 @@ def get_download_uri(self, package_name: str, version: str) -> Optional[str]: for filename in self._sdist_filename_candidates(package_name, version): url = f"{download_base}/{filename}" if self._head_ok(url): - logging.info("Resolved download URI for %s==%s: %s", package_name, version, url) + logging.info( + "Resolved download URI for %s==%s: %s", package_name, version, url + ) return url - logging.warning("Could not resolve a download URI for %s==%s", package_name, version) + logging.warning( + "Could not resolve a download URI for %s==%s", package_name, version + ) return None def get_latest_download_uri( diff --git a/eng/tools/azure-sdk-tools/pypi_tools/pypi.py b/eng/tools/azure-sdk-tools/pypi_tools/pypi.py index 274abc7de9dc..0fb5134afc51 100644 --- a/eng/tools/azure-sdk-tools/pypi_tools/pypi.py +++ b/eng/tools/azure-sdk-tools/pypi_tools/pypi.py @@ -85,19 +85,27 @@ def filter_packages_for_compatibility(self, package_name, version_set): results: List[Version] = [] for version in version_set: - requires_python = self.project_release(package_name, version)["info"]["requires_python"] + requires_python = self.project_release(package_name, version)["info"][ + "requires_python" + ] if requires_python: try: - if parse(".".join(map(str, sys.version_info[:3]))) in SpecifierSet(requires_python): + if parse(".".join(map(str, sys.version_info[:3]))) in SpecifierSet( + requires_python + ): results.append(version) except InvalidSpecifier: - logging.warn(f"Invalid python_requires {requires_python!r} for package {package_name}=={version}") + logging.warn( + f"Invalid python_requires {requires_python!r} for package {package_name}=={version}" + ) continue else: results.append(version) return results - def get_ordered_versions(self, package_name, filter_by_compatibility=False) -> List[Version]: + def get_ordered_versions( + self, package_name, filter_by_compatibility=False + ) -> List[Version]: if self._backend == "azdo": versions = self._azdo.get_ordered_versions(package_name) if filter_by_compatibility: @@ -114,7 +122,9 @@ def get_ordered_versions(self, package_name, filter_by_compatibility=False) -> L continue versions.append(parse(package_version)) except InvalidVersion: - logging.warn(f"Invalid version {package_version} for package {package_name}") + logging.warn( + f"Invalid version {package_version} for package {package_name}" + ) continue versions.sort() @@ -141,7 +151,9 @@ def get_latest_download_uri(self, package_name, allow_prerelease=False): * **PyPI** — reads the JSON API and returns the latest version's sdist URL. """ if self._backend == "azdo": - return self._azdo.get_latest_download_uri(package_name, allow_prerelease=allow_prerelease) + return self._azdo.get_latest_download_uri( + package_name, allow_prerelease=allow_prerelease + ) versions = self.get_ordered_versions(package_name) if not versions: diff --git a/eng/tools/azure-sdk-tools/tests/test_pypi_client.py b/eng/tools/azure-sdk-tools/tests/test_pypi_client.py index 1012cfb8fce9..c07ea618cb51 100644 --- a/eng/tools/azure-sdk-tools/tests/test_pypi_client.py +++ b/eng/tools/azure-sdk-tools/tests/test_pypi_client.py @@ -85,7 +85,9 @@ class TestRetrieveVersions: """Covers the convenience wrapper used by verify_sdist.py / verify_whl.py.""" @SKIP_IN_CI - @pytest.mark.parametrize("index_url", [PYPI_HOST, AZDO_FEED_URL], ids=["pypi", "azdo"]) + @pytest.mark.parametrize( + "index_url", [PYPI_HOST, AZDO_FEED_URL], ids=["pypi", "azdo"] + ) def test_retrieve_versions_returns_strings(self, index_url): old = os.environ.get("PIP_INDEX_URL") try: @@ -110,8 +112,18 @@ def test_pypi_backend_uses_latest_stable_by_default(self): project_data = { "info": {"version": "2.0.0b1"}, "releases": { - "1.0.0": [{"packagetype": "sdist", "url": "https://example.test/pkg-1.0.0.tar.gz"}], - "2.0.0b1": [{"packagetype": "sdist", "url": "https://example.test/pkg-2.0.0b1.tar.gz"}], + "1.0.0": [ + { + "packagetype": "sdist", + "url": "https://example.test/pkg-1.0.0.tar.gz", + } + ], + "2.0.0b1": [ + { + "packagetype": "sdist", + "url": "https://example.test/pkg-2.0.0b1.tar.gz", + } + ], }, } client = _make_client(PYPI_HOST) @@ -126,14 +138,26 @@ def test_pypi_backend_can_return_latest_prerelease(self): project_data = { "info": {"version": "2.0.0b1"}, "releases": { - "1.0.0": [{"packagetype": "sdist", "url": "https://example.test/pkg-1.0.0.tar.gz"}], - "2.0.0b1": [{"packagetype": "sdist", "url": "https://example.test/pkg-2.0.0b1.tar.gz"}], + "1.0.0": [ + { + "packagetype": "sdist", + "url": "https://example.test/pkg-1.0.0.tar.gz", + } + ], + "2.0.0b1": [ + { + "packagetype": "sdist", + "url": "https://example.test/pkg-2.0.0b1.tar.gz", + } + ], }, } client = _make_client(PYPI_HOST) with patch.object(PyPIClient, "project", return_value=project_data): - version, url = client.get_latest_download_uri("example-pkg", allow_prerelease=True) + version, url = client.get_latest_download_uri( + "example-pkg", allow_prerelease=True + ) assert version == "2.0.0b1" assert url == "https://example.test/pkg-2.0.0b1.tar.gz" @@ -142,7 +166,12 @@ def test_pypi_backend_returns_none_when_latest_has_no_sdist(self): project_data = { "info": {"version": "1.0.0"}, "releases": { - "1.0.0": [{"packagetype": "bdist_wheel", "url": "https://example.test/pkg-1.0.0.whl"}], + "1.0.0": [ + { + "packagetype": "bdist_wheel", + "url": "https://example.test/pkg-1.0.0.whl", + } + ], }, } client = _make_client(PYPI_HOST) @@ -154,12 +183,18 @@ def test_pypi_backend_returns_none_when_latest_has_no_sdist(self): assert url is None def test_azdo_backend_uses_latest_stable_by_default(self): - client = AzureArtifactsClient(AzureArtifactsFeedConfig("org", "project", "feed")) + client = AzureArtifactsClient( + AzureArtifactsFeedConfig("org", "project", "feed") + ) with patch.object( - client, "get_ordered_versions", return_value=[Version("1.0.0"), Version("2.0.0b1")] + client, + "get_ordered_versions", + return_value=[Version("1.0.0"), Version("2.0.0b1")], ), patch.object( - client, "get_download_uri", return_value="https://example.test/pkg-1.0.0.tar.gz" + client, + "get_download_uri", + return_value="https://example.test/pkg-1.0.0.tar.gz", ) as get_download_uri: version, url = client.get_latest_download_uri("example-pkg") @@ -168,14 +203,22 @@ def test_azdo_backend_uses_latest_stable_by_default(self): get_download_uri.assert_called_once_with("example-pkg", "1.0.0") def test_azdo_backend_can_return_latest_prerelease(self): - client = AzureArtifactsClient(AzureArtifactsFeedConfig("org", "project", "feed")) + client = AzureArtifactsClient( + AzureArtifactsFeedConfig("org", "project", "feed") + ) with patch.object( - client, "get_ordered_versions", return_value=[Version("1.0.0"), Version("2.0.0b1")] + client, + "get_ordered_versions", + return_value=[Version("1.0.0"), Version("2.0.0b1")], ), patch.object( - client, "get_download_uri", return_value="https://example.test/pkg-2.0.0b1.tar.gz" + client, + "get_download_uri", + return_value="https://example.test/pkg-2.0.0b1.tar.gz", ) as get_download_uri: - version, url = client.get_latest_download_uri("example-pkg", allow_prerelease=True) + version, url = client.get_latest_download_uri( + "example-pkg", allow_prerelease=True + ) assert version == "2.0.0b1" assert url == "https://example.test/pkg-2.0.0b1.tar.gz" @@ -183,10 +226,15 @@ def test_azdo_backend_can_return_latest_prerelease(self): def test_azdo_download_uri_probes_normalized_sdist_names(self): client = AzureArtifactsClient( - AzureArtifactsFeedConfig("org", "project", "feed"), pkgs_base_url="https://pkgs.example.test" + AzureArtifactsFeedConfig("org", "project", "feed"), + pkgs_base_url="https://pkgs.example.test", ) - with patch.object(client, "_head_ok", side_effect=lambda url: url.endswith("/azure_core-1.2.3.tar.gz")): + with patch.object( + client, + "_head_ok", + side_effect=lambda url: url.endswith("/azure_core-1.2.3.tar.gz"), + ): url = client.get_download_uri("azure-core", "1.2.3") assert ( @@ -195,7 +243,9 @@ def test_azdo_download_uri_probes_normalized_sdist_names(self): ) def test_azdo_download_uri_returns_none_when_no_candidate_resolves(self): - client = AzureArtifactsClient(AzureArtifactsFeedConfig("org", "project", "feed")) + client = AzureArtifactsClient( + AzureArtifactsFeedConfig("org", "project", "feed") + ) with patch.object(client, "_head_ok", return_value=False): assert client.get_download_uri("example-pkg", "1.0.0") is None @@ -214,7 +264,10 @@ def test_project_release_returns_version_info(self, client): result = client.project_release(WELL_KNOWN_PACKAGE, WELL_KNOWN_VERSION) assert result["info"]["name"] == WELL_KNOWN_PACKAGE - assert result["info"]["release_url"] == f"https://pypi.org/project/{WELL_KNOWN_PACKAGE}/{WELL_KNOWN_VERSION}/" + assert ( + result["info"]["release_url"] + == f"https://pypi.org/project/{WELL_KNOWN_PACKAGE}/{WELL_KNOWN_VERSION}/" + ) # requires_dist is what the mindep resolver reads assert "requires_dist" in result["info"] From ac2885f8d79063b3f9012a84dd2b9b0ffaa37126 Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Mon, 1 Jun 2026 22:20:07 +0000 Subject: [PATCH 9/9] Update conda files for 2026.06.01 release --- .../azure-ai-contentunderstanding/meta.yaml | 50 +++++ .../azure-ai-transcription/meta.yaml | 50 +++++ conda/conda-recipes/azure-batch/meta.yaml | 50 +++++ conda/conda-recipes/azure-mgmt/meta.yaml | 25 +++ .../azure-planetarycomputer/meta.yaml | 56 +++++ .../azure-postgresql-auth/meta.yaml | 44 ++++ conda/conda-recipes/conda_env.yml | 2 +- conda/conda-releaselogs/azure-ai-agents.md | 6 + .../azure-ai-contentsafety.md | 6 + .../azure-ai-contentunderstanding.md | 7 + .../azure-ai-documentintelligence.md | 6 + .../azure-ai-formrecognizer.md | 6 + .../azure-ai-language-conversations.md | 6 + .../azure-ai-language-questionanswering.md | 6 + conda/conda-releaselogs/azure-ai-ml.md | 6 + conda/conda-releaselogs/azure-ai-projects.md | 6 + .../azure-ai-textanalytics.md | 6 + .../azure-ai-transcription.md | 7 + .../azure-ai-translation-document.md | 6 + .../azure-ai-translation-text.md | 6 + conda/conda-releaselogs/azure-ai-vision.md | 6 + conda/conda-releaselogs/azure-ai-voicelive.md | 6 + .../azure-appconfiguration-provider.md | 6 + .../azure-appconfiguration.md | 6 + conda/conda-releaselogs/azure-batch.md | 7 + .../conda-releaselogs/azure-communication.md | 14 ++ .../azure-confidentialledger.md | 6 + .../azure-containerregistry.md | 6 + conda/conda-releaselogs/azure-core.md | 6 + conda/conda-releaselogs/azure-cosmos.md | 6 + conda/conda-releaselogs/azure-data-tables.md | 6 + .../azure-developer-loadtesting.md | 6 + .../azure-digitaltwins-core.md | 6 + conda/conda-releaselogs/azure-eventgrid.md | 6 + conda/conda-releaselogs/azure-eventhub.md | 8 + .../azure-health-deidentification.md | 6 + .../conda-releaselogs/azure-healthinsights.md | 6 + conda/conda-releaselogs/azure-identity.md | 6 + .../azure-iot-deviceupdate.md | 6 + conda/conda-releaselogs/azure-keyvault.md | 9 + .../azure-messaging-webpubsubclient.md | 6 + .../azure-messaging-webpubsubservice.md | 6 + conda/conda-releaselogs/azure-mgmt.md | 194 ++++++++++++++++++ .../azure-monitor-ingestion.md | 6 + .../azure-monitor-opentelemetry.md | 6 + .../conda-releaselogs/azure-monitor-query.md | 6 + .../azure-monitor-querymetrics.md | 6 + .../azure-planetarycomputer.md | 7 + .../azure-postgresql-auth.md | 7 + .../conda-releaselogs/azure-schemaregistry.md | 7 + .../azure-search-documents.md | 6 + .../azure-security-attestation.md | 6 + conda/conda-releaselogs/azure-servicebus.md | 6 + conda/conda-releaselogs/azure-storage.md | 9 + conda/conda-releaselogs/msal-extensions.md | 6 + conda/conda-releaselogs/msal.md | 6 + .../templates/stages/conda-sdk-client.yml | 189 +++++++++++------ 57 files changed, 907 insertions(+), 63 deletions(-) create mode 100644 conda/conda-recipes/azure-ai-contentunderstanding/meta.yaml create mode 100644 conda/conda-recipes/azure-ai-transcription/meta.yaml create mode 100644 conda/conda-recipes/azure-batch/meta.yaml create mode 100644 conda/conda-recipes/azure-planetarycomputer/meta.yaml create mode 100644 conda/conda-recipes/azure-postgresql-auth/meta.yaml create mode 100644 conda/conda-releaselogs/azure-ai-contentunderstanding.md create mode 100644 conda/conda-releaselogs/azure-ai-transcription.md create mode 100644 conda/conda-releaselogs/azure-batch.md create mode 100644 conda/conda-releaselogs/azure-planetarycomputer.md create mode 100644 conda/conda-releaselogs/azure-postgresql-auth.md diff --git a/conda/conda-recipes/azure-ai-contentunderstanding/meta.yaml b/conda/conda-recipes/azure-ai-contentunderstanding/meta.yaml new file mode 100644 index 000000000000..958e94320a58 --- /dev/null +++ b/conda/conda-recipes/azure-ai-contentunderstanding/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "azure-ai-contentunderstanding" %} + +package: + name: "{{ name|lower }}" + version: {{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +source: + url: {{ environ.get('CONTENTUNDERSTANDING_SOURCE_DISTRIBUTION', '') }} + +build: + noarch: python + number: 0 + script: "{{ PYTHON }} -m pip install . -vv" + +requirements: + host: + - isodate>=0.6.1 + - python + - pip + - typing-extensions>=4.6.0 + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + run: + - isodate>=0.6.1 + - python + - typing-extensions>=4.6.0 + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +test: + imports: + - azure.ai.contentunderstanding + - azure.ai.contentunderstanding.aio + - azure.ai.contentunderstanding.models + +about: + home: "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/contentunderstanding/azure-ai-contentunderstanding" + license: MIT + license_family: MIT + license_file: + summary: "Microsoft Azure Contentunderstanding Client Library for Python" + description: | + This is the Microsoft Azure Contentunderstanding Client Library for Python. + Please see https://aka.ms/azsdk/conda/releases/contentunderstanding for version details. + doc_url: + dev_url: + +extra: + recipe-maintainers: + - xiangyan99 diff --git a/conda/conda-recipes/azure-ai-transcription/meta.yaml b/conda/conda-recipes/azure-ai-transcription/meta.yaml new file mode 100644 index 000000000000..4e6366094649 --- /dev/null +++ b/conda/conda-recipes/azure-ai-transcription/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "azure-ai-transcription" %} + +package: + name: "{{ name|lower }}" + version: {{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +source: + url: {{ environ.get('TRANSCRIPTION_SOURCE_DISTRIBUTION', '') }} + +build: + noarch: python + number: 0 + script: "{{ PYTHON }} -m pip install . -vv" + +requirements: + host: + - isodate>=0.6.1 + - python + - pip + - typing-extensions>=4.6.0 + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + run: + - isodate>=0.6.1 + - python + - typing-extensions>=4.6.0 + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +test: + imports: + - azure.ai.transcription + - azure.ai.transcription.aio + - azure.ai.transcription.models + +about: + home: "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/transcription/azure-ai-transcription" + license: MIT + license_family: MIT + license_file: + summary: "Microsoft Azure Transcription Client Library for Python" + description: | + This is the Microsoft Azure Transcription Client Library for Python. + Please see https://aka.ms/azsdk/conda/releases/transcription for version details. + doc_url: + dev_url: + +extra: + recipe-maintainers: + - xiangyan99 diff --git a/conda/conda-recipes/azure-batch/meta.yaml b/conda/conda-recipes/azure-batch/meta.yaml new file mode 100644 index 000000000000..122e66f8b523 --- /dev/null +++ b/conda/conda-recipes/azure-batch/meta.yaml @@ -0,0 +1,50 @@ +{% set name = "azure-batch" %} + +package: + name: "{{ name|lower }}" + version: {{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +source: + url: {{ environ.get('BATCH_SOURCE_DISTRIBUTION', '') }} + +build: + noarch: python + number: 0 + script: "{{ PYTHON }} -m pip install . -vv" + +requirements: + host: + - isodate>=0.6.1 + - python + - pip + - typing-extensions>=4.6.0 + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + run: + - isodate>=0.6.1 + - python + - typing-extensions>=4.6.0 + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +test: + imports: + - azure.batch + - azure.batch.aio + - azure.batch.models + +about: + home: "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/batch/azure-batch" + license: MIT + license_family: MIT + license_file: + summary: "Microsoft Azure Batch Client Library for Python" + description: | + This is the Microsoft Azure Batch Client Library for Python. + Please see https://aka.ms/azsdk/conda/releases/batch for version details. + doc_url: + dev_url: + +extra: + recipe-maintainers: + - xiangyan99 diff --git a/conda/conda-recipes/azure-mgmt/meta.yaml b/conda/conda-recipes/azure-mgmt/meta.yaml index ed37c3c8d6bb..d2ec3fee5b1d 100644 --- a/conda/conda-recipes/azure-mgmt/meta.yaml +++ b/conda/conda-recipes/azure-mgmt/meta.yaml @@ -202,6 +202,11 @@ test: - azure.mgmt.computefleet.aio.operations - azure.mgmt.computefleet.models - azure.mgmt.computefleet.operations + - azure.mgmt.computelimit + - azure.mgmt.computelimit.aio + - azure.mgmt.computelimit.aio.operations + - azure.mgmt.computelimit.models + - azure.mgmt.computelimit.operations - azure.mgmt.computeschedule - azure.mgmt.computeschedule.aio - azure.mgmt.computeschedule.aio.operations @@ -347,6 +352,11 @@ test: - azure.mgmt.devtestlabs.operations - azure.mgmt.digitaltwins - azure.mgmt.digitaltwins.aio + - azure.mgmt.disconnectedoperations + - azure.mgmt.disconnectedoperations.aio + - azure.mgmt.disconnectedoperations.aio.operations + - azure.mgmt.disconnectedoperations.models + - azure.mgmt.disconnectedoperations.operations - azure.mgmt.dns - azure.mgmt.dns.aio - azure.mgmt.dns.aio.operations @@ -478,6 +488,11 @@ test: - azure.mgmt.informaticadatamanagement.aio.operations - azure.mgmt.informaticadatamanagement.models - azure.mgmt.informaticadatamanagement.operations + - azure.mgmt.iotcentral + - azure.mgmt.iotcentral.aio + - azure.mgmt.iotcentral.aio.operations + - azure.mgmt.iotcentral.models + - azure.mgmt.iotcentral.operations - azure.mgmt.iotfirmwaredefense - azure.mgmt.iotfirmwaredefense.aio - azure.mgmt.iotfirmwaredefense.aio.operations @@ -504,6 +519,11 @@ test: - azure.mgmt.keyvault.aio - azure.mgmt.kubernetesconfiguration - azure.mgmt.kubernetesconfiguration.aio + - azure.mgmt.kubernetesconfiguration.extensions + - azure.mgmt.kubernetesconfiguration.extensions.aio + - azure.mgmt.kubernetesconfiguration.extensions.aio.operations + - azure.mgmt.kubernetesconfiguration.extensions.models + - azure.mgmt.kubernetesconfiguration.extensions.operations - azure.mgmt.kubernetesconfiguration.v2023_05_01 - azure.mgmt.kubernetesconfiguration.v2023_05_01.aio - azure.mgmt.kubernetesconfiguration.v2023_05_01.aio.operations @@ -674,6 +694,11 @@ test: - azure.mgmt.peering.aio.operations - azure.mgmt.peering.models - azure.mgmt.peering.operations + - azure.mgmt.planetarycomputer + - azure.mgmt.planetarycomputer.aio + - azure.mgmt.planetarycomputer.aio.operations + - azure.mgmt.planetarycomputer.models + - azure.mgmt.planetarycomputer.operations - azure.mgmt.playwright - azure.mgmt.playwright.aio - azure.mgmt.playwright.aio.operations diff --git a/conda/conda-recipes/azure-planetarycomputer/meta.yaml b/conda/conda-recipes/azure-planetarycomputer/meta.yaml new file mode 100644 index 000000000000..a272a286c77c --- /dev/null +++ b/conda/conda-recipes/azure-planetarycomputer/meta.yaml @@ -0,0 +1,56 @@ +{% set name = "azure-planetarycomputer" %} + +package: + name: "{{ name|lower }}" + version: {{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +source: + url: {{ environ.get('PLANETARYCOMPUTER_SOURCE_DISTRIBUTION', '') }} + +build: + noarch: python + number: 0 + script: "{{ PYTHON }} -m pip install . -vv" + +requirements: + host: + - isodate>=0.6.1 + - geojson>=2.0.0 + - python + - pip + - pystac>=1.11.0 + - typing-extensions>=4.6.0 + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + run: + - isodate>=0.6.1 + - geojson>=2.0.0 + - python + - pystac>=1.11.0 + - typing-extensions>=4.6.0 + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +test: + imports: + - azure.planetarycomputer + - azure.planetarycomputer.aio + - azure.planetarycomputer.models + - azure.planetarycomputer.operations + - azure.planetarycomputer.aio.operations + +about: + home: "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/planetarycomputer/azure-planetarycomputer" + license: MIT + license_family: MIT + license_file: + summary: "Microsoft Azure Planetarycomputer Client Library for Python" + description: | + This is the Microsoft Azure Planetarycomputer Client Library for Python. + Please see https://aka.ms/azsdk/conda/releases/planetarycomputer for version details. + doc_url: + dev_url: + +extra: + recipe-maintainers: + - xiangyan99 diff --git a/conda/conda-recipes/azure-postgresql-auth/meta.yaml b/conda/conda-recipes/azure-postgresql-auth/meta.yaml new file mode 100644 index 000000000000..934c31802795 --- /dev/null +++ b/conda/conda-recipes/azure-postgresql-auth/meta.yaml @@ -0,0 +1,44 @@ +{% set name = "azure-postgresql-auth" %} + +package: + name: "{{ name|lower }}" + version: {{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + +source: + url: {{ environ.get('AUTH_SOURCE_DISTRIBUTION', '') }} + +build: + noarch: python + number: 0 + script: "{{ PYTHON }} -m pip install . -vv" + +requirements: + host: + - pip + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + - python + run: + - aiohttp + - azure-core >={{ environ.get('AZURESDK_CONDA_VERSION', '0.0.0') }} + - python + +test: + imports: + - azure_postgresql_auth + +about: + home: "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/postgresql/azure-postgresql-auth" + license: MIT + license_family: MIT + license_file: + summary: "Microsoft Azure Postgresql Client Library for Python" + description: | + This is the Microsoft Azure Postgresql Client Library for Python. + Please see https://aka.ms/azsdk/conda/releases/postgresql for version details. + doc_url: + dev_url: + +extra: + recipe-maintainers: + - xiangyan99 diff --git a/conda/conda-recipes/conda_env.yml b/conda/conda-recipes/conda_env.yml index d01bdda64151..82c9b5977b2d 100644 --- a/conda/conda-recipes/conda_env.yml +++ b/conda/conda-recipes/conda_env.yml @@ -1,2 +1,2 @@ variables: - AZURESDK_CONDA_VERSION: '2026.03.01' + AZURESDK_CONDA_VERSION: '2026.06.01' diff --git a/conda/conda-releaselogs/azure-ai-agents.md b/conda/conda-releaselogs/azure-ai-agents.md index affba7f759b7..0516584f245e 100644 --- a/conda/conda-releaselogs/azure-ai-agents.md +++ b/conda/conda-releaselogs/azure-ai-agents.md @@ -1,5 +1,11 @@ # Azure AI Agents client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-agents-1.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-contentsafety.md b/conda/conda-releaselogs/azure-ai-contentsafety.md index 2fc09c48dd91..a5a9969a7836 100644 --- a/conda/conda-releaselogs/azure-ai-contentsafety.md +++ b/conda/conda-releaselogs/azure-ai-contentsafety.md @@ -1,5 +1,11 @@ # Azure AI Content Safety client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-contentsafety-1.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-contentunderstanding.md b/conda/conda-releaselogs/azure-ai-contentunderstanding.md new file mode 100644 index 000000000000..b4742a3ec88c --- /dev/null +++ b/conda/conda-releaselogs/azure-ai-contentunderstanding.md @@ -0,0 +1,7 @@ +# Azure Ai Contentunderstanding client library for Python (conda) + +## 2026.06.01 + +### Packages included + +- azure-ai-contentunderstanding-1.1.0 \ No newline at end of file diff --git a/conda/conda-releaselogs/azure-ai-documentintelligence.md b/conda/conda-releaselogs/azure-ai-documentintelligence.md index 8c144f4f0073..cf78cd28dc13 100644 --- a/conda/conda-releaselogs/azure-ai-documentintelligence.md +++ b/conda/conda-releaselogs/azure-ai-documentintelligence.md @@ -1,5 +1,11 @@ # Azure AI Document Intelligence client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-documentintelligence-1.0.2 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-formrecognizer.md b/conda/conda-releaselogs/azure-ai-formrecognizer.md index ba576def3a8e..48187f0df829 100644 --- a/conda/conda-releaselogs/azure-ai-formrecognizer.md +++ b/conda/conda-releaselogs/azure-ai-formrecognizer.md @@ -1,5 +1,11 @@ # Azure Form Recognizer client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-formrecognizer-3.3.3 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-language-conversations.md b/conda/conda-releaselogs/azure-ai-language-conversations.md index 5fba57f5e3b2..5134f520f003 100644 --- a/conda/conda-releaselogs/azure-ai-language-conversations.md +++ b/conda/conda-releaselogs/azure-ai-language-conversations.md @@ -1,5 +1,11 @@ # Azure Conversational Language Understanding client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-language-conversations-1.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-language-questionanswering.md b/conda/conda-releaselogs/azure-ai-language-questionanswering.md index 8b581fdf89a1..f7dd5efcf871 100644 --- a/conda/conda-releaselogs/azure-ai-language-questionanswering.md +++ b/conda/conda-releaselogs/azure-ai-language-questionanswering.md @@ -1,5 +1,11 @@ # Azure Cognitive Language Services Question Answering client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-language-questionanswering-1.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-ml.md b/conda/conda-releaselogs/azure-ai-ml.md index a9e303c3ea7c..4e9c1824ba62 100644 --- a/conda/conda-releaselogs/azure-ai-ml.md +++ b/conda/conda-releaselogs/azure-ai-ml.md @@ -1,5 +1,11 @@ # Azure ML Package client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-ml-1.33.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-projects.md b/conda/conda-releaselogs/azure-ai-projects.md index 59b4b095b67f..70be21632f42 100644 --- a/conda/conda-releaselogs/azure-ai-projects.md +++ b/conda/conda-releaselogs/azure-ai-projects.md @@ -1,5 +1,11 @@ # Azure AI Projects client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-projects-2.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-textanalytics.md b/conda/conda-releaselogs/azure-ai-textanalytics.md index ba928e5c5b04..9bbb35a2b101 100644 --- a/conda/conda-releaselogs/azure-ai-textanalytics.md +++ b/conda/conda-releaselogs/azure-ai-textanalytics.md @@ -1,5 +1,11 @@ # Azure Text Analytics client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-textanalytics-5.4.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-transcription.md b/conda/conda-releaselogs/azure-ai-transcription.md new file mode 100644 index 000000000000..a6145e1cf360 --- /dev/null +++ b/conda/conda-releaselogs/azure-ai-transcription.md @@ -0,0 +1,7 @@ +# Azure Ai Transcription client library for Python (conda) + +## 2026.06.01 + +### Packages included + +- azure-ai-transcription-1.0.0 \ No newline at end of file diff --git a/conda/conda-releaselogs/azure-ai-translation-document.md b/conda/conda-releaselogs/azure-ai-translation-document.md index 41f1acbf06d9..c927ca196568 100644 --- a/conda/conda-releaselogs/azure-ai-translation-document.md +++ b/conda/conda-releaselogs/azure-ai-translation-document.md @@ -1,5 +1,11 @@ # Azure Document Translation client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-translation-document-1.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-translation-text.md b/conda/conda-releaselogs/azure-ai-translation-text.md index 9fc6d72bd2ab..eb2e9784defd 100644 --- a/conda/conda-releaselogs/azure-ai-translation-text.md +++ b/conda/conda-releaselogs/azure-ai-translation-text.md @@ -1,5 +1,11 @@ # Azure Text Translation client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-translation-text-1.0.1 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-vision.md b/conda/conda-releaselogs/azure-ai-vision.md index 56d27efefa3f..0528621b8a58 100644 --- a/conda/conda-releaselogs/azure-ai-vision.md +++ b/conda/conda-releaselogs/azure-ai-vision.md @@ -1,5 +1,11 @@ # Azure AI Vision client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-vision-imageanalysis-1.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-ai-voicelive.md b/conda/conda-releaselogs/azure-ai-voicelive.md index 79bcc7e0735d..4a7934b1494d 100644 --- a/conda/conda-releaselogs/azure-ai-voicelive.md +++ b/conda/conda-releaselogs/azure-ai-voicelive.md @@ -1,5 +1,11 @@ # Azure AI VoiceLive client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-ai-voicelive-1.2.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-appconfiguration-provider.md b/conda/conda-releaselogs/azure-appconfiguration-provider.md index 64d6911a0b22..92ed5ec88655 100644 --- a/conda/conda-releaselogs/azure-appconfiguration-provider.md +++ b/conda/conda-releaselogs/azure-appconfiguration-provider.md @@ -1,5 +1,11 @@ # Azure Appconfiguration Provider client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-appconfiguration-provider-2.4.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-appconfiguration.md b/conda/conda-releaselogs/azure-appconfiguration.md index 58963a558567..77b5a76b7c45 100644 --- a/conda/conda-releaselogs/azure-appconfiguration.md +++ b/conda/conda-releaselogs/azure-appconfiguration.md @@ -1,5 +1,11 @@ # Azure App Configuration client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-appconfiguration-1.8.1 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-batch.md b/conda/conda-releaselogs/azure-batch.md new file mode 100644 index 000000000000..08d4b7a088ed --- /dev/null +++ b/conda/conda-releaselogs/azure-batch.md @@ -0,0 +1,7 @@ +# Azure Batch client library for Python (conda) + +## 2026.06.01 + +### Packages included + +- azure-batch-15.1.0 \ No newline at end of file diff --git a/conda/conda-releaselogs/azure-communication.md b/conda/conda-releaselogs/azure-communication.md index 4b4a2ef53fb3..a5a3e8b7a1b4 100644 --- a/conda/conda-releaselogs/azure-communication.md +++ b/conda/conda-releaselogs/azure-communication.md @@ -1,5 +1,19 @@ # Azure Communication client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-communication-callautomation-1.5.0 +- azure-communication-chat-1.3.0 +- azure-communication-email-1.1.0 +- azure-communication-identity-1.5.0 +- azure-communication-jobrouter-1.0.0 +- azure-communication-messages-1.1.0 +- azure-communication-phonenumbers-1.4.0 +- azure-communication-rooms-1.2.0 +- azure-communication-sms-1.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-confidentialledger.md b/conda/conda-releaselogs/azure-confidentialledger.md index 3d0a8918eec2..fb43cb87ed04 100644 --- a/conda/conda-releaselogs/azure-confidentialledger.md +++ b/conda/conda-releaselogs/azure-confidentialledger.md @@ -1,5 +1,11 @@ # Microsoft Azure Confidential Ledger Client Library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-confidentialledger-1.1.1 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-containerregistry.md b/conda/conda-releaselogs/azure-containerregistry.md index 95042ede7684..814c9d7a1157 100644 --- a/conda/conda-releaselogs/azure-containerregistry.md +++ b/conda/conda-releaselogs/azure-containerregistry.md @@ -1,5 +1,11 @@ # Azure Container Registry client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-containerregistry-1.2.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-core.md b/conda/conda-releaselogs/azure-core.md index 65f63b64aab2..a4026c333ead 100644 --- a/conda/conda-releaselogs/azure-core.md +++ b/conda/conda-releaselogs/azure-core.md @@ -1,5 +1,11 @@ # Azure Core client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-core-1.41.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-cosmos.md b/conda/conda-releaselogs/azure-cosmos.md index 7b976923bf3f..3f1941c7007f 100644 --- a/conda/conda-releaselogs/azure-cosmos.md +++ b/conda/conda-releaselogs/azure-cosmos.md @@ -1,5 +1,11 @@ # Azure Cosmos DB SQL API client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-cosmos-4.15.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-data-tables.md b/conda/conda-releaselogs/azure-data-tables.md index d53b7e8fdc49..addeb243e30e 100644 --- a/conda/conda-releaselogs/azure-data-tables.md +++ b/conda/conda-releaselogs/azure-data-tables.md @@ -1,5 +1,11 @@ # Azure Tables client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-data-tables-12.7.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-developer-loadtesting.md b/conda/conda-releaselogs/azure-developer-loadtesting.md index eb5864dc6d95..4a51622d8694 100644 --- a/conda/conda-releaselogs/azure-developer-loadtesting.md +++ b/conda/conda-releaselogs/azure-developer-loadtesting.md @@ -1,5 +1,11 @@ # Microsoft Azure Developer LoadTesting Client Library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-developer-loadtesting-1.0.1 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-digitaltwins-core.md b/conda/conda-releaselogs/azure-digitaltwins-core.md index 4f61687a8f2d..5f1635043842 100644 --- a/conda/conda-releaselogs/azure-digitaltwins-core.md +++ b/conda/conda-releaselogs/azure-digitaltwins-core.md @@ -1,5 +1,11 @@ # Azure Digital Twins Core client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-digitaltwins-core-1.3.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-eventgrid.md b/conda/conda-releaselogs/azure-eventgrid.md index 83cc0c3f38a0..ecae76aefc5e 100644 --- a/conda/conda-releaselogs/azure-eventgrid.md +++ b/conda/conda-releaselogs/azure-eventgrid.md @@ -1,5 +1,11 @@ # Azure Event Grid client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-eventgrid-4.22.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-eventhub.md b/conda/conda-releaselogs/azure-eventhub.md index ca06e0ff6726..e6e89e252a2e 100644 --- a/conda/conda-releaselogs/azure-eventhub.md +++ b/conda/conda-releaselogs/azure-eventhub.md @@ -1,5 +1,13 @@ # Azure Event Hubs client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-eventhub-checkpointstoreblob-1.2.0 +- azure-eventhub-checkpointstoreblob-aio-1.2.0 +- azure-eventhub-5.15.1 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-health-deidentification.md b/conda/conda-releaselogs/azure-health-deidentification.md index 2ab7c885db8e..98aa46d62b16 100644 --- a/conda/conda-releaselogs/azure-health-deidentification.md +++ b/conda/conda-releaselogs/azure-health-deidentification.md @@ -1,5 +1,11 @@ # Azure Health Deidentification client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-health-deidentification-1.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-healthinsights.md b/conda/conda-releaselogs/azure-healthinsights.md index ee4821edfa63..f594dd4dabae 100644 --- a/conda/conda-releaselogs/azure-healthinsights.md +++ b/conda/conda-releaselogs/azure-healthinsights.md @@ -1,5 +1,11 @@ # Azure Cognitive Services Health Insights client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-healthinsights-radiologyinsights-1.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-identity.md b/conda/conda-releaselogs/azure-identity.md index b3c292414f95..fa293aac8603 100644 --- a/conda/conda-releaselogs/azure-identity.md +++ b/conda/conda-releaselogs/azure-identity.md @@ -1,5 +1,11 @@ # Azure Identity client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-identity-1.25.3 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-iot-deviceupdate.md b/conda/conda-releaselogs/azure-iot-deviceupdate.md index 33a508f1c050..08644caa02fb 100644 --- a/conda/conda-releaselogs/azure-iot-deviceupdate.md +++ b/conda/conda-releaselogs/azure-iot-deviceupdate.md @@ -1,5 +1,11 @@ # Azure Device Update for IoT Hub client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-iot-deviceupdate-1.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-keyvault.md b/conda/conda-releaselogs/azure-keyvault.md index b08857b127ab..b92e148d4c7b 100644 --- a/conda/conda-releaselogs/azure-keyvault.md +++ b/conda/conda-releaselogs/azure-keyvault.md @@ -1,5 +1,14 @@ # Azure Key Vault client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-keyvault-administration-4.7.0 +- azure-keyvault-certificates-4.11.1 +- azure-keyvault-keys-4.11.1 +- azure-keyvault-secrets-4.11.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-messaging-webpubsubclient.md b/conda/conda-releaselogs/azure-messaging-webpubsubclient.md index 6410c5081379..16808c51c98e 100644 --- a/conda/conda-releaselogs/azure-messaging-webpubsubclient.md +++ b/conda/conda-releaselogs/azure-messaging-webpubsubclient.md @@ -1,5 +1,11 @@ # Azure Web PubSub client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-messaging-webpubsubclient-1.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-messaging-webpubsubservice.md b/conda/conda-releaselogs/azure-messaging-webpubsubservice.md index 9f3d7df99a13..ae702fc2fa19 100644 --- a/conda/conda-releaselogs/azure-messaging-webpubsubservice.md +++ b/conda/conda-releaselogs/azure-messaging-webpubsubservice.md @@ -1,5 +1,11 @@ # Azure Web PubSub service client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-messaging-webpubsubservice-1.3.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-mgmt.md b/conda/conda-releaselogs/azure-mgmt.md index 7e380cd73a9e..3c5e684a05d0 100644 --- a/conda/conda-releaselogs/azure-mgmt.md +++ b/conda/conda-releaselogs/azure-mgmt.md @@ -1,5 +1,199 @@ # Azure Resource Management library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-mgmt-core-1.6.0 +- azure-mgmt-devcenter-1.1.0 +- azure-mgmt-elasticsan-2.0.0 +- azure-mgmt-advisor-9.0.1 +- azure-mgmt-alertsmanagement-1.0.1 +- azure-mgmt-apicenter-1.0.0 +- azure-mgmt-apimanagement-5.0.0 +- azure-mgmt-appcomplianceautomation-1.0.0 +- azure-mgmt-appconfiguration-5.0.0 +- azure-mgmt-web-11.0.0 +- azure-mgmt-applicationinsights-4.1.0 +- azure-mgmt-azurearcdata-1.0.1 +- azure-mgmt-arizeaiobservabilityeval-1.0.0 +- azure-mgmt-artifactsigning-1.0.0 +- azure-mgmt-attestation-2.0.0 +- azure-mgmt-authorization-4.0.0 +- azure-mgmt-automanage-1.0.0 +- azure-mgmt-automation-1.0.1 +- azure-mgmt-search-9.2.0 +- azure-mgmt-azurestack-1.0.1 +- azure-mgmt-azurestackhci-8.0.0 +- azure-mgmt-avs-10.0.0 +- azure-mgmt-baremetalinfrastructure-1.0.1 +- azure-mgmt-batch-19.0.0 +- azure-mgmt-billing-7.0.0 +- azure-mgmt-botservice-2.0.0 +- azure-mgmt-carbonoptimization-1.0.0 +- azure-mgmt-chaos-2.0.0 +- azure-mgmt-cognitiveservices-14.1.0 +- azure-mgmt-commerce-6.0.1 +- azure-mgmt-communication-2.2.0 +- azure-mgmt-compute-38.0.0 +- azure-mgmt-computefleet-1.0.0 +- azure-mgmt-computeschedule-1.1.0 +- azure-mgmt-computelimit-1.0.0 +- azure-mgmt-confidentialledger-1.0.1 +- azure-mgmt-confluent-2.1.0 +- azure-mgmt-connectedvmware-1.0.0 +- azure-mgmt-consumption-10.0.0 +- azure-mgmt-appcontainers-4.0.0 +- azure-mgmt-containerinstance-10.1.0 +- azure-mgmt-containerregistry-15.0.0 +- azure-mgmt-containerservice-41.2.0 +- azure-mgmt-containerservicefleet-3.1.0 +- azure-mgmt-cdn-13.1.1 +- azure-mgmt-cosmosdb-9.9.0 +- azure-mgmt-cosmosdbforpostgresql-1.0.0 +- azure-mgmt-costmanagement-4.0.1 +- azure-mgmt-customproviders-1.0.1 +- azure-mgmt-databox-3.1.0 +- azure-mgmt-databoxedge-2.0.0 +- azure-mgmt-datafactory-9.3.0 +- azure-mgmt-datalake-store-1.0.0 +- azure-mgmt-datamigration-10.1.0 +- azure-mgmt-dataprotection-2.0.1 +- azure-mgmt-datashare-1.0.1 +- azure-mgmt-databricks-2.0.0 +- azure-mgmt-datadog-2.1.0 +- azure-mgmt-dellstorage-1.0.0 +- azure-mgmt-deploymentmanager-1.0.0 +- azure-mgmt-desktopvirtualization-2.0.0 +- azure-mgmt-iothubprovisioningservices-1.1.0 +- azure-mgmt-deviceregistry-1.1.0 +- azure-mgmt-deviceupdate-1.1.0 +- azure-mgmt-devopsinfrastructure-1.0.0 +- azure-mgmt-devtestlabs-9.0.1 +- azure-mgmt-digitaltwins-7.0.0 +- azure-mgmt-disconnectedoperations-1.0.0 +- azure-mgmt-dns-9.0.0 +- azure-mgmt-dnsresolver-1.1.0 +- azure-mgmt-durabletask-1.1.0 +- azure-mgmt-dynatrace-2.0.0 +- azure-mgmt-edgeorder-2.0.0 +- azure-mgmt-elastic-2.0.0 +- azure-mgmt-eventgrid-10.4.0 +- azure-mgmt-eventhub-11.2.0 +- azure-mgmt-extendedlocation-2.0.0 +- azure-mgmt-fabric-1.0.0 +- azure-mgmt-fluidrelay-1.0.0 +- azure-mgmt-frontdoor-1.2.0 +- azure-mgmt-graphservices-1.0.0 +- azure-mgmt-hanaonazure-1.0.1 +- azure-mgmt-hardwaresecuritymodules-1.0.0 +- azure-mgmt-hdinsight-9.0.1 +- azure-mgmt-healthdataaiservices-1.0.0 +- azure-mgmt-healthcareapis-2.1.0 +- azure-mgmt-hybridcompute-9.0.0 +- azure-mgmt-hybridconnectivity-1.0.0 +- azure-mgmt-hybridcontainerservice-1.0.0 +- azure-mgmt-hybridkubernetes-1.2.0 +- azure-mgmt-hybridnetwork-2.0.0 +- azure-mgmt-imagebuilder-1.4.0 +- azure-mgmt-informaticadatamanagement-1.0.0 +- azure-mgmt-iotcentral-9.0.1 +- azure-mgmt-iotfirmwaredefense-2.0.0 +- azure-mgmt-iothub-4.0.0 +- azure-mgmt-iotoperations-1.1.0 +- azure-mgmt-keyvault-14.0.1 +- azure-mgmt-kubernetesconfiguration-3.1.0 +- azure-mgmt-kubernetesconfiguration-extensions-1.0.0 +- azure-mgmt-kusto-3.4.0 +- azure-mgmt-labservices-2.0.0 +- azure-mgmt-lambdatesthyperexecute-1.0.0 +- azure-mgmt-loadtesting-1.0.0 +- azure-mgmt-loganalytics-13.1.1 +- azure-mgmt-logic-10.0.0 +- azure-mgmt-machinelearningservices-1.0.1 +- azure-mgmt-maintenance-2.1.0 +- azure-mgmt-dashboard-2.0.0 +- azure-mgmt-managednetworkfabric-1.0.0 +- azure-mgmt-msi-7.1.0 +- azure-mgmt-managedservices-6.0.1 +- azure-mgmt-managementgroups-1.1.0 +- azure-mgmt-managementpartner-1.0.1 +- azure-mgmt-maps-2.1.0 +- azure-mgmt-marketplaceordering-1.1.1 +- azure-mgmt-mongocluster-1.1.0 +- azure-mgmt-mongodbatlas-1.0.0 +- azure-mgmt-monitor-7.0.0 +- azure-mgmt-mysqlflexibleservers-1.0.0 +- azure-mgmt-netapp-16.0.0 +- azure-mgmt-network-30.2.0 +- azure-mgmt-networkcloud-2.2.0 +- azure-mgmt-newrelicobservability-1.1.0 +- azure-mgmt-nginx-4.0.0 +- azure-mgmt-notificationhubs-8.0.0 +- azure-mgmt-operationsmanagement-1.0.1 +- azure-mgmt-oracledatabase-3.0.0 +- azure-mgmt-orbital-2.0.0 +- azure-mgmt-paloaltonetworksngfw-1.1.0 +- azure-mgmt-peering-1.0.1 +- azure-mgmt-planetarycomputer-1.0.0 +- azure-mgmt-playwright-1.0.0 +- azure-mgmt-policyinsights-1.0.1 +- azure-mgmt-portal-1.0.1 +- azure-mgmt-rdbms-10.1.1 +- azure-mgmt-postgresqlflexibleservers-2.0.0 +- azure-mgmt-powerbidedicated-1.0.1 +- azure-mgmt-privatedns-1.2.0 +- azure-mgmt-purestorageblock-1.0.0 +- azure-mgmt-purview-1.0.1 +- azure-mgmt-qumulo-2.0.0 +- azure-mgmt-quota-3.0.1 +- azure-mgmt-recoveryservices-4.0.1 +- azure-mgmt-recoveryservicesbackup-10.0.0 +- azure-mgmt-recoveryservicesdatareplication-1.0.0 +- azure-mgmt-recoveryservicessiterecovery-1.3.0 +- azure-mgmt-redhatopenshift-3.0.0 +- azure-mgmt-redis-14.5.0 +- azure-mgmt-redisenterprise-3.1.0 +- azure-mgmt-relay-1.1.1 +- azure-mgmt-reservations-2.3.0 +- azure-mgmt-resourceconnector-1.0.0 +- azure-mgmt-resourcegraph-8.0.1 +- azure-mgmt-resourcemover-1.1.0 +- azure-mgmt-resource-deploymentstacks-1.0.0 +- azure-mgmt-resource-25.0.0 +- azure-mgmt-scvmm-1.0.0 +- azure-mgmt-security-7.0.0 +- azure-mgmt-securityinsight-1.0.0 +- azure-mgmt-selfhelp-1.0.0 +- azure-mgmt-serialconsole-1.0.1 +- azure-mgmt-servicebus-9.0.0 +- azure-mgmt-servicefabric-2.1.0 +- azure-mgmt-servicefabricmanagedclusters-3.0.0 +- azure-mgmt-servicelinker-1.1.0 +- azure-mgmt-servicenetworking-2.0.0 +- azure-mgmt-signalr-1.2.0 +- azure-mgmt-sitemanager-1.0.1 +- azure-mgmt-sphere-1.0.0 +- azure-mgmt-sql-3.0.1 +- azure-mgmt-standbypool-2.0.0 +- azure-mgmt-storage-25.0.0 +- azure-mgmt-storageactions-1.0.0 +- azure-mgmt-storagecache-3.0.1 +- azure-mgmt-storagemover-3.0.0 +- azure-mgmt-storagepool-1.0.0 +- azure-mgmt-storagesync-1.0.1 +- azure-mgmt-storagediscovery-1.0.1 +- azure-mgmt-streamanalytics-1.0.0 +- azure-mgmt-subscription-3.1.1 +- azure-mgmt-support-7.0.0 +- azure-mgmt-synapse-2.0.0 +- azure-mgmt-timeseriesinsights-1.0.0 +- azure-mgmt-trafficmanager-1.1.0 +- azure-mgmt-voiceservices-1.0.0 +- azure-mgmt-webpubsub-2.0.0 +- azure-mgmt-workloads-1.0.0 +- azure-mgmt-workloadssapvirtualinstance-1.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-monitor-ingestion.md b/conda/conda-releaselogs/azure-monitor-ingestion.md index 0735796b4226..8b2fa3c80b59 100644 --- a/conda/conda-releaselogs/azure-monitor-ingestion.md +++ b/conda/conda-releaselogs/azure-monitor-ingestion.md @@ -1,5 +1,11 @@ # Azure Monitor Ingestion client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-monitor-ingestion-1.1.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-monitor-opentelemetry.md b/conda/conda-releaselogs/azure-monitor-opentelemetry.md index d4b823aedb34..991cfd14000a 100644 --- a/conda/conda-releaselogs/azure-monitor-opentelemetry.md +++ b/conda/conda-releaselogs/azure-monitor-opentelemetry.md @@ -1,5 +1,11 @@ # Azure Monitor Opentelemetry client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-monitor-opentelemetry-1.8.8 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-monitor-query.md b/conda/conda-releaselogs/azure-monitor-query.md index a1e1efdadccd..b2b7947f4f68 100644 --- a/conda/conda-releaselogs/azure-monitor-query.md +++ b/conda/conda-releaselogs/azure-monitor-query.md @@ -1,5 +1,11 @@ # Azure Monitor Query client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-monitor-query-2.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-monitor-querymetrics.md b/conda/conda-releaselogs/azure-monitor-querymetrics.md index 9787f3a22235..a025f755d65a 100644 --- a/conda/conda-releaselogs/azure-monitor-querymetrics.md +++ b/conda/conda-releaselogs/azure-monitor-querymetrics.md @@ -1,5 +1,11 @@ # Azure Monitor Query Metrics client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-monitor-querymetrics-1.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-planetarycomputer.md b/conda/conda-releaselogs/azure-planetarycomputer.md new file mode 100644 index 000000000000..ab79aa2de940 --- /dev/null +++ b/conda/conda-releaselogs/azure-planetarycomputer.md @@ -0,0 +1,7 @@ +# Azure Planetarycomputer client library for Python (conda) + +## 2026.06.01 + +### Packages included + +- azure-planetarycomputer-1.0.0 \ No newline at end of file diff --git a/conda/conda-releaselogs/azure-postgresql-auth.md b/conda/conda-releaselogs/azure-postgresql-auth.md new file mode 100644 index 000000000000..92821b397dd8 --- /dev/null +++ b/conda/conda-releaselogs/azure-postgresql-auth.md @@ -0,0 +1,7 @@ +# Azure Postgresql Auth client library for Python (conda) + +## 2026.06.01 + +### Packages included + +- azure-postgresql-auth-1.0.2 \ No newline at end of file diff --git a/conda/conda-releaselogs/azure-schemaregistry.md b/conda/conda-releaselogs/azure-schemaregistry.md index 1fd07fd734eb..7f0b88d0f796 100644 --- a/conda/conda-releaselogs/azure-schemaregistry.md +++ b/conda/conda-releaselogs/azure-schemaregistry.md @@ -1,5 +1,12 @@ # Azure Schema Registry client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-schemaregistry-1.3.0 +- azure-schemaregistry-avroencoder-1.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-search-documents.md b/conda/conda-releaselogs/azure-search-documents.md index c44ea5dfb002..7e367d867d3e 100644 --- a/conda/conda-releaselogs/azure-search-documents.md +++ b/conda/conda-releaselogs/azure-search-documents.md @@ -1,5 +1,11 @@ # Azure Cognitive Search client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-search-documents-12.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-security-attestation.md b/conda/conda-releaselogs/azure-security-attestation.md index c2642fff0074..1897db14cebc 100644 --- a/conda/conda-releaselogs/azure-security-attestation.md +++ b/conda/conda-releaselogs/azure-security-attestation.md @@ -1,5 +1,11 @@ # Azure Attestation client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-security-attestation-1.0.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-servicebus.md b/conda/conda-releaselogs/azure-servicebus.md index bbc8c7c1625e..2833391bdd67 100644 --- a/conda/conda-releaselogs/azure-servicebus.md +++ b/conda/conda-releaselogs/azure-servicebus.md @@ -1,5 +1,11 @@ # Azure Service Bus client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-servicebus-7.14.3 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/azure-storage.md b/conda/conda-releaselogs/azure-storage.md index 24dd7144ed00..122f8d1d8c64 100644 --- a/conda/conda-releaselogs/azure-storage.md +++ b/conda/conda-releaselogs/azure-storage.md @@ -1,5 +1,14 @@ # Azure Storage client library for Python (conda) +## 2026.06.01 + +### Packages included + +- azure-storage-blob-12.29.0 +- azure-storage-file-datalake-12.24.0 +- azure-storage-file-share-12.25.0 +- azure-storage-queue-12.16.0 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/msal-extensions.md b/conda/conda-releaselogs/msal-extensions.md index dd54d58f8365..18c09742285e 100644 --- a/conda/conda-releaselogs/msal-extensions.md +++ b/conda/conda-releaselogs/msal-extensions.md @@ -1,5 +1,11 @@ # Microsoft Authentication Extensions for Python (conda) +## 2026.06.01 + +### Packages included + +- msal-extensions-1.3.1 + ## 2026.03.01 ### Packages included diff --git a/conda/conda-releaselogs/msal.md b/conda/conda-releaselogs/msal.md index 41c96788fc55..2095cf826568 100644 --- a/conda/conda-releaselogs/msal.md +++ b/conda/conda-releaselogs/msal.md @@ -1,5 +1,11 @@ # Microsoft Authentication Library (MSAL) for Python (conda) +## 2026.06.01 + +### Packages included + +- msal-1.37.0 + ## 2026.03.01 ### Packages included diff --git a/eng/pipelines/templates/stages/conda-sdk-client.yml b/eng/pipelines/templates/stages/conda-sdk-client.yml index ae4b775891e1..316533029753 100644 --- a/eng/pipelines/templates/stages/conda-sdk-client.yml +++ b/eng/pipelines/templates/stages/conda-sdk-client.yml @@ -197,6 +197,26 @@ parameters: displayName: azure-mgmt type: boolean default: true + - name: release_azure_ai_transcription + displayName: azure-ai-transcription + type: boolean + default: true + - name: release_azure_batch + displayName: azure-batch + type: boolean + default: true + - name: release_azure_planetarycomputer + displayName: azure-planetarycomputer + type: boolean + default: true + - name: release_azure_postgresql_auth + displayName: azure-postgresql-auth + type: boolean + default: true + - name: release_azure_ai_contentunderstanding + displayName: azure-ai-contentunderstanding + type: boolean + default: true extends: template: /eng/pipelines/templates/stages/1es-redirect.yml parameters: @@ -222,7 +242,7 @@ extends: in_batch: ${{ parameters.release_azure_core }} checkout: - package: azure-core - version: 1.38.2 + version: 1.41.0 - package: azure-mgmt-core version: 1.6.0 - package: azure-common @@ -231,19 +251,19 @@ extends: in_batch: true checkout: - package: msal - download_uri: https://files.pythonhosted.org/packages/cf/0e/c857c46d653e104019a84f22d4494f2119b4fe9f896c92b4b864b3b045cc/msal-1.34.0.tar.gz + download_uri: https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/download/msal/1.37.0/msal-1.37.0.tar.gz - name: msal-extensions common_root: msal in_batch: true checkout: - package: msal-extensions - download_uri: https://files.pythonhosted.org/packages/01/99/5d239b6156eddf761a636bded1118414d161bd6b7b37a9335549ed159396/msal_extensions-1.3.1.tar.gz + download_uri: https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/download/msal-extensions/1.3.1/msal_extensions-1.3.1.tar.gz - name: azure-identity service: identity in_batch: ${{ parameters.release_azure_identity }} checkout: - package: azure-identity - version: 1.25.2 + version: 1.25.3 - name: azure-healthinsights common_root: azure in_batch: ${{ parameters.release_azure_healthinsights }} @@ -257,13 +277,13 @@ extends: service: storage checkout: - package: azure-storage-blob - version: 12.28.0 + version: 12.29.0 - package: azure-storage-queue - version: 12.15.0 + version: 12.16.0 - package: azure-storage-file-share - version: 12.24.0 + version: 12.25.0 - package: azure-storage-file-datalake - version: 12.23.0 + version: 12.24.0 - name: azure-ai-ml service: ml in_batch: ${{ parameters.release_azure_ai_ml }} @@ -271,7 +291,7 @@ extends: - conda-forge checkout: - package: azure-ai-ml - version: 1.31.0 + version: 1.33.0 - name: azure-ai-contentsafety common_root: azure service: contentsafety @@ -285,7 +305,7 @@ extends: in_batch: ${{ parameters.release_azure_ai_evaluation }} checkout: - package: azure-ai-evaluation - version: 1.15.1 + version: 1.16.9 - name: azure-ai-formrecognizer common_root: azure service: formrecognizer @@ -311,7 +331,7 @@ extends: in_batch: ${{ parameters.release_azure_ai_textanalytics }} checkout: - package: azure-ai-textanalytics - version: 5.3.0 + version: 5.4.0 - name: azure-ai-translation-document service: translation in_batch: ${{ parameters.release_azure_ai_translation_document }} @@ -336,7 +356,7 @@ extends: in_batch: ${{ parameters.release_azure_appconfiguration }} checkout: - package: azure-appconfiguration - version: 1.8.0 + version: 1.8.1 - name: azure-appconfiguration-provider service: appconfiguration in_batch: ${{ parameters.release_azure_appconfiguration_provider }} @@ -431,13 +451,13 @@ extends: in_batch: ${{ parameters.release_azure_keyvault }} checkout: - package: azure-keyvault-administration - version: 4.6.0 + version: 4.7.0 - package: azure-keyvault-certificates - version: 4.10.0 + version: 4.11.1 - package: azure-keyvault-keys - version: 4.11.0 + version: 4.11.1 - package: azure-keyvault-secrets - version: 4.10.0 + version: 4.11.0 - name: azure-messaging-webpubsubservice service: webpubsub in_batch: ${{ parameters.release_azure_messaging_webpubsubservice }} @@ -461,7 +481,7 @@ extends: in_batch: ${{ parameters.release_azure_monitor_opentelemetry }} checkout: - package: azure-monitor-opentelemetry - version: 1.8.6 + version: 1.8.8 - name: azure-monitor-query service: monitor in_batch: ${{ parameters.release_azure_monitor_query }} @@ -482,7 +502,7 @@ extends: in_batch: ${{ parameters.release_azure_search_documents }} checkout: - package: azure-search-documents - version: 11.6.0 + version: 12.0.0 - name: azure-security-attestation service: attestation in_batch: ${{ parameters.release_azure_security_attestation }} @@ -522,14 +542,14 @@ extends: in_batch: ${{ parameters.release_azure_ai_projects }} checkout: - package: azure-ai-projects - version: 1.0.0 + version: 2.1.0 - name: azure-ai-voicelive common_root: azure service: projects in_batch: ${{ parameters.release_azure_ai_voicelive }} checkout: - package: azure-ai-voicelive - version: 1.1.0 + version: 1.2.0 - name: azure-monitor-querymetrics common_root: azure service: querymetrics @@ -537,15 +557,50 @@ extends: checkout: - package: azure-monitor-querymetrics version: 1.0.0 + - name: azure-ai-transcription + common_root: azure + service: transcription + in_batch: ${{ parameters.release_azure_ai_transcription }} + checkout: + - package: azure-ai-transcription + version: 1.0.0 + - name: azure-batch + common_root: azure + service: batch + in_batch: ${{ parameters.release_azure_batch }} + checkout: + - package: azure-batch + version: 15.1.0 + - name: azure-planetarycomputer + common_root: azure + service: planetarycomputer + in_batch: ${{ parameters.release_azure_planetarycomputer }} + checkout: + - package: azure-planetarycomputer + version: 1.0.0 + - name: azure-postgresql-auth + common_root: azure + service: postgresql + in_batch: ${{ parameters.release_azure_postgresql_auth }} + checkout: + - package: azure-postgresql-auth + version: 1.0.2 + - name: azure-ai-contentunderstanding + common_root: azure + service: contentunderstanding + in_batch: ${{ parameters.release_azure_ai_contentunderstanding }} + checkout: + - package: azure-ai-contentunderstanding + version: 1.1.0 - name: azure-mgmt service: mgmt in_batch: ${{ parameters.release_azure_mgmt }} common_root: azure/mgmt checkout: - package: azure-mgmt-advisor - version: 9.0.0 + version: 9.0.1 - package: azure-mgmt-alertsmanagement - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-apicenter version: 1.0.0 - package: azure-mgmt-apimanagement @@ -565,25 +620,25 @@ extends: - package: azure-mgmt-artifactsigning version: 1.0.0 - package: azure-mgmt-attestation - version: 1.0.0 + version: 2.0.0 - package: azure-mgmt-authorization version: 4.0.0 - package: azure-mgmt-automanage version: 1.0.0 - package: azure-mgmt-automation - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-avs version: 10.0.0 - package: azure-mgmt-azurearcdata - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-azurestack - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-azurestackhci - version: 7.0.0 + version: 8.0.0 - package: azure-mgmt-baremetalinfrastructure - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-batch - version: 18.0.0 + version: 19.0.0 - package: azure-mgmt-batchai version: 7.0.0 - package: azure-mgmt-billing @@ -601,17 +656,19 @@ extends: - package: azure-mgmt-cognitiveservices version: 14.1.0 - package: azure-mgmt-commerce - version: 6.0.0 + version: 6.0.1 - package: azure-mgmt-communication version: 2.2.0 - package: azure-mgmt-compute - version: 37.2.0 + version: 38.0.0 - package: azure-mgmt-computefleet version: 1.0.0 + - package: azure-mgmt-computelimit + version: 1.0.0 - package: azure-mgmt-computeschedule version: 1.1.0 - package: azure-mgmt-confidentialledger - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-confluent version: 2.1.0 - package: azure-mgmt-connectedvmware @@ -621,9 +678,9 @@ extends: - package: azure-mgmt-containerinstance version: 10.1.0 - package: azure-mgmt-containerregistry - version: 14.0.0 + version: 15.0.0 - package: azure-mgmt-containerservice - version: 40.1.0 + version: 41.2.0 - package: azure-mgmt-containerservicefleet version: 3.1.0 - package: azure-mgmt-cosmosdb @@ -631,7 +688,7 @@ extends: - package: azure-mgmt-costmanagement version: 4.0.1 - package: azure-mgmt-customproviders - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-dashboard version: 2.0.0 - package: azure-mgmt-databox @@ -643,13 +700,13 @@ extends: - package: azure-mgmt-datadog version: 2.1.0 - package: azure-mgmt-datafactory - version: 9.2.0 + version: 9.3.0 - package: azure-mgmt-datamigration version: 10.1.0 - package: azure-mgmt-dataprotection version: 2.0.1 - package: azure-mgmt-datashare - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-dellstorage version: 1.0.0 - package: azure-mgmt-deploymentmanager @@ -665,15 +722,17 @@ extends: - package: azure-mgmt-devopsinfrastructure version: 1.0.0 - package: azure-mgmt-devtestlabs - version: 9.0.0 + version: 9.0.1 - package: azure-mgmt-digitaltwins version: 7.0.0 + - package: azure-mgmt-disconnectedoperations + version: 1.0.0 - package: azure-mgmt-dns version: 9.0.0 - package: azure-mgmt-dnsresolver version: 1.1.0 - package: azure-mgmt-durabletask - version: 1.0.0 + version: 1.1.0 - package: azure-mgmt-dynatrace version: 2.0.0 - package: azure-mgmt-edgeorder @@ -697,11 +756,11 @@ extends: - package: azure-mgmt-graphservices version: 1.0.0 - package: azure-mgmt-hanaonazure - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-hardwaresecuritymodules version: 1.0.0 - package: azure-mgmt-hdinsight - version: 9.0.0 + version: 9.0.1 - package: azure-mgmt-healthcareapis version: 2.1.0 - package: azure-mgmt-healthdataaiservices @@ -713,13 +772,15 @@ extends: - package: azure-mgmt-hybridcontainerservice version: 1.0.0 - package: azure-mgmt-hybridkubernetes - version: 1.1.0 + version: 1.2.0 - package: azure-mgmt-hybridnetwork version: 2.0.0 - package: azure-mgmt-imagebuilder version: 1.4.0 - package: azure-mgmt-informaticadatamanagement version: 1.0.0 + - package: azure-mgmt-iotcentral + version: 9.0.1 - package: azure-mgmt-iotfirmwaredefense version: 2.0.0 - package: azure-mgmt-iothub @@ -727,11 +788,13 @@ extends: - package: azure-mgmt-iothubprovisioningservices version: 1.1.0 - package: azure-mgmt-iotoperations - version: 1.0.0 + version: 1.1.0 - package: azure-mgmt-keyvault - version: 13.0.0 + version: 14.0.1 - package: azure-mgmt-kubernetesconfiguration version: 3.1.0 + - package: azure-mgmt-kubernetesconfiguration-extensions + version: 1.0.0 - package: azure-mgmt-kusto version: 3.4.0 - package: azure-mgmt-labservices @@ -747,21 +810,21 @@ extends: - package: azure-mgmt-logz version: 1.1.1 - package: azure-mgmt-machinelearningservices - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-maintenance version: 2.1.0 - package: azure-mgmt-managednetworkfabric version: 1.0.0 - package: azure-mgmt-managedservices - version: 6.0.0 + version: 6.0.1 - package: azure-mgmt-managementgroups version: 1.1.0 - package: azure-mgmt-managementpartner - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-maps version: 2.1.0 - package: azure-mgmt-marketplaceordering - version: 1.1.0 + version: 1.1.1 - package: azure-mgmt-media version: 10.2.1 - package: azure-mgmt-mobilenetwork @@ -777,7 +840,7 @@ extends: - package: azure-mgmt-neonpostgres version: 1.0.0 - package: azure-mgmt-netapp - version: 14.0.0 + version: 16.0.0 - package: azure-mgmt-network version: 30.2.0 - package: azure-mgmt-networkanalytics @@ -787,11 +850,11 @@ extends: - package: azure-mgmt-newrelicobservability version: 1.1.0 - package: azure-mgmt-nginx - version: 3.0.0 + version: 4.0.0 - package: azure-mgmt-notificationhubs version: 8.0.0 - package: azure-mgmt-operationsmanagement - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-oracledatabase version: 3.0.0 - package: azure-mgmt-orbital @@ -799,25 +862,27 @@ extends: - package: azure-mgmt-paloaltonetworksngfw version: 1.0.0 - package: azure-mgmt-peering + version: 1.0.1 + - package: azure-mgmt-planetarycomputer version: 1.0.0 - package: azure-mgmt-playwright version: 1.0.0 - package: azure-mgmt-playwrighttesting version: 1.0.1 - package: azure-mgmt-policyinsights - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-portal - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-postgresqlflexibleservers version: 1.1.0 - package: azure-mgmt-powerbidedicated - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-privatedns version: 1.2.0 - package: azure-mgmt-purestorageblock version: 1.0.0 - package: azure-mgmt-purview - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-qumulo version: 2.0.0 - package: azure-mgmt-quota @@ -825,7 +890,7 @@ extends: - package: azure-mgmt-rdbms version: 10.1.0 - package: azure-mgmt-recoveryservices - version: 4.0.0 + version: 4.0.1 - package: azure-mgmt-recoveryservicesbackup version: 10.0.0 - package: azure-mgmt-recoveryservicesdatareplication @@ -839,7 +904,7 @@ extends: - package: azure-mgmt-redisenterprise version: 3.1.0 - package: azure-mgmt-relay - version: 1.1.0 + version: 1.1.1 - package: azure-mgmt-reservations version: 2.3.0 - package: azure-mgmt-resource @@ -863,7 +928,7 @@ extends: - package: azure-mgmt-selfhelp version: 1.0.0 - package: azure-mgmt-serialconsole - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-servermanager version: 2.0.1 - package: azure-mgmt-servicebus @@ -871,7 +936,7 @@ extends: - package: azure-mgmt-servicefabric version: 2.1.0 - package: azure-mgmt-servicefabricmanagedclusters - version: 2.0.0 + version: 3.0.0 - package: azure-mgmt-servicelinker version: 1.1.0 - package: azure-mgmt-servicenetworking @@ -887,7 +952,7 @@ extends: - package: azure-mgmt-standbypool version: 2.0.0 - package: azure-mgmt-storage - version: 24.0.0 + version: 25.0.0 - package: azure-mgmt-storageactions version: 1.0.0 - package: azure-mgmt-storagecache @@ -899,7 +964,7 @@ extends: - package: azure-mgmt-storagepool version: 1.0.0 - package: azure-mgmt-storagesync - version: 1.0.0 + version: 1.0.1 - package: azure-mgmt-streamanalytics version: 1.0.0 - package: azure-mgmt-subscription @@ -915,7 +980,7 @@ extends: - package: azure-mgmt-voiceservices version: 1.0.0 - package: azure-mgmt-web - version: 10.0.0 + version: 11.0.0 - package: azure-mgmt-webpubsub version: 2.0.0 - package: azure-mgmt-workloads