Skip to content

[AutoPR azure-iot-deviceregistrysoftwareupdate]-generated-from-SDK Generation - Python-6732412 - #48623

Merged
Austin Wu (wuqiten) merged 13 commits into
mainfrom
sdkauto/azure-iot-deviceregistrysoftwareupdate-6715277
Sep 4, 2026
Merged

Austin Wu (wuqiten) merged 13 commits into
mainfrom
sdkauto/azure-iot-deviceregistrysoftwareupdate-6715277

Conversation

@azure-sdk-automation

@azure-sdk-automation azure-sdk-automation Bot commented Aug 18, 2026 •

Copy link
Copy Markdown
Contributor

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

Copilot AI balanced review requested due to automatic review settings August 18, 2026 17:23
@azure-sdk-automation azure-sdk-automation Bot added the auto-release When merged to main, release pipelines for this PR's changed packages trigger automatically. label Aug 18, 2026
@azure-pipelines

Copy link
Copy Markdown
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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-deviceregistrysoftwareupdate as 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 as null and 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 license to 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__.py and azure/iot/__init__.py, but packages.find excludes azure and azure.iot. This can produce different behavior between editable installs (where those __init__.py exist on disk) and wheels (where those packages won’t be installed), potentially breaking namespace/package resolution. Either (a) remove the azure/__init__.py + azure/iot/__init__.py files and switch to namespace package discovery, or (b) stop excluding azure and azure.iot so those namespace packages are consistently shipped.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

Comment thread sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md Outdated
Comment thread sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md
Comment thread sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/api.md
@github-actions

This comment has been minimized.

Copilot AI review requested due to automatic review settings August 18, 2026 18:59
@azure-sdk-automation azure-sdk-automation Bot changed the title [AutoPR azure-iot-deviceregistrysoftwareupdate]-generated-from-SDK Generation - Python-6715277 [AutoPR azure-iot-deviceregistrysoftwareupdate]-generated-from-SDK Generation - Python-6715906 Aug 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 as null (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_update with 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.fromstring on potentially untrusted input can expose the client to XML-related DoS vectors (and the # nosec suppresses static analysis). Consider switching to defusedxml for 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:

Copilot AI review requested due to automatic review settings August 18, 2026 19:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

  • additionalDirectories is present but has no value. If downstream tooling expects this to be a sequence (common for tsp-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:1
  • py.typed is 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., Iot vs IoT, 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., Iot vs IoT, 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., Iot vs IoT, 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.ImportUpdateRequest vs types.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]: ...

@github-actions

This comment has been minimized.

Copilot AI review requested due to automatic review settings August 19, 2026 19:54

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 _data with 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)

Copilot AI review requested due to automatic review settings August 19, 2026 22:01

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.py exercises these behaviors.
class DeviceRegistrySoftwareUpdateClient:  # pylint: disable=docstring-keyword-should-match-keyword-only

@github-actions

This comment has been minimized.

Copilot AI review requested due to automatic review settings August 19, 2026 22:41

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:14 exercises 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

Copilot AI review requested due to automatic review settings August 25, 2026 21:11

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 Iot and 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.

@github-actions

github-actions Bot commented Aug 25, 2026 •

Copy link
Copy Markdown
Contributor
[Pilot] PR Pipeline Failure Analysis

What failed

Pipeline: python - pullrequest (Build Analyze) — Build ID 6744579

Package: azure-iot-deviceregistrysoftwareupdate
Check: pylint
Result: FAIL(4) — pylint exit code 4 (warning message issued)

The pylint check failed because models/_patch.py line 35 accesses a protected member of a client class:

azure/iot/deviceregistrysoftwareupdate/models/_patch.py:35: [W0212(protected-access), patch_sdk] Access to a protected member _calculated of a client class
Relevant pipeline output
[azure-iot-deviceregistrysoftwareupdate :: pylint] ************* Module azure.iot.deviceregistrysoftwareupdate.models._patch
[azure-iot-deviceregistrysoftwareupdate :: pylint] azure/iot/deviceregistrysoftwareupdate/models/_patch.py:35: [W0212(protected-access), patch_sdk] Access to a protected member _calculated of a client class

[azure-iot-deviceregistrysoftwareupdate :: pylint] ------------------------------------
[azure-iot-deviceregistrysoftwareupdate :: pylint] Your code has been rated at 10.00/10

[azure-sdk-tools] azure-iot-deviceregistrysoftwareupdate main package exited with linting error 4.
[azure-sdk-tools] Please see https://aka.ms/azsdk/python/pylint-guide

=== SUMMARY ===
PACKAGE                                                                           CHECK   STATUS  DURATION(s)
---------------------------------------------------------------------------------------------------------
/mnt/vss/_work/1/s/sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate     pylint  FAIL(4)    17.58

Total checks: 1 | Failed: 1 | Worst exit code: 4

Recommended next steps

  • In sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/azure/iot/deviceregistrysoftwareupdate/models/_patch.py at line 35, add # pylint: disable=protected-access to suppress the W0212 warning for the access to _calculated, or refactor to avoid direct access to the protected member.
  • See https://aka.ms/ci-fix

Automated fix: Fix found, view and apply fix

Generated by Pipeline Analysis Next Steps · 34.3 AIC · ⌖ 6.43 AIC · ⊞ 6K · ◷

Copilot AI review requested due to automatic review settings August 27, 2026 17:32

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 -->

Copilot AI review requested due to automatic review settings August 27, 2026 18:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 IoT casing, 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=False client default, but every generated test is skipped and there is no unit test suite for the package. Add focused tests that verify copy() retains the concrete model type with independent data and that omitting enable_scan serializes enableScan as false; otherwise regeneration or model-base changes can silently break both customizations.
    Model.copy = _copy_model

    _models.ImportUpdateRequest.enable_scan = rest_field(

Comment thread sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md Outdated
Copilot AI review requested due to automatic review settings August 27, 2026 22:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 endpoint as a hostname and prepends https://, so passing the documented value produces a malformed URL beginning with https://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`.

Comment thread sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md Outdated
Comment thread sdk/deviceregistry/azure-iot-deviceregistrysoftwareupdate/README.md Outdated
Copilot AI review requested due to automatic review settings August 28, 2026 15:40

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approving for EngSys

@wuqiten
Austin Wu (wuqiten) merged commit e58d768 into main Sep 4, 2026
22 checks passed
@wuqiten
Austin Wu (wuqiten) deleted the sdkauto/azure-iot-deviceregistrysoftwareupdate-6715277 branch September 4, 2026 15:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-release When merged to main, release pipelines for this PR's changed packages trigger automatically.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants