Skip to content

Update ATS docs for polyglot APIs#17289

Open
sebastienros wants to merge 8 commits into
mainfrom
sebastienros/sebros-polyglot-api-docs
Open

Update ATS docs for polyglot APIs#17289
sebastienros wants to merge 8 commits into
mainfrom
sebastienros/sebros-polyglot-api-docs

Conversation

@sebastienros
Copy link
Copy Markdown
Contributor

Description

ATS now generates public API documentation for polyglot SDKs, so exported C# docs need language-neutral metadata instead of C#-specific XML shapes or AspireExport.Description strings. This updates the exported API docs to use XML/ATS documentation tags that can be consumed by TypeScript and other generated SDKs.

This change moves export descriptions into XML docs, adds targeted ats-summary, ats-param, and ats-returns overrides for polyglot-incompatible content, and teaches ATS references to accept compiler-safe cref="!:type:...", method, and field forms. It also adds analyzer rule ASPIREEXPORT015 so new [AspireExport(Description = ...)] usages fail during development, while preserving generated API baseline files.

Fixes: #17068

Checklist

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

Move AspireExport descriptions into XML/ATS documentation and add polyglot-safe ATS overrides for exported APIs.

Add analyzer coverage to prevent new AspireExport Description usage and update generated TypeScript snapshots.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings May 20, 2026 00:05
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 20, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 17289

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 17289"

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.

Pull request overview

Updates Aspire’s ATS-exported API documentation so it can be consumed by polyglot SDKs (TypeScript, etc.) by moving “human” docs out of AspireExport.Description and into XML docs with ATS override tags, and by extending ATS reference parsing to accept compiler-safe cref="!:..." forms.

Changes:

  • Replaces many [AspireExport(Description=...)] usages with XML doc overrides like <ats-summary>, <ats-param>, and <ats-returns>.
  • Updates ATS reference parsing to allow cref values prefixed with !: (so the C# compiler doesn’t validate the custom cref format).
  • Adds analyzer rule ASPIREEXPORT015 (and tests) to prevent new AspireExport.Description usages, and updates TypeScript codegen snapshots/tests accordingly.

Reviewed changes

Copilot reviewed 193 out of 195 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
tests/Aspire.Hosting.RemoteHost.Tests/AttributeDataReaderTests.cs Updates expectations to reflect AspireExport.Description no longer being used for docs.
tests/Aspire.Hosting.CodeGeneration.TypeScript.Tests/Snapshots/WithRedisSpecificCapability.verified.txt Snapshot updated for documentation moving from Description to XML-derived summary.
tests/Aspire.Hosting.CodeGeneration.TypeScript.Tests/Snapshots/WithPersistenceCapability.verified.txt Snapshot updated for documentation moving from Description to XML-derived summary.
tests/Aspire.Hosting.CodeGeneration.TypeScript.Tests/Snapshots/WithOptionalStringCapability.verified.txt Snapshot updated for documentation moving from Description to XML-derived summary.
tests/Aspire.Hosting.CodeGeneration.TypeScript.Tests/Snapshots/HostingAddContainerCapability.verified.txt Snapshot updated for new ATS doc formatting and ATS references.
tests/Aspire.Hosting.CodeGeneration.TypeScript.Tests/Snapshots/AddTestRedisCapability.verified.txt Snapshot updated to remove capability Description and rely on XML-derived docs.
tests/Aspire.Hosting.CodeGeneration.TypeScript.Tests/AtsTypeScriptCodeGeneratorTests.cs Aligns tests with Description being null and XML docs becoming the source of truth.
tests/Aspire.Hosting.Analyzers.Tests/AspireExportAnalyzerTests.cs Adds coverage for new ASPIREEXPORT015 and updates prior tests away from Description.
src/Aspire.Hosting/UserSecrets/IUserSecretsManager.cs Moves exported doc text into <ats-summary> and removes AspireExport.Description.
src/Aspire.Hosting/RequiredCommandResourceExtensions.cs Moves exported doc text into <ats-summary> and removes AspireExport.Description.
src/Aspire.Hosting/Publishing/BeforePublishEvent.cs Adds ATS parameter overrides using compiler-safe !:type: references.
src/Aspire.Hosting/Publishing/AfterPublishEvent.cs Adds ATS parameter overrides using compiler-safe !:type: references.
src/Aspire.Hosting/ProjectResourceBuilderExtensions.cs Replaces AspireExport.Description with ATS XML doc overrides on polyglot exports.
src/Aspire.Hosting/Pipelines/PipelineStepFactoryExtensions.cs Replaces AspireExport.Description with ATS XML doc overrides.
src/Aspire.Hosting/Pipelines/PipelineStepFactoryContext.cs Adds ATS summary override for polyglot docs.
src/Aspire.Hosting/Pipelines/PipelineStep.cs Moves export descriptions into ATS XML docs for projections and methods.
src/Aspire.Hosting/Pipelines/PipelineEditor.cs Moves export descriptions into ATS XML docs for polyglot callbacks.
src/Aspire.Hosting/Pipelines/PipelineConfigurationContext.cs Moves export descriptions into ATS XML docs for callback-facing projections.
src/Aspire.Hosting/Pipelines/DistributedApplicationPipelineExtensions.cs Moves export description into ATS XML docs.
src/Aspire.Hosting/ParameterResourceBuilderExtensions.cs Replaces AspireExport.Description with ATS summaries/returns for polyglot exports.
src/Aspire.Hosting/OtlpConfigurationExtensions.cs Replaces AspireExport.Description with ATS summary for polyglot export.
src/Aspire.Hosting/McpServerResourceBuilderExtensions.cs Adds ATS summary/returns and removes AspireExport.Description.
src/Aspire.Hosting/IDistributedApplicationBuilder.cs Adds ATS summary/returns for exported interface + Build() export.
src/Aspire.Hosting/ExternalServiceBuilderExtensions.cs Moves polyglot-export doc text into ATS XML docs.
src/Aspire.Hosting/ExecutableResourceBuilderExtensions.cs Adds ATS summary/returns/params and removes AspireExport.Description.
src/Aspire.Hosting/DistributedApplicationExecutionContextOptions.cs Adds ATS summary override for polyglot docs.
src/Aspire.Hosting/DistributedApplication.cs Adds ATS summary/returns and removes AspireExport.Description on polyglot exports.
src/Aspire.Hosting/ContainerRegistryResourceBuilderExtensions.cs Moves polyglot-export doc text into ATS XML docs.
src/Aspire.Hosting/Ats/UserSecretsExports.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting/Ats/NotificationExports.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting/Ats/ModelExports.cs Moves exported doc text into ATS XML docs (including polyglot-friendly returns text).
src/Aspire.Hosting/Ats/ExecutionConfigurationExports.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting/Ats/EventingExports.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting/Ats/CoreExports.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting/Ats/AspireExportAttribute.cs Re-documents Description as compatibility metadata and updates examples to ATS XML docs.
src/Aspire.Hosting/ApplicationModel/ResourceUrlsEditor.cs Moves exported doc text into ATS XML docs for editor methods/properties.
src/Aspire.Hosting/ApplicationModel/ResourceUrlsCallbackContext.cs Moves exported doc text into ATS XML docs for callback context projections.
src/Aspire.Hosting/ApplicationModel/ResourceStoppedEvent.cs Adds ATS param overrides for polyglot-friendly type references.
src/Aspire.Hosting/ApplicationModel/ResourceCommandAnnotation.cs Adds ATS summary overrides that reference related exported members.
src/Aspire.Hosting/ApplicationModel/ReferenceExpression.cs Moves exported doc text into ATS XML docs for methods/builders.
src/Aspire.Hosting/ApplicationModel/LogFacade.cs Moves exported doc text into ATS XML docs for logging facade.
src/Aspire.Hosting/ApplicationModel/InitializeResourceEvent.cs Adds ATS param overrides for polyglot-friendly type references.
src/Aspire.Hosting/ApplicationModel/ExecutionConfigurationBuilderExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting/ApplicationModel/EnvironmentEditor.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting/ApplicationModel/EnvironmentCallbackContext.cs Moves exported doc text into ATS XML docs for callback context projections.
src/Aspire.Hosting/ApplicationModel/EndpointReference.cs Moves exported doc text into ATS XML docs, adds ATS params/returns for polyglot types.
src/Aspire.Hosting/ApplicationModel/ConnectionStringAvailableEvent.cs Adds ATS summary/param overrides for polyglot-friendly type references.
src/Aspire.Hosting/ApplicationModel/CommandLineArgsEditor.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting/ApplicationModel/CommandLineArgsCallbackAnnotation.cs Moves exported doc text into ATS XML docs for callback context projections.
src/Aspire.Hosting/ApplicationModel/BeforeStartEvent.cs Adds ATS param overrides for polyglot-friendly type references.
src/Aspire.Hosting/ApplicationModel/BeforeResourceStartedEvent.cs Adds ATS param overrides for polyglot-friendly type references.
src/Aspire.Hosting/ApplicationModel/AspireStoreExtensions.cs Moves exported doc text into ATS XML docs and adds ATS param/returns overrides.
src/Aspire.Hosting/ApplicationModel/AfterResourcesCreatedEvent.cs Adds ATS param overrides for polyglot-friendly type references.
src/Aspire.Hosting.Yarp/ConfigurationBuilder/YarpCluster.cs Moves exported doc text into ATS XML docs for cluster configuration methods.
src/Aspire.Hosting.Yarp/ConfigurationBuilder/Transforms/RequestHeadersTransformExtensions.cs Moves exported doc text into ATS XML docs for transform helpers.
src/Aspire.Hosting.Yarp/ConfigurationBuilder/Transforms/QueryTransformExtensions.cs Moves exported doc text into ATS XML docs for transform helpers.
src/Aspire.Hosting.Yarp/ConfigurationBuilder/Transforms/PathTransformExtensions.cs Moves exported doc text into ATS XML docs with ATS returns references.
src/Aspire.Hosting.Yarp/ConfigurationBuilder/Transforms/HttpMethodTransformExtensions.cs Moves exported doc text into ATS XML docs for transform helpers.
src/Aspire.Hosting.Yarp/ConfigurationBuilder/Transforms/ForwardedTransformExtensions.cs Moves exported doc text into ATS XML docs for transform helpers.
src/Aspire.Hosting.Valkey/ValkeyBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS param/returns overrides.
src/Aspire.Hosting.Testing/DistributedApplicationHostingTestingExtensions.cs Moves exported doc text into ATS XML docs for testing exports.
src/Aspire.Hosting.Seq/SeqBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS param/returns overrides.
src/Aspire.Hosting.RemoteHost/README.md Updates docs to describe ATS XML doc override tags and compiler-safe !:... cref prefix.
src/Aspire.Hosting.RemoteHost/AtsCapabilityScanner.cs Strips the !: prefix when parsing ATS cref references.
src/Aspire.Hosting.RabbitMQ/RabbitMQBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS param/returns overrides.
src/Aspire.Hosting.Qdrant/QdrantBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS param/returns overrides.
src/Aspire.Hosting.PostgreSQL/PostgresDatabaseResource.cs Adds ATS summary override for a child resource type.
src/Aspire.Hosting.Orleans/OrleansServiceClientExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Oracle/OracleDatabaseResource.cs Adds ATS summary override for a child resource type.
src/Aspire.Hosting.OpenAI/OpenAIExtensions.cs Moves exported doc text into ATS XML docs and adds ATS param overrides.
src/Aspire.Hosting.Nats/NatsBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.MySql/MySqlDatabaseResource.cs Adds ATS summary override for a child resource type.
src/Aspire.Hosting.MongoDB/MongoDBDatabaseResource.cs Adds ATS summary override for a child resource type.
src/Aspire.Hosting.Milvus/MilvusDatabaseResource.cs Adds ATS summary override for a child resource type.
src/Aspire.Hosting.Maui/MauiWindowsExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Maui/MauiProjectResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Maui/MauiOtlpExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Maui/MauiMacCatalystExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Maui/MauiiOSExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Maui/MauiAndroidExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Kubernetes/KubernetesServiceExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Kubernetes/KubernetesResource.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Kubernetes/KubernetesNodePoolResource.cs Adds ATS summary override for child resource type and references related API.
src/Aspire.Hosting.Kubernetes/KubernetesManifestResource.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Kubernetes/KubernetesHelmChartExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Kubernetes/KubernetesAspireDashboardResourceBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Kubernetes/HelmChartOptions.cs Adds ATS summary override and moves method descriptions into ATS XML docs.
src/Aspire.Hosting.Keycloak/KeycloakResource.cs Adds ATS param override for polyglot-friendly null wording.
src/Aspire.Hosting.Kafka/KafkaBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Integration.Analyzers/AspireExportAnalyzer.Diagnostics.cs Adds ASPIREEXPORT015 descriptor and registers it as supported.
src/Aspire.Hosting.Integration.Analyzers/AnalyzerReleases.Unshipped.md Documents ASPIREEXPORT015 in analyzer release notes.
src/Aspire.Hosting.GitHub.Models/GitHubModelsExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Garnet/GarnetBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Foundry/HostedAgent/HostedAgentBuilderExtension.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Foundry/FoundryExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.EntityFrameworkCore/EFResourceBuilderExtensions.cs Moves exported doc text into ATS XML docs for polyglot export.
src/Aspire.Hosting.EntityFrameworkCore/EFMigrationResourceBuilderExtensions.cs Adds ATS param overrides and moves polyglot-export descriptions into ATS XML docs.
src/Aspire.Hosting.Docker/DockerComposeServiceExtensions.cs Moves exported doc text into ATS XML docs for polyglot export.
src/Aspire.Hosting.Docker/DockerComposeResourceExtensions.cs Moves exported doc text into ATS XML docs for polyglot exports.
src/Aspire.Hosting.Docker/DockerComposeAspireDashboardResourceBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.DevTunnels/DevTunnelResourceBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Browsers/BrowserLogsBuilderExtensions.cs Moves export description into ATS XML docs with detailed ATS param/returns overrides.
src/Aspire.Hosting.Azure/Provisioning/AzureProvisionerExtensions.cs Moves export description into ATS XML docs.
src/Aspire.Hosting.Azure/IAzureResource.cs Adds ATS summary override for polyglot docs.
src/Aspire.Hosting.Azure/ExistingAzureResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure/AzureUserAssignedIdentityExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure/AzureResourceInfrastructure.cs Adds ATS summary override for polyglot docs.
src/Aspire.Hosting.Azure/AzureResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure/AzureProvisioningResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure/AzureBicepResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure/AzureBicepResource.cs Adds ATS param override for polyglot-friendly type reference.
src/Aspire.Hosting.Azure.WebPubSub/AzureWebPubSubExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.Sql/AzureSqlDatabaseResource.cs Adds ATS summary override for child resource type.
src/Aspire.Hosting.Azure.SignalR/AzureSignalRExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.ServiceBus/AzureServiceBusTopicResource.cs Adds ATS summary override for exported resource type.
src/Aspire.Hosting.Azure.ServiceBus/AzureServiceBusSubscriptionResource.cs Adds ATS summary override for exported resource type.
src/Aspire.Hosting.Azure.ServiceBus/AzureServiceBusQueueResource.cs Adds ATS summary override for exported resource type.
src/Aspire.Hosting.Azure.Search/AzureSearchExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.Redis/AzureManagedRedisExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.PostgreSQL/AzurePostgresExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.OperationalInsights/AzureLogAnalyticsWorkspaceExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.Network/AzurePublicIPAddressExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.Network/AzurePrivateEndpointExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.Network/AzureNetworkSecurityPerimeterExtensions.cs Moves exported doc text into ATS XML docs and adds ATS param references.
src/Aspire.Hosting.Azure.Network/AzureNetworkSecurityGroupExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.Network/AzureNatGatewayExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.Kusto/AzureKustoReadWriteDatabaseResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS param override.
src/Aspire.Hosting.Azure.Kusto/AzureKustoReadWriteDatabaseResource.cs Adds ATS summary override for exported resource type.
src/Aspire.Hosting.Azure.Kusto/AzureKustoBuilderExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.Kubernetes/AzureKubernetesIngressExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.Kubernetes/AzureCertManagerExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.KeyVault/AzureKeyVaultResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.Functions/DurableTask/DurableTaskResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.Functions/AzureFunctionsProjectResourceExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.FrontDoor/AzureFrontDoorExtensions.cs Moves exported doc text into ATS XML docs with ATS returns overrides.
src/Aspire.Hosting.Azure.EventHubs/AzureEventHubResource.cs Adds ATS summary override for exported resource type.
src/Aspire.Hosting.Azure.CognitiveServices/AzureOpenAIExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.AppService/AzureAppServicePolyglotCustomization.cs Moves exported doc text into ATS XML docs for polyglot customization entrypoints.
src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.AppService/AzureAppServiceComputeResourceExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Azure.ApplicationInsights/AzureApplicationInsightsExtensions.cs Moves exported doc text into ATS XML docs with ATS params/returns overrides.
src/Aspire.Hosting.Azure.AppContainers/ContainerAppExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppProjectExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppPolyglotCustomization.cs Moves exported doc text into ATS XML docs for polyglot customization entrypoints.
src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppExecutableExtensions.cs Moves exported doc text into ATS XML docs.
src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppContainerExtensions.cs Moves exported doc text into ATS XML docs.

Comment thread src/Aspire.Hosting/DistributedApplication.cs Outdated
Comment thread src/Aspire.Hosting.Kubernetes/KubernetesNodePoolResource.cs Outdated
Comment thread src/Aspire.Hosting.Azure.Network/AzureNetworkSecurityPerimeterExtensions.cs Outdated
Comment thread src/Aspire.Hosting.Foundry/FoundryExtensions.cs Outdated
Comment thread src/Aspire.Hosting.Azure.SignalR/AzureSignalRExtensions.cs Outdated
Comment thread src/Aspire.Hosting/ApplicationModel/ResourceCommandAnnotation.cs Outdated
Comment thread src/Aspire.Hosting/ApplicationModel/ResourceCommandAnnotation.cs Outdated
sebastienros and others added 2 commits May 19, 2026 17:26
Use field and method ATS references for enum members and methods called out in review comments.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread src/Aspire.Hosting.Azure.AppConfiguration/AzureAppConfigurationExtensions.cs Outdated
Remove ATS summary, parameter, and return overrides when the standard XML documentation already provides the same content for polyglot docs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment on lines 140 to +147
/// <summary>
/// Adds a named volume for the data folder to an Azure App Configuration emulator resource.
/// </summary>
/// <param name="builder">The builder for the <see cref="AzureAppConfigurationEmulatorResource"/>.</param>
/// <param name="name">The name of the volume. Defaults to an auto-generated name based on the application and resource names.</param>
/// <returns>A builder for the <see cref="AzureAppConfigurationEmulatorResource"/>.</returns>
[AspireExport(Description = "Adds a data volume for the App Configuration emulator")]
/// <ats-summary>Adds a data volume for the App Configuration emulator</ats-summary>
[AspireExport]
Copy link
Copy Markdown
Member

@JamesNK JamesNK May 20, 2026

Choose a reason for hiding this comment

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

The summaries here are still very close:

Adds a named volume for the data folder to an Azure App Configuration emulator resource.
vs
Adds a data volume for the App Configuration emulator.

Why do they need to be different?

sebastienros and others added 2 commits May 19, 2026 18:37
Promote plain ATS summaries into the standard XML summary for internal polyglot-only exports and keep ATS summaries only when the standard summary uses references.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove ATS summary overrides that duplicate standard XML summaries closely enough for ATS to use the standard documentation directly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment on lines +203 to +205
/// Assigns the specified roles to the given resource, granting it the necessary permissions
/// on the target Azure App Configuration resource. This replaces the default role assignments for the resource.
/// Assigns App Configuration roles to a resource
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why is the shorter summary better? Is there a length limit in polygot scenarios?

Comment on lines 153 to +160
/// <summary>
/// Configures the host port for the Azure App Configuration emulator is exposed on instead of using randomly assigned port.
/// </summary>
/// <param name="builder">Builder for the Azure App Configuration emulator container</param>
/// <param name="port">The port to bind on the host. If <see langword="null"/> is used, a random port will be assigned.</param>
/// <returns>A reference to the <see cref="IResourceBuilder{T}"/>.</returns>
[AspireExport(Description = "Sets the host port for the App Configuration emulator")]
/// <ats-summary>Sets the host port for the App Configuration emulator</ats-summary>
[AspireExport]
Copy link
Copy Markdown
Member

@JamesNK JamesNK May 20, 2026

Choose a reason for hiding this comment

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

Why not have the summary/description be Configures the host port for the Azure App Configuration emulator is exposed on instead of using randomly assigned port.?

What I'm getting at with all these comments is I don't see why they'd ever be different. The only scenario I can think of is if the .NET doc comment summary references types with <see cerf="..." />. In those cases the type ref could be converted to text, or if that type isn't exposed as ATS then provide a ats-summary override.

internal static class AzureContainerAppPolyglotCustomization
{
[AspireExport("configureContainerAppScale", MethodName = "configureScale", Description = "Configures supported Azure Container App scale settings.")]
/// <ats-summary>Configures supported Azure Container App scale settings.</ats-summary>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If there is only an ats-summary, what about just having <Summary> tags? That way it works with .NET tooling.

Comment on lines -5 to +6
Description: Redis-specific configuration,
Documentation: {
Summary: Pattern 3: Tests concrete type with inheritance. This targets TestRedisResource directly (extends ContainerResource). Should expand to TestRedisResource AND any types that inherit from it.
Summary: Redis-specific configuration
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I assume this is ok and the description defaults to the summary if not provided?

sebastienros and others added 2 commits May 20, 2026 08:18
Restore original C# summaries for exported members that do not need ATS-specific summary text, and keep ATS summaries only when the original summary contains C# reference tags.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add targeted ATS documentation overrides where C# references and examples leaked into generated polyglot docs, and update generated codegen snapshots.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

Re-running the failed jobs in the CI workflow for this pull request because 1 job was identified as retry-safe transient failures in the CI run attempt.
GitHub was asked to rerun all failed jobs for that attempt, and the rerun is being tracked in the rerun attempt.
The job links below point to the failed attempt jobs that matched the retry-safe transient failure rules.

@github-actions
Copy link
Copy Markdown
Contributor

CLI E2E Tests unknown — 94 passed, 0 failed, 2 unknown (commit 48406bf)

View all recordings
Status Test Recording
AddPackageInteractiveWhileAppHostRunningDetached ▶️ View recording
AddPackageWhileAppHostRunningDetached ▶️ View recording
AgentCommands_AllHelpOutputs_AreCorrect ▶️ View recording
AgentInitCommand_DefaultSelection_InstallsDefaultSkills ▶️ View recording
AgentInitCommand_MigratesDeprecatedConfig ▶️ View recording
AllPublishMethodsBuildDockerImages ▶️ View recording
AspireAddPackageVersionToDirectoryPackagesProps ▶️ View recording
AspireInitSingleFileAppHostRunsViaDotnetRunAppHost ▶️ View recording
AspireInitWithExistingAppHostDirRecreatesMissingNuGetConfigAndPreservesFiles ▶️ View recording
AspireInitWithSolutionFileGeneratesAppHostThatBuildsAgainstChannelHive ▶️ View recording
AspireUpdateRemovesAppHostPackageVersionFromDirectoryPackagesProps ▶️ View recording
AspireUpdateRemovesOrphanAppHostPackageVersionWhenSdkAlreadyCurrent ▶️ View recording
Banner_DisplayedOnFirstRun ▶️ View recording
Banner_DisplayedWithExplicitFlag ▶️ View recording
Banner_NotDisplayedWithNoLogoFlag ▶️ View recording
CertificatesClean_RemovesCertificates ▶️ View recording
CertificatesTrust_WithNoCert_CreatesAndTrustsCertificate ▶️ View recording
CertificatesTrust_WithUntrustedCert_TrustsCertificate ▶️ View recording
ConfigSetGet_CreatesNestedJsonFormat ▶️ View recording
CreateAndRunAspireStarterProject ▶️ View recording
CreateAndRunAspireStarterProjectWithBundle ▶️ View recording
CreateAndRunEmptyAppHostProject ▶️ View recording
CreateAndRunJavaEmptyAppHostProject ▶️ View recording
CreateAndRunJsReactProject ▶️ View recording
CreateAndRunPythonReactProject ▶️ View recording
CreateAndRunTypeScriptEmptyAppHostProject ▶️ View recording
CreateAndRunTypeScriptStarterProject ▶️ View recording
CreateJavaAppHostWithViteApp ▶️ View recording
CreateTypeScriptAppHostWithViteApp_UsesConfiguredToolchain ▶️ View recording
DashboardRunWithOtelTracesReturnsNoTraces ▶️ View recording
DeployK8sBasicApiService ▶️ View recording
DeployK8sWithExternalHelmChart ▶️ View recording
DeployK8sWithGarnet ▶️ View recording
DeployK8sWithMongoDB ▶️ View recording
DeployK8sWithMySql ▶️ View recording
DeployK8sWithPostgres ▶️ View recording
DeployK8sWithRabbitMQ ▶️ View recording
DeployK8sWithRedis ▶️ View recording
DeployK8sWithSqlServer ▶️ View recording
DeployK8sWithValkey ▶️ View recording
DeployTypeScriptAppToKubernetes ▶️ View recording
DescribeCommandResolvesReplicaNames ▶️ View recording
DescribeCommandShowsRunningResources ▶️ View recording
DetachFormatJsonProducesValidJson ▶️ View recording
DetachFormatJsonProducesValidJsonWhenRestartingExistingInstance ▶️ View recording
DoListStepsShowsPipelineSteps ▶️ View recording
DocsCommand_RendersInteractiveMarkdownFromLocalSource ▶️ View recording
DoctorCommand_DetectsDeprecatedAgentConfig ▶️ View recording
DoctorCommand_TypeScriptAppHostReportsMissingConfiguredToolchain ▶️ View recording
DoctorCommand_WithSslCertDir_ShowsTrusted ▶️ View recording
DoctorCommand_WithoutSslCertDir_ShowsPartiallyTrusted ▶️ View recording
GlobalMigration_HandlesCommentsAndTrailingCommas ▶️ View recording
GlobalMigration_HandlesMalformedLegacyJson ▶️ View recording
GlobalMigration_PreservesAllValueTypes ▶️ View recording
GlobalMigration_SkipsWhenNewConfigExists ▶️ View recording
GlobalSettings_MigratedFromLegacyFormat ▶️ View recording
InitTypeScriptAppHost_AugmentsExistingViteRepoAtRoot ▶️ View recording
InteractiveCSharpInitCreatesExpectedFiles ▶️ View recording
InvalidAppHostPathWithComments_IsHealedOnRun ▶️ View recording
JavaScriptHostingApisRunFromTypeScriptAppHost ▶️ View recording
LatestCliCanStartStableChannelAppHost ▶️ View recording
LatestCliCanStartStableChannelTypeScriptAppHost ▶️ View recording
LegacySettingsMigration_AdjustsRelativeAppHostPath ▶️ View recording
LogLevelTrace_ProducesTraceEntriesInCliLogFile ▶️ View recording
LogsCommandShowsResourceLogs ▶️ View recording
OtelLogsReturnsStructuredLogsFromStarterApp ▶️ View recording
OtelLogsReturnsStructuredLogsFromStarterAppIsolated ▶️ View recording
PsCommandListsRunningAppHost ▶️ View recording
PsFormatJsonOutputsOnlyJsonToStdout ▶️ View recording
PublishWithConfigureEnvFileUpdatesEnvOutput ▶️ View recording
PublishWithDockerComposeServiceCallbackSucceeds ▶️ View recording
PublishWithoutOutputPathUsesAppHostDirectoryDefault ▶️ View recording
ResourceCommand_FailedExecution_DisplaysAppHostLogPathAndLogContainsEntries ▶️ View recording
ResourceCommand_FailsWhenInteractionServiceIsRequired ▶️ View recording
ResourceCommand_SetAndDeleteParameterUpdatesDescribeOutput ▶️ View recording
RestoreGeneratesSdkFiles ▶️ View recording
RestoreGeneratesSdkFiles_WithConfiguredToolchain ▶️ View recording
RestoreRefreshesGeneratedSdkAfterAddingIntegration ▶️ View recording
RestoreSupportsConfigOnlyHelperPackageAndCrossPackageTypes ▶️ View recording
RunFromParentDirectory_UsesExistingConfigNearAppHost ▶️ View recording
RunPublishFailureScenarioAsync ▶️ View recording
RunReportsSyntaxErrorsForDotNetAppHost ▶️ View recording
RunReportsSyntaxErrorsForTypeScriptAppHost ▶️ View recording
SecretCrudOnDotNetAppHost ▶️ View recording
SecretCrudOnTypeScriptAppHost ▶️ View recording
StagingChannel_ConfigureAndVerifySettings_ThenSwitchChannels ▶️ View recording
StartAndWaitForTypeScriptSqlServerAppHostWithNativeAssets ▶️ View recording
StartReportsSyntaxErrorsForDotNetAppHost ▶️ View recording
StartReportsSyntaxErrorsForTypeScriptAppHost ▶️ View recording
StopAllAppHostsFromAppHostDirectory ▶️ View recording
StopJavaPolyglotAppHostUsingApphostDirectory ▶️ View recording
StopNonInteractiveSingleAppHost ▶️ View recording
StopTypeScriptPolyglotAppHostUsingApphostDirectory ▶️ View recording
StopWithNoRunningAppHostExitsSuccessfully ▶️ View recording
UnAwaitedChainsCompileWithAutoResolvePromises ▶️ View recording
UpdateProjectChannelToStable_TypeScript_PicksUpStablePackages ▶️ View recording

📹 Recordings uploaded automatically from CI run #26173670340

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update API docs content for polyglot TypeScript support

3 participants