diff --git a/scripts/ci/azdev_linter_style.py b/scripts/ci/azdev_linter_style.py index 2f2d8361494..fa503b4e503 100644 --- a/scripts/ci/azdev_linter_style.py +++ b/scripts/ci/azdev_linter_style.py @@ -179,8 +179,27 @@ def azdev_on_external_extension(index_json, azdev_type): with open(index_json, 'r') as fd: current_extensions = json.loads(fd.read()).get("extensions") + def entry_equals_ignore_url(entry1, entry2): + """Compare two entries ignoring downloadUrl field""" + entry1_copy = entry1.copy() + entry2_copy = entry2.copy() + entry1_copy.pop('downloadUrl', None) + entry2_copy.pop('downloadUrl', None) + return entry1_copy == entry2_copy + for name in current_extensions: - modified_entries = [entry for entry in current_extensions[name] if entry not in public_extensions.get(name, [])] + public_entries = public_extensions.get(name, []) + + # Find modified entries by comparing without downloadUrl + modified_entries = [] + for entry in current_extensions[name]: + is_modified = True + for public_entry in public_entries: + if entry_equals_ignore_url(entry, public_entry): + is_modified = False + break + if is_modified: + modified_entries.append(entry) if not modified_entries: continue @@ -205,8 +224,7 @@ def azdev_on_external_extension(index_json, azdev_type): # azdev_extension.style() logger.info('Checking service name for external extensions: %s', name) - if name != 'deploy-to-azure': - service_name.check() + service_name.check() az_extension.remove() diff --git a/src/index.json b/src/index.json index be152c2f7ec..b89a9c3c0f6 100644 --- a/src/index.json +++ b/src/index.json @@ -33898,6 +33898,72 @@ "version": "2.0.0b3" }, "sha256Digest": "d028729c88b6c2c59ef937dce78546b593ad187ac297a5766fb3130f2f522fc7" + }, + { + "downloadUrl": "https://github.com/Azure/azure-iot-ops-cli-extension/releases/download/v2.0.0/azure_iot_ops-2.0.0-py3-none-any.whl", + "filename": "azure_iot_ops-2.0.0-py3-none-any.whl", + "metadata": { + "azext.isPreview": false, + "azext.minCliCoreVersion": "2.67.0", + "classifiers": [ + "Development Status :: 5 - Production/Stable", + "Intended Audience :: Developers", + "Intended Audience :: System Administrators", + "Programming Language :: Python", + "Programming Language :: Python :: 3 :: Only", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13" + ], + "description_content_type": "text/plain", + "extensions": { + "python.details": { + "contacts": [ + { + "email": "Microsoft ", + "role": "author" + } + ], + "document_names": { + "description": "DESCRIPTION.rst" + } + } + }, + "extras": [], + "generator": "bdist_wheel (0.30.0)", + "license": "MIT", + "license_file": "LICENSE", + "metadata_version": "2.0", + "name": "azure-iot-ops", + "project_url": "homepage, https://github.com/azure/azure-iot-ops-cli-extension", + "requires_python": ">=3.9", + "run_requires": [ + { + "requires": [ + "azure-identity (<1.18.0,>=1.14.1)", + "azure-identity<1.18.0,>=1.14.1", + "kubernetes (<32.0,>=29.0)", + "kubernetes<32.0,>=29.0", + "opentelemetry-proto (~=1.20.0)", + "opentelemetry-proto~=1.20.0", + "packaging (>=23.2)", + "packaging>=23.2", + "protobuf (~=4.25.0)", + "protobuf~=4.25.0", + "rich (<14.0,>=13.6)", + "rich<14.0,>=13.6", + "semver (<4,>=3.0.4)", + "semver<4,>=3.0.4" + ] + } + ], + "summary": "The Azure IoT Operations extension for Azure CLI.", + "version": "2.0.0" + }, + "sha256Digest": "7d8b2ccc56b5de2657fe4510ebbdb76ad517a06ea94c4a515ee4b6877b4d23dd" } ], "azure-sphere": [