[AutoPR @azure-arm-education]-generated-from-SDK Generation - JS-6357065#38697
[AutoPR @azure-arm-education]-generated-from-SDK Generation - JS-6357065#38697azure-sdk wants to merge 3 commits into
Conversation
…ducation/Education/tspconfig.yaml', API Version: 2021-12-01-preview, SDK Release Type: beta, and CommitSHA: '5a45c68db967ced0736a2f91a74774a65771dadc' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6357065 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
This PR regenerates @azure/arm-education from the TypeSpec configuration for API version 2021-12-01-preview, migrating the package to the newer generated client structure and refreshing samples, docs, and build metadata.
Changes:
- Replaces legacy AutoRest operation/interface files with generated
api/,classic/, model, helper, and client entry points. - Updates README, CHANGELOG, snippets, samples, package metadata, tsconfigs, and pipeline/build configuration.
- Adds TypeSpec source metadata and refreshed assets/lockfile entries.
Reviewed changes
Copilot reviewed 146 out of 148 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
sdk/education/ci.mgmt.yml |
Normalizes CI YAML whitespace. |
sdk/education/arm-education/warp.config.yml |
Updates Warp exports and build targets. |
sdk/education/arm-education/tsp-location.yaml |
Adds TypeSpec source location metadata. |
sdk/education/arm-education/tsconfig.json |
Updates project references. |
sdk/education/arm-education/test/snippets.spec.ts |
Updates README snippet client construction. |
sdk/education/arm-education/src/static-helpers/serialization/check-prop-undefined.ts |
Adds serialization helper. |
sdk/education/arm-education/src/static-helpers/cloudSettingHelpers.ts |
Adds ARM cloud endpoint helper. |
sdk/education/arm-education/src/pagingHelper.ts |
Removes legacy paging helper. |
sdk/education/arm-education/src/operationsInterfaces/* |
Removes legacy operation interfaces. |
sdk/education/arm-education/src/operations/* |
Removes legacy operation implementations. |
sdk/education/arm-education/src/models/parameters.ts |
Removes legacy core-client parameter definitions. |
sdk/education/arm-education/src/logger.ts |
Adds package logger. |
sdk/education/arm-education/src/index.ts |
Rebuilds public exports for generated structure. |
sdk/education/arm-education/src/educationManagementClient.ts |
Replaces legacy ServiceClient wrapper with generated context-backed client. |
sdk/education/arm-education/src/classic/** |
Adds classic operation group wrappers. |
sdk/education/arm-education/src/api/** |
Adds generated REST operation layer and option types. |
sdk/education/arm-education/samples-dev/** |
Refreshes TypeScript sample sources. |
sdk/education/arm-education/samples/v1-beta/typescript/** |
Regenerates TypeScript samples and sample package metadata. |
sdk/education/arm-education/samples/v1-beta/javascript/** |
Regenerates JavaScript samples and sample package metadata. |
sdk/education/arm-education/sample.env |
Simplifies sample environment template. |
sdk/education/arm-education/README.md |
Updates links and client creation examples. |
sdk/education/arm-education/metadata.json |
Adds generation metadata. |
sdk/education/arm-education/LICENSE |
Normalizes file ending. |
sdk/education/arm-education/eslint.config.mjs |
Formats ESLint config. |
sdk/education/arm-education/config/*.json |
Updates source, test, browser, and sample TypeScript configs. |
sdk/education/arm-education/CHANGELOG.md |
Updates beta release notes. |
sdk/education/arm-education/assets.json |
Updates test asset tag. |
sdk/education/arm-education/api-extractor.json |
Formats API Extractor config. |
sdk/education/arm-education/_meta.json |
Removes legacy AutoRest metadata. |
pnpm-lock.yaml |
Updates package dependency lock entries. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
| credentials: { | ||
| scopes: options.credentials?.scopes ?? ["https://management.azure.com/.default"], | ||
| }, |
Next Steps to MergeOnly failed checks and required actions are listed below.
Review ADO pipeline for details. |
There was a problem hiding this comment.
1 tool issue found: the api-version introduced in this PR (2021-12-01-preview) is the same as the one already present in the existing package (1.0.0-beta.3), which was also generated from 2021-12-01-preview. Per guidelines, the api-version must be strictly newer. All other API surface checks (client name, naming, type safety, exports, breaking change documentation) look good.
📊 Structured Report
{"agent":"mgmt-reviewer","pr":38697,"summary":"issues_found","findings":[{"file":"sdk/education/arm-education/CHANGELOG.md","line":4,"issueType":"tool","category":"api-version","description":"API version 2021-12-01-preview introduced in this PR is the same as the one already present in the existing package (1.0.0-beta.3). Must be strictly newer."}]}⚡ Benchmarked by Management Release Assistant
|
|
||
| ## 1.0.0-beta.5 (Unreleased) | ||
| ## 1.0.0-beta.5 (2026-05-27) | ||
| Compared with version 1.0.0-beta.3 |
There was a problem hiding this comment.
🔴 Tool Issue — CHANGELOG.md:4
Compared with version 1.0.0-beta.3.
The API version introduced in this PR is 2021-12-01-preview, which is the same as the API version already used in the existing package (1.0.0-beta.3 was also generated from 2021-12-01-preview). The api-version must be strictly newer than the one already present in the package.
Fix: Update the specification to use a newer API version (e.g., 2022-xx-xx or later) and trigger SDK regeneration. If this is an intentional re-generation refresh without an API version bump, please confirm with the spec team and report the issue in the generation tool repository.
|
Note This analysis was generated by AI. Please review the classifications and root causes for accuracy. Breaking Change Analysis:
|
| Old SDK (main) | New SDK (PR) | |
|---|---|---|
| Generator | Swagger / AutoRest | TypeSpec / emitter |
| API Version | 2021-12-01-preview | 2021-12-01-preview |
| Package Version | 1.0.0-beta.3 | 1.0.0-beta.5 |
Spec References:
- Original Swagger (Layer A): education.json @
ac155b9 - TypeSpec config: tspconfig.yaml @
5a45c68 - Generated Swagger (Layer C): education.json @
5a45c68
API version is identical between old and new SDKs. Layer A, B, and C swagger definitions are identical. All breaking changes are from TypeSpec emitter generating different TypeScript code than AutoRest.
Type 2: TypeSpec / Emitter Migration -- 7 items
| Root Cause | Sub-Type | Count | Accepted |
|---|---|---|---|
Collection wrapper types removed; emitter returns PagedAsyncIterableIterator<T> directly |
Emitter | 2 | ✅ |
AutoRest double-flattened nested Amount properties via x-ms-client-flatten; TypeSpec emitter preserves the Amount object structure |
Emitter | 4 | |
ARM common type OperationListResult.value treated as required by TypeSpec emitter; AutoRest generated it as optional |
Emitter | 1 |
Details
-
Removed Interface GrantListResponse-- Emitter ✅Collection wrapper type removed. Swagger has
GrantListResponsewithnextLinkandvaluearray; AutoRest exposed it as a named interface. TypeSpec emitter inlines the paging and operations returnPagedAsyncIterableIterator<GrantDetails>directly. -
Removed Interface JoinRequestList-- Emitter ✅Same as row 1. Collection wrapper for
JoinRequestDetailspaging removed. -
Interface LabDetails no longer has parameter currencyPropertiesTotalAllocatedBudgetCurrency-- EmitterSwagger has
LabProperties.totalAllocatedBudgetreferencingAmount(withcurrencyandvaluesub-properties) andx-ms-client-flatten: true. AutoRest double-flattened the nestedAmountfields intoLabDetailswith long disambiguated names (e.g.,currencyPropertiesTotalAllocatedBudgetCurrency). TypeSpec emitter preserves theAmountobject structure, exposingtotalAllocatedBudget: Amountinstead. The swagger is identical in all three layers (A, B, C) -- all havex-ms-client-flatten: trueon bothLabDetails.propertiesandLabProperties.totalAllocatedBudget. -
Interface LabDetails no longer has parameter currencyPropertiesTotalBudgetCurrency-- EmitterSame as row 3. Flattened
totalBudget.currencyremoved in favor of nestedtotalBudget: Amount. -
Interface LabDetails no longer has parameter valuePropertiesTotalAllocatedBudgetValue-- EmitterSame as row 3. Flattened
totalAllocatedBudget.valueremoved in favor of nestedtotalAllocatedBudget: Amount. -
Interface LabDetails no longer has parameter valuePropertiesTotalBudgetValue-- EmitterSame as row 3. Flattened
totalBudget.valueremoved in favor of nestedtotalBudget: Amount. -
Parameter value of interface OperationListResult is now required-- EmitterAll three swagger layers (A, B, C) reference
OperationListResultfrom ARM common types v3 (common-types/resource-management/v3/types.json). The common types definition does not includevaluein therequiredarray. AutoRest generated it as optional (value?: Operation[]); TypeSpec emitter generates it as required (value: Operation[]), following the TypeSpec ARM library convention.
Total: 7 (Type 2: TypeSpec/Emitter Migration) breaking changes
Type 2 breakdown: 0 items from TypeSpec conversion, 7 items from emitter differences.
Methodology
Compared Layer A (old swagger at commit ac155b9), Layer B (pre-TypeSpec swagger at commit bafb50e), and Layer C (TypeSpec-generated swagger at commit 5a45c68). All three layers have identical definitions for all affected types (GrantListResponse, JoinRequestList, LabDetails, LabProperties, Amount). The OperationListResult definition is referenced from ARM common types in all layers. All differences originate from the TypeSpec emitter generating different TypeScript code than AutoRest for the same swagger input.
Configurations: 'specification/education/resource-manager/Microsoft.Education/Education/tspconfig.yaml', API Version: 2021-12-01-preview, SDK Release Type: beta, and CommitSHA: '5a45c68db967ced0736a2f91a74774a65771dadc' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6357065 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release.