Skip to content

Initial release for Azure.ResourceManager.Resources.Bicep #50751

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

anthony-c-martin
Copy link
Member

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.

@Copilot Copilot AI review requested due to automatic review settings June 20, 2025 16:07
@anthony-c-martin anthony-c-martin requested review from a team and jsquire as code owners June 20, 2025 16:07
@github-actions github-actions bot added the ARM label Jun 20, 2025
Copy link
Contributor

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

Initial release for the Azure.ResourceManager.Resources.Bicep client library, integrating Bicep management capabilities into the Azure SDK.

  • Updated CI to include the new Bicep package
  • Added project scaffolding: source, tests, samples, solution, and metadata files
  • Defined API surfaces, documentation template, changelog, and asset publishing configuration

Reviewed Changes

Copilot reviewed 16 out of 35 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
sdk/resources/ci.mgmt.yml Include Bicep package in CI pipeline
sdk/resources/Azure.ResourceManager.Resources.Bicep/tsp-location.yaml Register Bicep spec directory and commit in location map
sdk/resources/Azure.ResourceManager.Resources.Bicep/tests/BicepManagementTestEnvironment.cs Add empty test environment class for Bicep tests
sdk/resources/Azure.ResourceManager.Resources.Bicep/tests/BicepManagementTestBase.cs Add common test base with client and RG helper
sdk/resources/Azure.ResourceManager.Resources.Bicep/tests/Azure.ResourceManager.Resources.Bicep.Tests.csproj Create test project referencing Bicep implementation
sdk/resources/Azure.ResourceManager.Resources.Bicep/src/Properties/AssemblyInfo.cs Configure AzureResourceProviderNamespace and InternalsVisibleTo
sdk/resources/Azure.ResourceManager.Resources.Bicep/src/GlobalSuppressions.cs Suppress naming-rule warnings for generated models
sdk/resources/Azure.ResourceManager.Resources.Bicep/src/Azure.ResourceManager.Resources.Bicep.csproj Define package metadata (version, ID, tags)
sdk/resources/Azure.ResourceManager.Resources.Bicep/samples/Azure.ResourceManager.Resources.Bicep.Samples.csproj Define sample project references
sdk/resources/Azure.ResourceManager.Resources.Bicep/assets.json Configure asset publishing repository and prefixes
sdk/resources/Azure.ResourceManager.Resources.Bicep/api/Azure.ResourceManager.Resources.Bicep.netstandard2.0.cs Define .NET Standard API surface for Bicep client
sdk/resources/Azure.ResourceManager.Resources.Bicep/api/Azure.ResourceManager.Resources.Bicep.net8.0.cs Define .NET 8.0 API surface for Bicep client
sdk/resources/Azure.ResourceManager.Resources.Bicep/README.md Add documentation template with placeholders
sdk/resources/Azure.ResourceManager.Resources.Bicep/Directory.Build.props Import shared build props
sdk/resources/Azure.ResourceManager.Resources.Bicep/CHANGELOG.md Add initial changelog entry for 1.0.0-beta.1
sdk/resources/Azure.ResourceManager.Resources.Bicep/Azure.ResourceManager.Resources.Bicep.sln Add solution file including Bicep projects
Comments suppressed due to low confidence (2)

sdk/resources/Azure.ResourceManager.Resources.Bicep/README.md:3

  • Replace the placeholder on line 3 with a concise description of the Bicep management service to give users immediate context on what this library provides.
**[Describe the service briefly first.]**

sdk/resources/Azure.ResourceManager.Resources.Bicep/api/Azure.ResourceManager.Resources.Bicep.netstandard2.0.cs:11

  • Add unit or recorded tests that invoke BicepDecompileOperationGroup and its async overload to verify request construction and response handling for the new Bicep decompile operation.
        public static Azure.Response<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse> BicepDecompileOperationGroup(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent content, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }

Copy link

github-actions bot commented Jun 20, 2025

API Change Check

APIView identified API level changes in this PR and created the following API reviews

Azure.ResourceManager.Resources.Bicep

@anthony-c-martin anthony-c-martin force-pushed the ant/bicep branch 2 times, most recently from e6fa0c8 to 1c71864 Compare June 26, 2025 09:38
}
public static partial class ResourcesBicepExtensions
{
public static Azure.Response<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse> BicepDecompileOperationGroup(this Azure.ResourceManager.Resources.SubscriptionResource subscriptionResource, Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent content, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
Copy link
Member

Choose a reason for hiding this comment

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

I think it would be more reasonable if we rename this to DecompileBicep.

public static Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse DecompileOperationSuccessResponse(System.Collections.Generic.IEnumerable<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition> files = null, string entryPoint = null) { throw null; }
public static Azure.ResourceManager.Resources.Bicep.Models.FileDefinition FileDefinition(string path = null, string contents = null) { throw null; }
}
public partial class DecompileOperationContent : System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>
Copy link
Member

Choose a reason for hiding this comment

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

I think it would be more reasonable if we rename this to DecompileBicepContent.

string System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
System.BinaryData System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationContent>.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
}
public partial class DecompileOperationSuccessResponse : System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>
Copy link
Member

Choose a reason for hiding this comment

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

Usually types in .net SDK should not end with Response. Could we rename this to DecompileBicepSuccessResult?

string System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>.GetFormatFromOptions(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
System.BinaryData System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.DecompileOperationSuccessResponse>.Write(System.ClientModel.Primitives.ModelReaderWriterOptions options) { throw null; }
}
public partial class FileDefinition : System.ClientModel.Primitives.IJsonModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>, System.ClientModel.Primitives.IPersistableModel<Azure.ResourceManager.Resources.Bicep.Models.FileDefinition>
Copy link
Member

Choose a reason for hiding this comment

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

Shall we rename this to BicepFileDefinition?

Copy link
Member

@ArcturusZhang ArcturusZhang left a comment

Choose a reason for hiding this comment

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

Hi I left some renaming comments.
To resolve them, please open a PR in azure-rest-api-specs, and add some @@clientName statements to the client.tsp in your typespec.
We will review and merge that client renaming PR in the spec repo first.
In the meantime, could you update this PR by running the following command to apply those renamings to this PR so that we could see the change?

dotnet build /t:GenerateCode /p:LocalSpecRepo="The full directory path to your main.tsp"

Please note the path above should be the path of the directory of main.tsp, not the full filepath of main.tsp

@anthony-c-martin
Copy link
Member Author

Hi I left some renaming comments. To resolve them, please open a PR in azure-rest-api-specs, and add some @@clientName statements to the client.tsp in your typespec. We will review and merge that client renaming PR in the spec repo first. In the meantime, could you update this PR by running the following command to apply those renamings to this PR so that we could see the change?

dotnet build /t:GenerateCode /p:LocalSpecRepo="The full directory path to your main.tsp"

Please note the path above should be the path of the directory of main.tsp, not the full filepath of main.tsp

Thanks! One thing I realized after seeing your comment is that we've actually already released this library Azure.ResourceManager.Resources - see #44181. There were some slightly different rename suggestions on that PR - see:

DecompileOperationSuccessResponse: DecompileOperationSuccessResult
FileDefinition: DecompiledFileDefinition

This is being split out from the Azure.ResourceManager.Resources package into a separate package as part of Azure/azure-sdk#8768 (see Azure/azure-rest-api-specs#34190).

Should I go with the exact rename suggestions you've made here, or should I copy the previous rename suggestions?

@ArcturusZhang
Copy link
Member

ArcturusZhang commented Jul 1, 2025

@anthony-c-martin Ah I did not know that this was splitted from Resources.
If so, we really need to compare between those that have existed in Azure.ResourceManager.Resources and ensure they have the same name.
But before that, I think I should confirm this with Arthur since this is the first time that we do this splitting.

@anthony-c-martin
Copy link
Member Author

In the meantime, I've submitted Azure/azure-rest-api-specs#35643 to align with original naming

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants