Repository navigation
[AutoPR azure-iot-deviceregistrysoftwareupdate]-generated-from-SDK Generation - Python-6732412 - #48623
Conversation
…ry/tspconfig.yaml', SDK Release Type: beta, and CommitSHA: '83ee12a23d0ab5a14b990f8b5700e787eb8a0b7c' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6715277 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
|
Azure Pipelines: Successfully started running 1 pipeline(s). 9 pipeline(s) were filtered out due to trigger conditions. There may be pipelines that require an authorized user to comment /azp run to run. |
There was a problem hiding this comment.
Pull request overview
Note
Copilot could not run the full agentic suite for this review because it was automatically requested on a bot-authored pull request. Request a review from Copilot under Reviewers to retry with the full agentic suite. Improved support for bot-authored pull requests is coming soon.
Adds a new generated Python client library package for “Software Update for Device Registry” and wires it into the deviceregistry CI artifact set.
Changes:
- Registered
azure-iot-deviceregistrysoftwareupdateas a CI artifact. - Added generated sync + async client, operations, models/enums, and typed-dict request/response shapes.
- Added packaging/metadata files (pyproject, manifest/license/changelog, apiview + metadata, README).
Reviewed changes
Copilot reviewed 39 out of 39 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/deviceregistry/ci.yml | Adds the new package as a build artifact in CI. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/tsp-location.yaml | Tracks the swagger/typespec input location for generation. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/pyproject.toml | Defines build system and packaging metadata/dependencies. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/dev_requirements.txt | Adds local dev dependencies for building/testing the package. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/types.py | Introduces public TypedDict request/metadata shapes. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/py.typed | Marks the package as typed (PEP 561). |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/operations/_patch.py | Provides customization hook for generated sync operations. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/operations/init.py | Exposes sync operation groups and applies patches. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/models/_patch.py | Provides customization hook for generated models. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/models/_models.py | Adds generated model classes used by the client/operations. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/models/_enums.py | Adds public enums used by models/operations. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/models/init.py | Exposes model types/enums and applies patches. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/aio/operations/_patch.py | Provides customization hook for generated async operations. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/aio/operations/_operations.py | Adds generated async operation implementations. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/aio/operations/init.py | Exposes async operation groups and applies patches. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/aio/_patch.py | Provides customization hook for generated async client surface. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/aio/_configuration.py | Adds async client configuration (policies, auth, API version). |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/aio/_client.py | Adds async client entrypoint and request sending. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/aio/init.py | Exposes async client and applies async patches. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_version.py | Defines the package version constant. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_utils/utils.py | Adds helper utilities (etag quoting + match headers). |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_utils/model_base.py | Adds shared generated model base + serialization/deserialization helpers. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_utils/init.py | Marks utils module with generator header. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_patch.py | Provides customization hook for generated sync client surface. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_configuration.py | Adds sync client configuration (policies, auth, API version). |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_client.py | Adds sync client entrypoint and request sending. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/init.py | Exposes sync client + version and applies patches. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/init.py | Declares azure.iot namespace package behavior. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/init.py | Declares azure namespace package behavior. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/apiview-properties.json | Adds APIView cross-language mappings for the new package. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/api.metadata.yml | Records generation tool versions/hashes used for the API surface. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/api.md | Adds the generated API surface documentation snapshot. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/_metadata.json | Records generation metadata (apiVersion, repo commit, emitter versions). |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md | Adds package README and getting-started content. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/MANIFEST.in | Defines files included in sdist/wheel. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/LICENSE | Adds the MIT license text for the package distribution. |
| sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/CHANGELOG.md | Adds initial release notes for 1.0.0b1. |
Suppressed comments (3)
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/tsp-location.yaml:1
additionalDirectories:is present but has no value. If the tooling expects a sequence, this will deserialize asnulland can cause downstream failures. Consider either removing the key or making it an explicit empty list (e.g.,additionalDirectories: []).
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/pyproject.toml:1- PEP 621 expects
licenseto be specified as a table (e.g.,{ text = \"MIT\" }or{ file = \"LICENSE\" }), not a bare string. Using the structured form improves compatibility across build backends and metadata consumers.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/pyproject.toml:1 - The package contains
azure/__init__.pyandazure/iot/__init__.py, butpackages.findexcludesazureandazure.iot. This can produce different behavior between editable installs (where those__init__.pyexist on disk) and wheels (where those packages won’t be installed), potentially breaking namespace/package resolution. Either (a) remove theazure/__init__.py+azure/iot/__init__.pyfiles and switch to namespace package discovery, or (b) stop excludingazureandazure.iotso those namespace packages are consistently shipped.
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
This comment has been minimized.
This comment has been minimized.
…ry/tspconfig.yaml', SDK Release Type: beta, and CommitSHA: 'be4f14d4492f9f60eb6cabf3a93cce8a7cef803c' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6715906 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 39 out of 39 changed files in this pull request and generated no new comments.
Suppressed comments (8)
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/tsp-location.yaml:1
additionalDirectories:is currently parsed asnull(and includes trailing whitespace). If the tooling expects a list, this can break generation/validation. Set it explicitly to an empty list (e.g.,additionalDirectories: []) or remove the key entirely if unused.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:12- Correct typo:
Prequisites->Prerequisites.
#### Prequisites
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- The README still contains placeholder HTML comments, and the placeholder inside the Python example will render the snippet invalid if copied verbatim. Replace placeholders with a minimal working example (or remove the example block until one is available) so the README is immediately usable.
<!-- write necessary description of service -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:52
- The README still contains placeholder HTML comments, and the placeholder inside the Python example will render the snippet invalid if copied verbatim. Replace placeholders with a minimal working example (or remove the example block until one is available) so the README is immediately usable.
<!-- write test code here -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/api.md:121
- There are duplicate overload entries for
begin_import_updatewith identical signatures. This creates noise in API docs and can confuse readers. Remove the duplicate overload so each overload documents a distinct input type.
@overload
async def begin_import_update(
self,
import_update_request: ImportUpdateRequest,
*,
content_type: str = "application/json",
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@overload
async def begin_import_update(
self,
import_update_request: ImportUpdateRequest,
*,
content_type: str = "application/json",
**kwargs: Any
) -> AsyncLROPoller[None]: ...
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_utils/model_base.py:1778
- Parsing XML with
xml.etree.ElementTree.fromstringon potentially untrusted input can expose the client to XML-related DoS vectors (and the# nosecsuppresses static analysis). Consider switching todefusedxmlfor parsing, or (at minimum) add a clear comment documenting the trust boundary and why suppression is safe here.
def _deserialize_xml(
deserializer: typing.Any,
value: str,
) -> typing.Any:
element = ET.fromstring(value) # nosec
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_client.py:30
- This PR introduces a new client library with a large surface area but does not add any tests under this package (e.g.,
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/tests). Since this repo typically has automated testing for Python SDKs, add at least a basic smoke test that constructs the client and exercises one operation using a mocked transport (sync + async) to catch breaking changes early.
class DeviceRegistrySoftwareUpdateClient: # pylint: disable=docstring-keyword-should-match-keyword-only
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_client.py:58
- This PR introduces a new client library with a large surface area but does not add any tests under this package (e.g.,
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/tests). Since this repo typically has automated testing for Python SDKs, add at least a basic smoke test that constructs the client and exercises one operation using a mocked transport (sync + async) to catch breaking changes early.
def __init__(self, endpoint: str, credential: "TokenCredential", **kwargs: Any) -> None:
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 39 out of 39 changed files in this pull request and generated no new comments.
Suppressed comments (7)
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/tsp-location.yaml:1
additionalDirectoriesis present but has no value. If downstream tooling expects this to be a sequence (common fortsp-location.yaml), this can break parsing/iteration. Prefer setting an explicit empty list (additionalDirectories: []) or removing the key entirely when unused.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/py.typed:1py.typedis conventionally an empty marker file. While comments usually won't break packaging, some tooling expects the file to be empty. Consider removing the comment and leaving a zero-length file.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:12- Correct the spelling of 'Prequisites' to 'Prerequisites'.
#### Prequisites
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- The README still contains template placeholders (HTML comments) and uses inconsistent product naming/casing (e.g.,
IotvsIoT, and the service name appears unformatted/run-together). Please replace placeholders with real content and ensure the sample code block contains valid Python (remove<!-- write test code here -->and provide a minimal working example or omit the example section until it's ready).
# Azure Iot Deviceregistrysoftwareupdate client library for Python
<!-- write necessary description of service -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:16
- The README still contains template placeholders (HTML comments) and uses inconsistent product naming/casing (e.g.,
IotvsIoT, and the service name appears unformatted/run-together). Please replace placeholders with real content and ensure the sample code block contains valid Python (remove<!-- write test code here -->and provide a minimal working example or omit the example section until it's ready).
- An existing Azure Iot Deviceregistrysoftwareupdate instance.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:52
- The README still contains template placeholders (HTML comments) and uses inconsistent product naming/casing (e.g.,
IotvsIoT, and the service name appears unformatted/run-together). Please replace placeholders with real content and ensure the sample code block contains valid Python (remove<!-- write test code here -->and provide a minimal working example or omit the example section until it's ready).
<!-- write test code here -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/api.md:117
- The generated API surface doc shows two identical overloads for
begin_import_update(same displayed parameter type). This is confusing for reviewers/consumers, and likely stems from the two distinct Python types (models.ImportUpdateRequestvstypes.ImportUpdateRequest) being rendered with the same short name. Prefer disambiguating the types in the doc output (fully-qualify at least one) so the overloads are meaningfully distinct.
@overload
async def begin_import_update(
self,
import_update_request: ImportUpdateRequest,
*,
content_type: str = "application/json",
**kwargs: Any
) -> AsyncLROPoller[None]: ...
@overload
async def begin_import_update(
self,
import_update_request: ImportUpdateRequest,
*,
content_type: str = "application/json",
**kwargs: Any
) -> AsyncLROPoller[None]: ...
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 40 out of 40 changed files in this pull request and generated no new comments.
Suppressed comments (7)
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:16
- The prerequisites section has a misspelled heading and refers to a non-existent product name. Use the official service name so customers know which Azure resource they need.
#### Prequisites
- Python 3.10 or later is required to use this package.
- You need an [Azure subscription][azure_sub] to use this package.
- An existing Azure Iot Deviceregistrysoftwareupdate instance.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:54
- This published example contains an HTML placeholder inside a Python block and invalid indentation/prompts, so customers cannot run or copy it. Replace it with a real SDK operation and valid Python/doctest syntax.
>>> try:
<!-- write test code here -->
except HttpResponseError as e:
print('service responds error: {}'.format(e.response.json()))
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- The public README still contains the generator placeholder and does not explain the service. Replace it with the official product name and a concise service overview before publishing the package.
# Azure Iot Deviceregistrysoftwareupdate client library for Python
<!-- write necessary description of service -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_client.py:30
- This new sync/async client and its operation groups have no tests or generated tests in the package. Add coverage for request construction, paging, model serialization, error mapping, and both LRO paths; the related SDK establishes this coverage pattern in sdk/deviceupdate/azure-iot-deviceupdate/tests/test_updates_service.py.
class DeviceRegistrySoftwareUpdateClient: # pylint: disable=docstring-keyword-should-match-keyword-only
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_utils/model_base.py:1018
- Model.copy() currently constructs the base Model from the instance's
__dict__, so the result loses the concrete model type and nests the payload under_data. Copy the wire-data mapping into the same model class instead.
return Model(self.__dict__)
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/pyproject.toml:17
- Correct the official product capitalization and word boundaries in the package description; this text is exposed as public package metadata on PyPI.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_utils/model_base.py:551 - Calling MutableMapping.update after a list/dict field has been accessed leaves its
_deserialized_*cache marker set while replacing_datawith the new raw value. The next attribute access therefore skips deserialization and can return dictionaries where model instances are expected. Route updates through__setitem__, which already invalidates the cache.
self._data.update(*args, **kwargs)
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 40 out of 40 changed files in this pull request and generated no new comments.
Suppressed comments (7)
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- The README still contains the generation placeholder, so the published package will have no service overview. Replace it with the actual service description before release.
<!-- write necessary description of service -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:1
- This heading uses a generated concatenation rather than the service's official name, which makes the package documentation hard to identify.
# Azure Iot Deviceregistrysoftwareupdate client library for Python
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:85
- This authentication reference points to Cognitive Services documentation, which is unrelated to this Device Registry client. Link to the general Azure SDK for Python authentication guidance instead.
[authenticate_with_token]: https://docs.microsoft.com/azure/cognitive-services/authentication?tabs=powershell#authenticate-with-an-authentication-token
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/pyproject.toml:17
- The published package description uses the generated concatenated client name instead of the official service name, so PyPI metadata will display an incorrect product title.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_client.py:52 - The public docstring says the API-version default is
None, but the configuration actually defaults to"2026-11-02-preview". Document the real default so callers know which API is selected when they omit this argument.
:keyword api_version: The API version to use for this operation. Known values are
"2026-11-02-preview" and None. Default value is None. If not set, the operation's default API
version will be used. Note that overriding this default value may result in unsupported
behavior.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/aio/_client.py:52
- The async client's public docstring says the API-version default is
None, while its configuration defaults to"2026-11-02-preview". Update the documentation to match runtime behavior.
:keyword api_version: The API version to use for this operation. Known values are
"2026-11-02-preview" and None. Default value is None. If not set, the operation's default API
version will be used. Note that overriding this default value may result in unsupported
behavior.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_client.py:30
- This new public client and its sync/async operation groups have no tests in the package. Add recorded or mocked coverage for request construction, paging, error mapping, and both import/delete LRO paths; the analogous
sdk/deviceupdate/azure-iot-deviceupdate/tests/test_updates_service.pyexercises these behaviors.
class DeviceRegistrySoftwareUpdateClient: # pylint: disable=docstring-keyword-should-match-keyword-only
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 40 out of 40 changed files in this pull request and generated 2 comments.
Suppressed comments (4)
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:16
- This prerequisite uses the concatenated generated package identifier instead of the service's product name, so customers cannot tell which Azure resource they need. Refer to the Software Update for Device Registry account explicitly.
- An existing Azure Iot Deviceregistrysoftwareupdate instance.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- The public README still exposes the generated identifier as the product name and leaves the service-description placeholder unfilled. This will publish a package page with no usable overview; replace both lines with the official service name and a concise description.
This issue also appears on line 16 of the same file.
# Azure Iot Deviceregistrysoftwareupdate client library for Python
<!-- write necessary description of service -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/pyproject.toml:17
- This description is surfaced in package indexes, but it uses the concatenated generated identifier and incorrect product casing rather than the official service name. Use a human-readable package description before publishing.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/_client.py:30 - This new client package adds sync and async paging, conditional requests, and long-running import/delete operations, but the package contains no tests directory. The closely related
sdk/deviceupdate/azure-iot-deviceupdate/tests/test_updates_service.py:14exercises these same update operation paths. Add request/response tests for both clients, especially paging continuation and the 200/202 LRO branches, before release.
class DeviceRegistrySoftwareUpdateClient: # pylint: disable=docstring-keyword-should-match-keyword-only
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 61 out of 61 changed files in this pull request and generated no new comments.
Suppressed comments (6)
Previously missed (2) — in code that hasn't changed since the last review.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- The published README still contains the generator's authoring placeholder, and the title collapses the service name into
Deviceregistrysoftwareupdate. Replace both with a customer-facing service name and a concrete description before releasing the package.
# Azure Iot Deviceregistrysoftwareupdate client library for Python
<!-- write necessary description of service -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/pyproject.toml:17
- This customer-visible package description has an incorrectly capitalized
Iotand concatenates the service words, so the malformed generated name will appear on package indexes. Use the readable service name here as well.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/generated_tests/test_device_registry_software_update_device_classes_operations.py:13
- This class-level skip leaves every synchronous Device Classes test disabled, and each body is still placeholder code without assertions. The analogous Device Update package has runnable recorded tests with response assertions (for example,
sdk/deviceupdate/azure-iot-deviceupdate/tests/test_management_service.py:13-33). Please supply valid test data/assertions and remove the skip so this new operation group is exercised in CI.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/generated_tests/test_device_registry_software_update_device_classes_operations_async.py:14 - This class-level skip leaves every asynchronous Device Classes test disabled, and each body is still placeholder code without assertions. The package therefore has no async coverage for this operation group. Please supply valid test data/assertions and remove the skip so the async client is exercised in CI.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/generated_tests/test_device_registry_software_update_software_update_operations.py:13 - This class-level skip disables the entire synchronous Software Update suite, while all methods retain generated placeholder values and no assertions. The analogous Device Update package runs recorded update tests and validates responses (for example,
sdk/deviceupdate/azure-iot-deviceupdate/tests/test_updates_service.py:14-28). Please implement and enable representative coverage before release.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/generated_tests/test_device_registry_software_update_software_update_operations_async.py:14 - This class-level skip disables the entire asynchronous Software Update suite, while all methods retain generated placeholder values and no assertions. As a result, none of the async paging or LRO paths added by this package are exercised in CI. Please implement valid cases and remove the skip.
[Pilot] PR Pipeline Failure AnalysisWhat failedPipeline: python - pullrequest (Build Analyze) — Build ID 6744579 Package: The pylint check failed because Relevant pipeline outputRecommended next steps
Automated fix: Fix found, view and apply fix
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 61 out of 61 changed files in this pull request and generated 1 comment.
Suppressed comments (1)
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- The README is published as the package description, but it still contains the generator placeholder and a concatenated service name. Replace these lines with the real service name and a brief description before publishing the initial beta.
# Azure Iot Deviceregistrysoftwareupdate client library for Python
<!-- write necessary description of service -->
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 61 out of 61 changed files in this pull request and generated 1 comment.
Suppressed comments (3)
Previously missed (2) — in code that hasn't changed since the last review.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- The package README still ships a generator placeholder instead of describing the service. Replace it with a brief service description so the published PyPI page is complete.
<!-- write necessary description of service -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/pyproject.toml:17
- The public package description concatenates the service words and incorrectly spells the established
IoTcasing, so package indexes will display an unclear product name. Use the service name shown in the README.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/models/_patch.py:30
- These runtime monkey patches are the only implementations of model-copy preservation and the
enable_scan=Falseclient default, but every generated test is skipped and there is no unit test suite for the package. Add focused tests that verifycopy()retains the concrete model type with independent data and that omittingenable_scanserializesenableScanasfalse; otherwise regeneration or model-base changes can silently break both customizations.
Model.copy = _copy_model
_models.ImportUpdateRequest.enable_scan = rest_field(
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 67 out of 67 changed files in this pull request and generated 1 comment.
Suppressed comments (2)
Previously missed (1) — in code that hasn't changed since the last review.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:2
- This placeholder leaves the package README without a service description. Replace it with an actual summary so users can tell what the new client library is for.
<!-- write necessary description of service -->
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:16
- The generated client treats
endpointas a hostname and prependshttps://, so passing the documented value produces a malformed URL beginning withhttps://https://. Document the hostname-only form used by the client.
- An existing Azure Device Registry Software Update instance with the endpoint, such as `https://contoso.api.adu.microsoft.com`.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 67 out of 67 changed files in this pull request and generated no new comments.
Suppressed comments (2)
Previously missed (2) — in code that hasn't changed since the last review.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/tests/test_software_update.py:55
- Marking the import complete before
poller.result()means a failed LRO enters cleanup and may raise a delete 404 that masks the original import failure. Set the flag only after polling succeeds so the test preserves the real failure.
sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md:103 - This reference targets Azure Cognitive Services rather than Device Registry or
azure-identity, so it sends readers to unrelated service-specific authentication guidance. Link to the Azure SDK for Python authentication overview instead.
[authenticate_with_token]: https://docs.microsoft.com/azure/cognitive-services/authentication?tabs=powershell#authenticate-with-an-authentication-token
Daniel Jurek (danieljurek)
left a comment
There was a problem hiding this comment.
Approving for EngSys
Configurations: 'specification/deviceupdate/data-plane/sudeviceregistry/tspconfig.yaml', SDK Release Type: beta, and CommitSHA: '167da049737b838c6bea8fc07c7f223971bf77f9' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6732412 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. Release plan link: https://azsdk-releaseplan-dashboard-hveph5aqhhcfhtgu.westus-01.azurewebsites.net/?releaseplan=36134 Submitted by: wuaustin@microsoft.com