Skip to content

Conversation

@raych1
Copy link
Member

@raych1 raych1 commented Nov 5, 2025

This is the design spec

Overview of the changes:
Standardized response and process handling:

  • Added extension methods to create standardized success and failure responses for package operations.
  • Extended the ISpecGenSdkConfigHelper interface for creating and executing repo-configured processes with standardized error handling and response formatting.

Language-specific package update services:

  • Added the ILanguagePackageUpdate interface

@raych1 raych1 requested a review from a team as a code owner November 5, 2025 01:33
Copilot AI review requested due to automatic review settings November 5, 2025 01:33
@github-actions github-actions bot added the azsdk-cli Issues related to Azure/azure-sdk-tools::tools/azsdk-cli label Nov 5, 2025
@raych1 raych1 self-assigned this Nov 5, 2025
Copy link
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.

Pull Request Overview

This PR introduces a new MetadataUpdateTool for updating package metadata files in Azure SDK packages, along with supporting infrastructure including a ProcessConfigurationService, ResponseFactory, and language-specific package update implementations. The changes also refactor the configuration helper to support multiple configuration types beyond just build operations.

Key changes:

  • Added MetadataUpdateTool with configurable script or language-specific update logic
  • Introduced ProcessConfigurationService to centralize process execution logic
  • Extended SpecGenSdkConfigHelper to support multiple configuration types (Build, UpdateChangelog, UpdateVersion, UpdateMetadata, UpdateCi)
  • Added language-specific package update service interface and stub implementations for all supported languages

Reviewed Changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 16 comments.

Show a summary per file
File Description
SdkBuildTool.cs Updated to use refactored configuration helper with new enum types
MetadataUpdateTool.cs New tool implementing metadata update functionality with script-based or language-specific fallback logic
ServiceRegistrations.cs Registered new services and language-specific package update implementations
ProcessConfigurationService.cs New service centralizing process creation and execution with standardized response handling
LanguageService.cs Enhanced with GetPackageInfo method and moved to Services namespace
IProcessConfigurationService.cs Interface for the new process configuration service
ResponseFactory.cs Factory for creating standardized success/failure responses
IResponseFactory.cs Interface for the response factory
SpecGenSdkConfigHelper.cs Refactored to support multiple configuration types and improved logging
PackageResponseBase.cs Updated namespace import
Language-specific PackageUpdate classes Stub implementations with NotImplementedException for future development
ILanguagePackageUpdate.cs Interface defining package update operations
Comments suppressed due to low confidence (1)

tools/azsdk-cli/Azure.Sdk.Tools.Cli/Services/ProcessConfigurationService.cs:1

  • Using await Task.CompletedTask before throwing an exception is unnecessary and serves no purpose. The await statement should be removed, and the method can simply throw the NotImplementedException directly. This pattern appears in all language-specific PackageUpdate classes.
using Azure.Sdk.Tools.Cli.Models;

Copy link
Member

@haolingdong-msft haolingdong-msft left a comment

Choose a reason for hiding this comment

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

Thanks @raych1 for sending this PR to me and for putting the code together! But both the spec PR and Ben's PR are not merged and agreed by all. This PR is already imlementation. Should it pending on spec PR and Ben's PR be merged?

I was advised to first refer to spec PR for language integration details, and then refer to Ben's PR on integration, now refer to this PR. But all PRs are not agreed by all. I'm afraid I am quite confused and unclear on how to integrate with you at this point. Shanghai side work is pending on a clear agreement on integration.

We may like to see:

  • an official and clear email, or a comment in this PR (rather than instant message 😢 ) to get it agreed by all stakeholders to show the integration approach for each language, as the design changed force and back.
  • an example on how to integrate with AzureCLI if we are using scripts, see this comment: #12761 (comment). Shanghai side language owners may prefer script approach.

We are waiting for above information and for this PR to be approved by all stakeholders to start Shanghai side work.

/cc @lirenhe @lmazuel @maririos

@haolingdong-msft
Copy link
Member

haolingdong-msft commented Nov 5, 2025

To @raych1: Shanghai mgmt sdk language owners prefer to use the script approach to integrate, as

  • some command has sdk repo dependency
  • script approach is faster to implement
  • increases velocity, if language owners want to fix bugs, the fix takes effect immediately after merging to sdk repo, we don't need to wait for Azure.CLI code to be released.

We are waiting for this PR to be merged to start our Shanghai side work to integrate.
/cc @lmazuel

Copy link
Member

@haolingdong-msft haolingdong-msft left a comment

Choose a reason for hiding this comment

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

To unblock the merge :), since I will be OOF tmr and might not get the chance to review latest changes. But please resolve my comments above as it may block shanghai side work.

@weshaggard
Copy link
Member

@haolingdong-msft @msyyc I'm working on taking over Ben's spec PR #12696 to come up with a new script interface design. In the meantime I've asked @raych1 to continue to use the existing swagger_to_sdk_config.json configuration mechanism he used for the build command. @raych1 do you have that documented anywhere? I see you have the schema but perhaps an example of these new options would be helpful. I've added a comment in your spec PR to add that information.

@raych1 raych1 requested a review from weshaggard November 5, 2025 22:08
@raych1
Copy link
Member Author

raych1 commented Nov 5, 2025

@haolingdong-msft @msyyc I'm working on taking over Ben's spec PR #12696 to come up with a new script interface design. In the meantime I've asked @raych1 to continue to use the existing swagger_to_sdk_config.json configuration mechanism he used for the build command. @raych1 do you have that documented anywhere? I see you have the schema but perhaps an example of these new options would be helpful. I've added a comment in your spec PR to add that information.

@haolingdong-msft @msyyc I've added the configuration section and sample to the spec For the script contract, please refer to the last section in the original Word design spec.

@raych1 raych1 requested a review from Copilot November 6, 2025 01:38
Copy link
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.

Pull Request Overview

Copilot reviewed 19 out of 19 changed files in this pull request and generated 4 comments.

@raych1 raych1 requested a review from msyyc November 6, 2025 17:27
@raych1 raych1 requested a review from weshaggard November 6, 2025 20:34
@raych1 raych1 moved this from 🤔 Triage to 🔬 Dev in PR in Azure SDK EngSys 📆🎇 Nov 6, 2025
Copy link
Member

@weshaggard weshaggard left a comment

Choose a reason for hiding this comment

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

One more clean-up but otherwise looks

Copy link
Member

@haolingdong-msft haolingdong-msft left a comment

Choose a reason for hiding this comment

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

@haolingdong-msft @msyyc I've added the configuration section and sample to #12563 For the script contract, please refer to the last section in the original Word design spec.

Thanks @raych1 and @weshaggard for the clarification! We will use the word format design for contract.

Thanks @raych1 for the code. Leave two questions. Just want to make sure our script integrates with the code well. Thank you!

@raych1 raych1 merged commit e71d90b into main Nov 7, 2025
12 checks passed
@raych1 raych1 deleted the user/raych1/update-metadata-tool branch November 7, 2025 18:50
@kurtzeborn kurtzeborn moved this from 🔬 Dev in PR to 🎊 Closed in Azure SDK EngSys 📆🎇 Nov 11, 2025
@raych1 raych1 linked an issue Nov 12, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

azsdk-cli Issues related to Azure/azure-sdk-tools::tools/azsdk-cli

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

[Activity] Add metadata update tool

5 participants