Skip to content

Conversation

@violetVo
Copy link
Contributor

Contributing to the Azure SDK

Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.

For specific information about pull request etiquette and best practices, see this section.

Copy link
Member

@mrm9084 mrm9084 left a comment

Choose a reason for hiding this comment

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

Update for release

Copilot AI and others added 15 commits December 23, 2025 15:02
…es (#54653)

* Initial plan

* Fix parameter name normalization to avoid unnecessary updates

Add check to ensure parameter names are only updated when they actually change.
This prevents potential issues with XML documentation parameter references
when the normalized name equals the current name.

Co-authored-by: haiyuazhang <1924967+haiyuazhang@users.noreply.github.com>

* Add TypeSpec.Rest using statement to test the fix

Applied the suggested spec change from the original issue to validate
that the fix prevents XML documentation parameter name mismatches.

Co-authored-by: haiyuazhang <1924967+haiyuazhang@users.noreply.github.com>

* Fix XML doc parameter mismatch in MockableArmClientProvider

Add signature parameter to m.Update() call to force XML documentation
regeneration when parameter names are normalized. This ensures XML
param tags match the actual parameter names after normalization.

Co-authored-by: haiyuazhang <1924967+haiyuazhang@users.noreply.github.com>

* Simplify fix: Add MockableArmClientProvider to type check instead

Instead of adding guards and manual XML doc updates, simply include
MockableArmClientProvider in the OperationMethodParameterHelper type
check. This allows parameter normalization to happen during method
construction, eliminating the need for post-creation updates.

This removes the duplicate normalization logic from MockableArmClientProvider
and ensures XML docs are generated with correct parameter names from the start.

Co-authored-by: haiyuazhang <1924967+haiyuazhang@users.noreply.github.com>

* Revert MockableArmClientProvider to keep file untouched

Keep MockableArmClientProvider.cs in its original state with the
parameter normalization logic intact. The fix only requires adding
MockableArmClientProvider to the type check in OperationMethodParameterHelper.cs,
which allows both the original normalization in MockableArmClientProvider
and the new one in OperationMethodParameterHelper to coexist without issues.

Co-authored-by: haiyuazhang <1924967+haiyuazhang@users.noreply.github.com>

* Update comment to include MockableArmClientProvider case

Updated the comment on line 72 of OperationMethodParameterHelper.cs to
reflect that parameter normalization now applies to MockableArmClientProvider
operations in addition to ResourceClientProvider and ResourceCollectionClientProvider.

Co-authored-by: haiyuazhang <1924967+haiyuazhang@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: haiyuazhang <1924967+haiyuazhang@users.noreply.github.com>
…#54545)

* Initial plan

* Add SinglePageListOperationMethodProvider for array response types

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Fix compilation errors and build successfully

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* WIP: Update SinglePageListOperationMethodProvider implementation

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Rename class and simplify FooDependency model per review feedback

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Address review feedback - discussion on CollectionResultDefinition approach

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* [Generator] Generate Pageable<T> for operations returning array types (WIP - Needs Completion)

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Implement ArrayResponseCollectionResultDefinition class for array response paging

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Address review feedback: simplify naming and fix collection result extraction

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Address minor code style feedback and fix parameter ordering

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Fix ParseArrayFromResponse implementation to properly deserialize JSON arrays

Fixed the ParseArrayFromResponse method in ArrayResponseCollectionResultDefinition to correctly parse and deserialize JSON array responses:
- Use JsonDocument.Parse with ModelSerializationExtensions.JsonDocumentOptions
- Iterate over array.EnumerateArray() using ForEachStatement
- Deserialize each element using T.DeserializeT(element, ModelSerializationExtensions.WireOptions)
- Return IReadOnlyList<T> of deserialized items

The generated collection result classes now compile and function correctly.

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Use ModelReaderWriter.Read with MRWContext (WIP - context reference needs completion)

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Use ModelReaderWriter.Read with context type reference - implementation complete

Fixed the ParseArrayFromResponse method in ArrayResponseCollectionResultDefinition to use ModelReaderWriter.Read<T> with MRWContext.Default as requested. The implementation:

1. Added ModelReaderWriterContextTypeName property to ManagementOutputLibrary that computes the context class name following the pattern {NamespaceWithoutDots}Context
2. Updated ArrayResponseOperationMethodProvider to pass the context type name to collection result definition
3. Updated ParseArrayFromResponse to use Literal for context reference: ModelReaderWriter.Read<T>(binaryData, options, {ContextType}.Default)

The generator C# code compiles successfully. The emitter build needs to be run separately to test end-to-end generation.

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Fix ModelReaderWriterContext reference per review feedback

Implemented all review feedback:
1. Simplified ModelReaderWriterContextType property in ManagementOutputLibrary to use `new ModelReaderWriterContextDefinition().Type`
2. Removed ModelReaderWriterContextTypeName property and helper methods
3. Removed contextTypeName parameter from ArrayResponseCollectionResultDefinition constructor
4. Updated ParseArrayFromResponse to use `Static(ManagementClientGenerator.Instance.OutputLibrary.ModelReaderWriterContextType).Property("Default")` instead of Literal string

The implementation now correctly references the ModelReaderWriterContextType through the OutputLibrary static property as requested.

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Regenerate test projects with updated ModelReaderWriter implementation

Ran Generate.ps1 script to regenerate test project code after implementing ModelReaderWriterContext.Default changes. The generated collection result classes now use:
- `Static(ManagementClientGenerator.Instance.OutputLibrary.ModelReaderWriterContextType).Property("Default")`
- `ModelReaderWriter.Read<T>(new BinaryData(...), ModelSerializationExtensions.WireOptions, context.Default)`

The test project builds successfully with all array response pageable operations properly generated.

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Use Path.Combine and enclosing type name per review feedback

Address review comments:
1. Use Path.Combine for building the relative file path instead of string interpolation
2. Use enclosing type name (e.g., "FooResource") instead of REST client name (e.g., "Foos") in the generated collection result class name

This ensures the generated class names follow the pattern: {EnclosingType}{MethodName}CollectionResultOfT
For example: FooResourceGetDependenciesAsyncCollectionResultOfT instead of FoosGetDependenciesAsyncCollectionResultOfT

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

* Regenerate test projects with updated enclosing type naming

Ran Generate.ps1 script to regenerate test projects after implementing the enclosing type name change. The generated collection result classes now use the correct naming pattern:
- FooResourceGetDependenciesAsyncCollectionResultOfT (async version)
- FooResourceGetDependenciesCollectionResultOfT (sync version)

Instead of the previous:
- FoosGetDependenciesAsyncCollectionResultOfT
- FoosGetDependenciesCollectionResultOfT

The test project builds successfully with all changes.

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>
Co-authored-by: Arcturus Zhang <dapzhang@microsoft.com>
The focus of these changes is to remove an owner being flagged by the linter as no longer valid.
Co-authored-by: Ubuntu <cloudtest@cc901ea2c00000B.tkkhlgj2u51eln3mcb0lygmbye.dx.internal.cloudapp.net>
Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* update tsp-location.yaml

* regen

* regen

* regen

* export api

* update spec commit id and regen
* MPG migration - purestorageblock

* MPG migration - purestorageblock

* update commit id in tsp-location.yaml

* update spec commit id and regen
* update tsp-location.yaml

* update spec commit id and regen
Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Arcturus Zhang <dapzhang@microsoft.com>
…s API migration (#54698)

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Arcturus Zhang <dapzhang@microsoft.com>
azure-sdk and others added 30 commits January 21, 2026 11:09
…alpha.20260121.1 (#55156)

* Regenerate repository SDK with TypeSpec build 20260121.1

* Update SDK code ea_lo_2

* Update SDK code ad_co_0

* fix suppressions

* regen

---------

Co-authored-by: jolov <jolov@microsoft.com>
* first pass on updating AOT CI

* clean up repo refs in ci files

* more yml updates

* script updates

* fix script

* more updates

* try fixing yaml

* debugging

* initial feedback

* update parameter

* attempt to delete PR script

* another clean up

* fix attempt

* another attempt

* another attempt

* debugging statement

* attempt using pwsh

* another attempt

* Apply suggestions from code review

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* feedback

* feedback 2

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…ient (#55135)

* Disable retries for HttpClientFactory in MsalConfidentialClient and MsalPublicClient

* Add tests

* Add changelog entry
The focus of these changes is to take a direct reference to `System.Text.Json` to hoist the transitive dependency from `CloudNative.CloudEvents.SystemTextJson`, as the referenced version (STJ 8.0.4) has a known vulnerability.
….0.0-alpha.20260121.1 (#55154)

* Regenerate repository SDK with TypeSpec build 20260121.1

* Update SDK code ea_lo_2
…ed by ARM library (#55144)

* Initial plan

* Initial plan for improving resolveArmResources post step

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Improve resolveArmResources post step to detect missing operations

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Address code review feedback: remove unused import and use proper type

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Remove unnecessary blank line

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Extract getAllSdkClients to avoid circular dependency and remove unnecessary type cast

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Remove unused imports to fix linter errors

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>
…ons (#55176)

* Initial plan

* Implement delete operation method naming logic with tests

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Fix trailing whitespace in ResourceClientProvider

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Address code review feedback: improve logic clarity and performance

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Extend operation path check to Get and List operations

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Address code review feedback: improve clarity and add missing test coverage

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Consolidate GetOperationMethodName tests using TestCase attributes

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Remove obsolete IsDeletingCurrentResource method and redundant tests

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Revert generator changes per architectural review feedback

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Convert moved operations to Action kind in emitter

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>
…del (#55149)

* Initial plan

* Fix OperationSource generation to create separate instances for resources sharing the same model

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Fix trailing whitespace and verify generated code builds

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Apply code review feedback: optimize with Any() and TryAdd()

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Add test to verify multiple resources sharing same data model generate separate OperationSources

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Fix trailing whitespace on line 144

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Remove incomplete issue link from test comment

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Fix test failure by providing unique crossLanguageDefinitionId for each method

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Fix build error by removing invalid crossLanguageDefinitionId parameters

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Fix duplicate key error by using single client with multiple decorators

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Remove test due to test infrastructure limitations

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Update InputFactory to use unique GUIDs for method IDs and restore test

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Update mgmt InputFactory to use unique GUIDs for method IDs

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* fix test failure

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>
Co-authored-by: Wei Hu <huwe@microsoft.com>
* Initial plan

* Refactor post-processing to use shared function

- Extract common post-processing logic into postProcessArmResources function in resource-metadata.ts
- Update resolveArmResources to use shared post-processing
- Update buildArmProviderSchema to use shared post-processing
- Remove duplicate canBeListResourceScope and buildArmProviderSchemaFromDetectedResources functions
- All tests passing

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Address code review feedback

- Optimize validResourceMap to build once instead of per call
- Replace non-null assertion with explicit null check for safety
- All tests passing

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Fix linter errors

- Remove unused sortResourceMethods import from resolve-arm-resources-converter.ts
- Remove unused sortResourceMethods import from resource-detection.ts
- Remove unused variable '_' from resource-detection.ts loop

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Address code review comments

- Use metadataKeyToResource map to optimize resource name lookup (O(n) vs O(n²))
- Restore diagnostic messages for resources without resourceIdPattern
- Restore diagnostic messages for non-singleton resources without Read operations
- Fix unused variable linter warning

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

* Merge from main and integrate Action kind conversion

Resolved merge conflict by:
- Kept our refactored code structure (shared post-processing)
- Integrated the Action kind conversion logic from main into postProcessArmResources()
- When operations are moved to parent resources, they are now converted to Action kind to avoid naming conflicts

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: live1206 <5196139+live1206@users.noreply.github.com>
Co-authored-by: Wei Hu <live1206@gmail.com>
Co-authored-by: Alitzel Mendez <almend@microsoft.com>
….0.0-alpha.20260122.3 (#55189)

* Regenerate repository SDK with TypeSpec build 20260122.3

* Update SDK code mo_re_3
…4880)

Co-authored-by: ArcturusZhang <10554446+ArcturusZhang@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: Arcturus Zhang <dapzhang@microsoft.com>
…55212)

* Handle the scenario of key is variable in conceptual parameter

* Add UT
….0.0-alpha.20260123.1 (#55213)

* Regenerate repository SDK with TypeSpec build 20260123.1

* Update SDK code mo_re_3
…55208)

* Add new section for FIC

* Update sdk/identity/Azure.Identity/TROUBLESHOOTING.md

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix malformed HTML

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* fix script call

* fb

* Update eng/pipelines/templates/steps/aot-compatibility.yml

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Scott Beddall <scbedd@microsoft.com>
… Azure SDKs (#55202)

Co-authored-by: Sameeksha Vaity <savaity@microsoft.com>
* Bump version of Azure.ClientSdk.Analyzers

* update violation of AZC0012
Bumps the npm_and_yarn group with 1 update in the /eng/common/tsp-client directory: [tar](https://github.com/isaacs/node-tar).

Updates `tar` from 7.4.3 to 7.5.3
- [Release notes](https://github.com/isaacs/node-tar/releases)
- [Changelog](https://github.com/isaacs/node-tar/blob/main/CHANGELOG.md)
- [Commits](isaacs/node-tar@v7.4.3...v7.5.3)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* l:wqHead request support

* update

* update generated code

* update test record

* update

* update

* update

* update api

* update

* update

* update

* update
* update tsp-location.yaml

* update commit id in tsp-location.yaml

* wip

* wip

* MPG migration - selfhelp

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* restore test

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* WIP

* fix test

* ready for review

* refine

* export api

* update commit id in tsp-location.yaml

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

Labels

AI Model Inference AI Projects Client This issue is related to a non-management package CodeGen Issues that relate to code generation Event Grid Health Deidentification Image Analysis KeyVault Mgmt This issue is related to a management package. Monitor - Query Provisioning Schema Registry

Projects

Status: Untriaged

Development

Successfully merging this pull request may close these issues.