Skip to content

[AutoPR @azure-arm-hybridcompute]-generated-from-SDK Generation - JS-6398399#38834

Open
azure-sdk wants to merge 3 commits into
mainfrom
sdkauto/@azure-arm-hybridcompute-6398399
Open

[AutoPR @azure-arm-hybridcompute]-generated-from-SDK Generation - JS-6398399#38834
azure-sdk wants to merge 3 commits into
mainfrom
sdkauto/@azure-arm-hybridcompute-6398399

Conversation

@azure-sdk
Copy link
Copy Markdown
Collaborator

Configurations: 'specification/hybridcompute/resource-manager/Microsoft.HybridCompute/HybridCompute/tspconfig.yaml', API Version: 2025-09-16-preview, SDK Release Type: beta, and CommitSHA: '4375d0c4eb36e73152199e484c0d4537ddd4c9da' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6398399 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.

…ft.HybridCompute/HybridCompute/tspconfig.yaml', API Version: 2025-09-16-preview, SDK Release Type: beta, and CommitSHA: '4375d0c4eb36e73152199e484c0d4537ddd4c9da' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6398399 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.
@github-actions github-actions Bot added the Mgmt This issue is related to a management-plane library. label Jun 5, 2026
@v-jiaodi v-jiaodi added refresh PR for SDK refresh mgmt-review-needed labels Jun 5, 2026
@v-jiaodi v-jiaodi marked this pull request as ready for review June 5, 2026 07:51
Copilot AI review requested due to automatic review settings June 5, 2026 07:51
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot wasn't able to review this pull request because it exceeds the maximum number of files (300). Try reducing the number of changed files and requesting a review from Copilot again.

@github-actions github-actions Bot added mgmt-review-in-progress Management SDK review is in progress and removed mgmt-review-needed labels Jun 5, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 5, 2026

Next Steps to Merge

Only failed checks and required actions are listed below.

  • ⏳ js - pullrequest (Build UnitTest ubuntu_24x_node): still running. Review ADO logs.
  • ⏳ js - pullrequest (Build UnitTest macoslatest_26x_node): still running. Review ADO logs.
  • ⏳ js - pullrequest (Build UnitTest windows_22x_node): still running. Review ADO logs.
  • ⏳ js - pullrequest (Build UnitTest windows_22x_browser): still running. Review ADO logs.

@github-actions github-actions Bot added mgmt-review-added Management SDK review completed and removed mgmt-review-in-progress Management SDK review is in progress labels Jun 5, 2026
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

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

1 tool issue found in @azure/arm-hybridcompute (5.0.0-beta.2).

  • CHANGELOG comparison version: The new 5.0.0-beta.2 entry compares against 4.0.0 instead of the previous published beta 5.0.0-beta.1. The changelog generation tool should use the last published version as the baseline.

The public API surface (naming, type safety, exports, breaking changes) has no additional concerns.

📊 Structured Report
{"agent":"mgmt-reviewer","pr":38834,"summary":"issues_found","findings":[{"file":"sdk/hybridcompute/arm-hybridcompute/CHANGELOG.md","line":4,"issueType":"tool","category":"changelog-comparison-version","description":"CHANGELOG entry for 5.0.0-beta.2 compares against 4.0.0 instead of the previous published version 5.0.0-beta.1."}]}

Benchmarked by Management Release Assistant

# Release History

## 5.0.0-beta.2 (2026-06-05)
Compared with version 4.0.0
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.

🔴 Tool IssueCHANGELOG.md:4
Compared with version 4.0.0.
The previous published version of this package is 5.0.0-beta.1, so the changelog should compare against that version, not 4.0.0. Comparing against 4.0.0 suggests the changelog generation tool did not correctly detect the last published beta as the baseline.
Fix: Update CHANGELOG.md line 4 to read Compared with version 5.0.0-beta.1, and report the issue in the generation tool repository.

@v-jiaodi
Copy link
Copy Markdown
Member

v-jiaodi commented Jun 5, 2026

Note

This analysis was generated by AI. Please review the classifications and root causes for accuracy.

Breaking Change Analysis: @azure/arm-hybridcompute 5.0.0-beta.2

Old SDK (main) New SDK (PR)
Generator Swagger / AutoRest TypeSpec / emitter
API Version 2025-02-19-preview 2025-09-16-preview
Package Version 5.0.0-beta.1 5.0.0-beta.2

Note: The CHANGELOG compares against the published 4.0.0 release. The main branch has 5.0.0-beta.1 (AutoRest, API 2025-02-19-preview).

Spec References:

Type 1: API Version Upgrade (2025-02-19-preview → 2025-09-16-preview) — 3 items

Models present in the TypeSpec-generated 2025-02-19-preview swagger (privateLinkScopes.json) but absent from the 2025-09-16-preview swagger.

Row Breaking Change Root Cause
1 Removed Interface KeyDetails Model removed from the API spec in 2025-09-16-preview. Present in TypeSpec-generated 2025-02-19-preview privateLinkScopes.json.
2 Removed Interface KeyProperties Same as row 1. References KeyDetails via clientPublicKey and candidatePublicKey properties.
3 Removed Interface PrivateLinkScopesResource Standalone ARM resource base type removed in 2025-09-16-preview. TypeSpec uses standard TrackedResource from ARM common types.

Type 2: TypeSpec / Emitter Migration — 31 items

Root Cause Sub-Type Count Accepted
x-ms-client-flatten removal: old swagger flattened nested properties from esuProfile, productProfile, softwareAssurance sub-objects; TypeSpec does not flatten Conversion 15
x-ms-client-flatten removal: old swagger flattened nested properties from esuProfile, productProfile, softwareAssurance sub-objects on update type Conversion 5
x-ms-client-flatten removal: old swagger flattened nested properties from licenseDetails sub-object; TypeSpec does not flatten Conversion 5
subscriptionId/apiVersion no longer exposed on client Emitter 2
AutoRest-generated common type names removed; TypeSpec uses standard ARM types Emitter 2
LRO delete return type changed from response wrapper to void; resumeFrom removed from LRO options Emitter 1
Client operation group accessor property renamed Emitter 1

Details

LicenseProfile unflatten (15 items)

Click to expand

The old swagger had x-ms-client-flatten: true on LicenseProfile.properties.esuProfile, productProfile, and softwareAssurance. AutoRest flattened their inner properties to the top level. TypeSpec does not use x-ms-client-flatten, so these properties now appear under their respective sub-objects (esuProfile: LicenseProfileArmEsuProperties, productProfile: LicenseProfileArmProductProfileProperties, softwareAssurance: LicenseProfilePropertiesSoftwareAssurance).

  1. Interface LicenseProfile no longer has parameter assignedLicense — Conversion

    Moved under esuProfile sub-object in TypeSpec model.

  2. Interface LicenseProfile no longer has parameter assignedLicenseImmutableId — Conversion

    Same as row 4.

  3. Interface LicenseProfile no longer has parameter billingEndDate — Conversion

    Same as row 4.

  4. Interface LicenseProfile no longer has parameter billingStartDate — Conversion

    Same as row 4.

  5. Interface LicenseProfile no longer has parameter disenrollmentDate — Conversion

    Same as row 4.

  6. Interface LicenseProfile no longer has parameter enrollmentDate — Conversion

    Same as row 4.

  7. Interface LicenseProfile no longer has parameter error — Conversion

    Same as row 4.

  8. Interface LicenseProfile no longer has parameter esuEligibility — Conversion

    Same as row 4.

  9. Interface LicenseProfile no longer has parameter esuKeys — Conversion

    Same as row 4.

  10. Interface LicenseProfile no longer has parameter esuKeyState — Conversion

    Same as row 4.

  11. Interface LicenseProfile no longer has parameter serverType — Conversion

    Same as row 4.

  12. Interface LicenseProfile no longer has parameter productFeatures — Conversion

    Moved under productProfile sub-object in TypeSpec model.

  13. Interface LicenseProfile no longer has parameter productType — Conversion

    Same as row 15.

  14. Interface LicenseProfile no longer has parameter subscriptionStatus — Conversion

    Same as row 15.

  15. Interface LicenseProfile no longer has parameter softwareAssuranceCustomer — Conversion

    Moved under softwareAssurance sub-object in TypeSpec model.

LicenseProfileUpdate unflatten (5 items)

Click to expand

Same root cause as LicenseProfile: x-ms-client-flatten: true was removed on esuProfile, productProfile, softwareAssurance sub-objects.

  1. Interface LicenseProfileUpdate no longer has parameter assignedLicense — Conversion

    Moved under esuProfile sub-object.

  2. Interface LicenseProfileUpdate no longer has parameter productFeatures — Conversion

    Moved under productProfile sub-object.

  3. Interface LicenseProfileUpdate no longer has parameter productType — Conversion

    Same as row 20.

  4. Interface LicenseProfileUpdate no longer has parameter softwareAssuranceCustomer — Conversion

    Moved under softwareAssurance sub-object.

  5. Interface LicenseProfileUpdate no longer has parameter subscriptionStatus — Conversion

    Same as row 20.

LicenseUpdate unflatten (5 items)

Click to expand

Old swagger had x-ms-client-flatten: true on LicenseUpdate.properties.licenseDetails. TypeSpec does not flatten, so properties now appear under licenseDetails: LicenseUpdatePropertiesLicenseDetails.

  1. Interface LicenseUpdate no longer has parameter edition — Conversion

    Moved under licenseDetails sub-object.

  2. Interface LicenseUpdate no longer has parameter processors — Conversion

    Same as row 24.

  3. Interface LicenseUpdate no longer has parameter state — Conversion

    Same as row 24.

  4. Interface LicenseUpdate no longer has parameter target — Conversion

    Same as row 24.

  5. Interface LicenseUpdate no longer has parameter type — Conversion

    Same as row 24.

Emitter differences (6 items)

  1. Class HybridComputeManagementClient no longer has parameter apiVersion — Emitter ✅

    TypeSpec emitter stores apiVersion in internal client context and does not expose it as a client property.

  2. Class HybridComputeManagementClient no longer has parameter subscriptionId — Emitter ✅

    Same as row 29 for subscriptionId.

  3. Class HybridComputeManagementClient no longer has parameter networkProfileOperations — Emitter

    Client operation group accessor property renamed from networkProfileOperations to networkProfile. The operation group NetworkProfileOperations still exists.

  4. Removed Interface ProxyResourceAutoGenerated — Emitter ✅

    AutoRest generated ProxyResourceAutoGenerated to resolve naming conflict with ARM common types. TypeSpec uses standard ProxyResource directly.

  5. Removed Interface ResourceAutoGenerated — Emitter ✅

    Same as row 32: AutoRest artifact. TypeSpec uses standard Resource.

  6. Operation LicenseProfiles.beginDeleteAndWait has a new signature — Emitter ✅

    (1) Return type changed from LicenseProfilesDeleteResponse (response wrapper) to void — TypeSpec emitter returns void for delete operations. (2) resumeFrom property removed from LicenseProfilesDeleteOptionalParams — TypeSpec emitter handles LRO resume differently.


Total: 3 (Type 1: API Version Upgrade) + 31 (Type 2: TypeSpec/Emitter Migration) = 34 breaking changes

Type 2 breakdown: 25 items from TypeSpec conversion (all x-ms-client-flatten removal), 6 items from emitter differences.

  • 5 of 31 Type 2 items match approved patterns ✅
  • 26 items need review:
    • 25 items from x-ms-client-flatten removal (no approved pattern for model unflattening)
    • 1 item from client property rename (networkProfileOperationsnetworkProfile)

Methodology

Compared the old hand-written swagger (2025-02-19-preview at d69bf516) against the TypeSpec-generated swaggers at the same commit (4375d0c4) for both 2025-02-19-preview and 2025-09-16-preview. Models present in TypeSpec-generated 2025-02-19-preview but absent from 2025-09-16-preview were classified as Type 1. The x-ms-client-flatten: true extensions on LicenseProfile, LicenseProfileUpdate, and LicenseUpdate sub-objects were verified in the old swagger (26 occurrences total), confirming the unflatten root cause for 25 entries.

@v-jiaodi
Copy link
Copy Markdown
Member

v-jiaodi commented Jun 5, 2026

Note

This analysis was generated by AI. Please review the classifications and root causes for accuracy.

Breaking Change Analysis: @azure/arm-hybridcompute 5.0.0-beta.2

Old SDK (main) New SDK (PR)
Generator Swagger / AutoRest TypeSpec / emitter
API Version 2025-02-19-preview 2025-09-16-preview
Package Version 5.0.0-beta.1 5.0.0-beta.2

Spec References:

Note: Although the API version changed (2025-02-19-preview to 2025-09-16-preview), a hand-written swagger for 2025-09-16-preview existed at the pre-TypeSpec commit. All 34 breaking changes trace to TypeSpec conversion or emitter differences (Type 2), not to API version model changes (Type 1). The property structures are the same across Layer A, B, and C swagger definitions.


Type 2: TypeSpec / Emitter Migration -- 34 items

Root Cause Sub-Type Count Accepted
Properties de-flattened: sub-properties moved from flat on parent to nested sub-objects. back-compatible.tsp has @@Legacy.flattenProperty decorators for these sub-properties, but JS emitter does not apply nested flatten. Emitter 25
subscriptionId / apiVersion no longer exposed as client properties; stored in internal client context Emitter 2
Unreachable types removed: KeyDetails / KeyProperties became orphaned after TypeSpec conversion excluded parent NetworkConfiguration operations Conversion 2
AutoRest artifact types removed: ProxyResourceAutoGenerated / ResourceAutoGenerated were artifacts from mixed common-types versions, standardized by TypeSpec Conversion 2
Custom base type replaced with ARM common type: PrivateLinkScopesResource replaced by TrackedResource Conversion 1
Client accessor renamed: networkProfileOperations to networkProfile (emitter strips Operations suffix from accessor name) Emitter 1
LRO operation signature changed: resumeFrom removed from delete options; response wrapper LicenseProfilesDeleteResponse replaced with void Emitter 1

Details

LicenseProfile property de-flattening (15 items)

The old SDK (AutoRest) flattened nested sub-objects (esuProfile, productProfile, softwareAssurance) onto the LicenseProfile interface. The swagger has always modeled these as nested sub-properties. back-compatible.tsp includes @@Legacy.flattenProperty(LicenseProfileProperties.esuProfile), @@Legacy.flattenProperty(LicenseProfileProperties.productProfile), and @@Legacy.flattenProperty(LicenseProfileProperties.softwareAssurance), but the JS TypeSpec emitter does not apply nested-level flatten. The result is that these properties now appear under their proper sub-objects: esuProfile?: LicenseProfileArmEsuProperties, productProfile?: LicenseProfileArmProductProfileProperties, softwareAssurance?: LicenseProfilePropertiesSoftwareAssurance.

15 LicenseProfile entries (click to expand)
  1. Interface LicenseProfile no longer has parameter assignedLicense -- Emitter

    Moved under esuProfile sub-object (was flattened by AutoRest).

  2. Interface LicenseProfile no longer has parameter assignedLicenseImmutableId -- Emitter

    Same as row 1: moved under esuProfile.

  3. Interface LicenseProfile no longer has parameter billingEndDate -- Emitter

    Moved under productProfile sub-object.

  4. Interface LicenseProfile no longer has parameter billingStartDate -- Emitter

    Same as row 3.

  5. Interface LicenseProfile no longer has parameter disenrollmentDate -- Emitter

    Same as row 3.

  6. Interface LicenseProfile no longer has parameter enrollmentDate -- Emitter

    Same as row 3.

  7. Interface LicenseProfile no longer has parameter error -- Emitter

    Same as row 3.

  8. Interface LicenseProfile no longer has parameter esuEligibility -- Emitter

    Same as row 1: moved under esuProfile.

  9. Interface LicenseProfile no longer has parameter esuKeys -- Emitter

    Same as row 1: moved under esuProfile.

  10. Interface LicenseProfile no longer has parameter esuKeyState -- Emitter

    Same as row 1: moved under esuProfile.

  11. Interface LicenseProfile no longer has parameter productFeatures -- Emitter

    Same as row 3: moved under productProfile.

  12. Interface LicenseProfile no longer has parameter productType -- Emitter

    Same as row 3: moved under productProfile.

  13. Interface LicenseProfile no longer has parameter serverType -- Emitter

    Same as row 1: moved under esuProfile.

  14. Interface LicenseProfile no longer has parameter softwareAssuranceCustomer -- Emitter

    Moved under softwareAssurance sub-object.

  15. Interface LicenseProfile no longer has parameter subscriptionStatus -- Emitter

    Same as row 3: moved under productProfile.

LicenseProfileUpdate property de-flattening (5 items)

Same root cause as LicenseProfile. AutoRest flattened esuProfile, productProfile, and softwareAssurance sub-objects. TypeSpec emitter preserves nesting despite @@Legacy.flattenProperty decorators in back-compatible.tsp.

5 LicenseProfileUpdate entries (click to expand)
  1. Interface LicenseProfileUpdate no longer has parameter assignedLicense -- Emitter

    Moved under esuProfile?: EsuProfileUpdateProperties.

  2. Interface LicenseProfileUpdate no longer has parameter productFeatures -- Emitter

    Moved under productProfile?: ProductProfileUpdateProperties.

  3. Interface LicenseProfileUpdate no longer has parameter productType -- Emitter

    Same as row 17.

  4. Interface LicenseProfileUpdate no longer has parameter softwareAssuranceCustomer -- Emitter

    Moved under softwareAssurance?: LicenseProfileUpdatePropertiesSoftwareAssurance.

  5. Interface LicenseProfileUpdate no longer has parameter subscriptionStatus -- Emitter

    Same as row 17.

LicenseUpdate property de-flattening (5 items)

AutoRest flattened licenseDetails sub-object onto LicenseUpdate. TypeSpec emitter preserves nesting: licenseDetails?: LicenseUpdatePropertiesLicenseDetails. back-compatible.tsp includes @@Legacy.flattenProperty(LicenseUpdateProperties.licenseDetails) but JS emitter does not apply it.

5 LicenseUpdate entries (click to expand)
  1. Interface LicenseUpdate no longer has parameter edition -- Emitter

    Moved under licenseDetails sub-object.

  2. Interface LicenseUpdate no longer has parameter processors -- Emitter

    Same as row 21.

  3. Interface LicenseUpdate no longer has parameter state -- Emitter

    Same as row 21.

  4. Interface LicenseUpdate no longer has parameter target -- Emitter

    Same as row 21.

  5. Interface LicenseUpdate no longer has parameter type -- Emitter

    Same as row 21.

Removed interfaces (5 items)

  1. Removed Interface KeyDetails -- Conversion ✅

    Unreachable type removed. KeyDetails was only referenced by KeyProperties, which was only referenced by NetworkConfiguration. TypeSpec conversion excluded the NetworkConfiguration operations, making these types orphaned and pruned by the emitter.

  2. Removed Interface KeyProperties -- Conversion ✅

    Same as row 26.

  3. Removed Interface PrivateLinkScopesResource -- Conversion ✅

    Custom base type replaced with ARM common TrackedResource. Old SDK had HybridComputePrivateLinkScope extends PrivateLinkScopesResource; new SDK uses extends TrackedResource.

  4. Removed Interface ProxyResourceAutoGenerated -- Conversion ✅

    AutoRest artifact from mixed common-types versions. Old swagger referenced multiple common-types versions causing AutoRest to generate ProxyResourceAutoGenerated alongside ProxyResource. TypeSpec standardized to one ARM common ProxyResource.

  5. Removed Interface ResourceAutoGenerated -- Conversion ✅

    Cascading from row 29: ResourceAutoGenerated was the base type of ProxyResourceAutoGenerated. Both are AutoRest artifacts removed by TypeSpec standardization.

Client-level changes (3 items)

  1. Class HybridComputeManagementClient no longer has parameter apiVersion -- Emitter ✅

    TypeSpec/emitter stores apiVersion in internal client context. It is still available as an optional property on HybridComputeManagementClientOptionalParams but is no longer a public client property.

  2. Class HybridComputeManagementClient no longer has parameter subscriptionId -- Emitter ✅

    TypeSpec/emitter stores subscriptionId in internal client context. It is still accepted in the constructor but no longer exposed as a public property.

  3. Class HybridComputeManagementClient no longer has parameter networkProfileOperations -- Emitter

    Client accessor renamed from networkProfileOperations to networkProfile. The operation group type NetworkProfileOperations still exists. The emitter strips the Operations suffix from client accessor names.

Operation signature changes (1 item)

  1. Operation LicenseProfiles.beginDeleteAndWait has a new signature -- Emitter ✅

    (1) resumeFrom property removed from LicenseProfilesDeleteOptionalParams -- TypeSpec emitter LRO pattern uses SimplePollerLike from @azure/core-lro which handles resume internally. (2) Return type changed from LicenseProfilesDeleteResponse (header wrapper) to void -- TypeSpec emitter does not generate response wrapper types for operations with no response body. Cascade check: no broken models in type chain (delete takes string params, returns void).


Open Questions

  1. De-flattening (25 items): back-compatible.tsp includes @@Legacy.flattenProperty decorators for LicenseProfileProperties.esuProfile, LicenseProfileProperties.productProfile, LicenseProfileProperties.softwareAssurance, LicenseProfileUpdateProperties.*, and LicenseUpdateProperties.licenseDetails. However, the JS TypeSpec emitter does not apply these nested-level flatten directives, resulting in 25 breaking changes. This may be a known emitter limitation or a bug. These items need architect review to determine if they should be accepted.

  2. Client accessor rename (1 item): The accessor networkProfileOperations was renamed to networkProfile on the client class. This is not explicitly covered by the approved patterns list. Pattern for operation group naming covers the type name (Operations suffix on interface), not the accessor name on the client.


Methodology

This analysis uses a four-layer comparison model:

  • Layer A (old swagger at commit d69bf51): The swagger files used to generate the old SDK via AutoRest
  • Layer B (new swagger pre-TypeSpec at commit 45f6e82): The hand-written swagger for 2025-09-16-preview before TypeSpec conversion
  • Layer C (TypeSpec-generated swagger at commit 4375d0c): The swagger generated from the TypeSpec project
  • Layer D (SDK api.md): The public API surface comparison between old and new SDKs

Classification: A!=B is Type 1 (API upgrade), B!=C is Type 2a (conversion), B==C but D differs is Type 2b (emitter).

Total: 34 (Type 2: TypeSpec/Emitter Migration) breaking changes

Type 2 breakdown: 5 items from TypeSpec conversion, 29 items from emitter differences.

Of 34 total: 9 match approved patterns (:white_check_mark:), 25 need review (primarily de-flattening from emitter not applying @@Legacy.flattenProperty).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Mgmt This issue is related to a management-plane library. mgmt-review-added Management SDK review completed refresh PR for SDK refresh

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants