Skip to content

Instantly share code, notes, and snippets.

@sebastienros
Last active March 6, 2026 00:01
Show Gist options
  • Select an option

  • Save sebastienros/0b8848d261711f9a9af7b0e030fa1788 to your computer and use it in GitHub Desktop.

Select an option

Save sebastienros/0b8848d261711f9a9af7b0e030fa1788 to your computer and use it in GitHub Desktop.
Aspire.Hosting AspireExport Annotation Audit Report

Aspire.Hosting — AspireExport Annotation Audit Report

PR: #14981 · Branch: sebros/polyglot-hostingrelease/13.2
Issue: #14978
Reviewed by: GPT-5.3-Codex and Claude Opus 4.6

Summary

Category Count
New [AspireExport] 56
New [AspireExportIgnore] 92
Total new annotations 148
Verified ✅ Correct 134
Verified ⚠️ Questionable (defensible) 7
Verified ❌ Wrong (needs revert) 5

Conclusion: Both models confirmed most annotations are correct. 5 annotations were identified as exportable:

  • WithContainerRegistryEndpointContainerRegistryResource already auto-registered via AddContainerRegistry
  • PublishAsDockerFile (2 overloads) — Action<IResourceBuilder<ContainerResource>> is an exported handle type
  • AddProject(name, path, Action<ProjectResourceOptions>)ProjectResourceOptions has only primitive properties
  • AddCSharpApp(name, path, Action<ProjectResourceOptions>) — same as above

Detailed Audit by File

CertificateAuthorityCollectionResourceExtensions.cs

Method Annotation Verdict Reason
AddCertificateAuthorityCollection(builder, name) [AspireExportIgnore] ⚠️ Defensible Signature is ATS-compatible (just strings) and the return type IResourceBuilder<CertificateAuthorityCollection> would auto-register the builder class. However, every companion With* method on this resource requires X509Certificate2 or similar incompatible types, so the resource would be unusable in polyglot hosts (zero configurable methods). Both models agree.
WithCertificateAuthority(builder, X509Certificate2) [AspireExportIgnore] ✅ Correct X509Certificate2 is not ATS-compatible. Both models agree.

ConnectionStringBuilderExtensions.cs

Method Annotation Verdict Reason
AddConnectionString(builder, name, resource?) [AspireExportIgnore] ✅ Correct Raw IResourceWithConnectionString interface param. A ReferenceExpression overload IS exported.
AddConnectionString(builder, name, Action<ReferenceExpressionBuilder>) [AspireExportIgnore] ✅ Correct ReferenceExpressionBuilder is not an exported callback context.
AddConnectionString(builder, name, ReferenceExpression) [AspireExport] ✅ Correct All params ATS-compatible.

ContainerRegistryResourceBuilderExtensions.cs

Method Annotation Verdict Reason
AddContainerRegistry(builder, name) [AspireExport] ✅ Correct String params only.
WithContainerRegistryEndpoint(builder, containerRegistry, endpointName) [AspireExportIgnore] ❌ Could be exported ContainerRegistryResource is already auto-registered via the exported AddContainerRegistry method. All params are ATS-compatible. Candidate for future export.

ContainerResourceBuilderExtensions.cs

Method Annotation Verdict Reason
AddContainer(builder, name, image) [AspireExport] ✅ Correct String params.
AddContainer(builder, name, image, tag) [AspireExport] ✅ Correct String params.
WithImageRegistry(builder, registry) [AspireExport] ✅ Correct String params.
WithImage(builder, image, tag) [AspireExport] ✅ Correct String params.
WithImageTag(builder, tag) [AspireExport] ✅ Correct String param.
WithImageSHA256(builder, sha256) [AspireExport] ✅ Correct String param.
WithDockerfile(builder, contextPath, dockerfilePath?, stage?) [AspireExport] ✅ Correct String params only (no callback).
WithBuildArg(builder, name, value) [AspireExport] ✅ Correct String params.
WithBuildArg(builder, name, ParameterResource) [AspireExport] ✅ Correct ParameterResource is ATS-compatible.
WithBuildSecret(builder, name, value) [AspireExport] ✅ Correct String params.
WithBuildSecret(builder, name, ParameterResource) [AspireExport] ✅ Correct ParameterResource is ATS-compatible.
WithVolume(builder, name, target, isReadOnly) [AspireExportIgnore] ✅ Correct Intentionally ignored — CoreExports.WithVolume provides the polyglot variant with reordered parameters.
WithVolume(builder, target, isReadOnly) [AspireExportIgnore] ✅ Correct Same — CoreExports version handles both named and anonymous volumes.
WithDockerfileFactory(builder, contextPath, Func<DockerfileFactoryContext, string>, stage?) [AspireExportIgnore] ✅ Correct DockerfileFactoryContext exposes IServiceProvider and IResource — .NET runtime types not usable from polyglot hosts. Callback-free WithDockerfile IS exported.
WithDockerfileFactory(builder, contextPath, Func<DockerfileFactoryContext, Task<string>>, stage?) [AspireExportIgnore] ✅ Correct Same — async variant.
WithBuildArg(builder, name, ExpressionInterpolatedStringHandler) [AspireExportIgnore] ✅ Correct Compiler-specific interpolation handler type.
WithBuildSecret(builder, name, ExpressionInterpolatedStringHandler) [AspireExportIgnore] ✅ Correct Same.
WithContainerRuntimeArgs(builder, Action<Context>) [AspireExportIgnore] ✅ Correct ContainerRuntimeArgsCallbackContext exposes IList<object> — not usable from polyglot hosts.
WithContainerRuntimeArgs(builder, Func<Context, Task>) [AspireExportIgnore] ✅ Correct Same.
WithBuildOptions(builder, Action<Context>) [AspireExportIgnore] ✅ Correct ContainerBuildOptionsCallbackContext exposes IResource and IServiceProvider — not usable from polyglot hosts.
WithBuildOptions(builder, Func<Context, Task>) [AspireExportIgnore] ✅ Correct Same.
WithPushOptions(builder, Action<Context>) [AspireExportIgnore] ✅ Correct ContainerImagePushOptionsCallbackContext exposes IResource — not usable from polyglot hosts.
WithPushOptions(builder, Func<Context, Task>) [AspireExportIgnore] ✅ Correct Same.

CustomResourceExtensions.cs

Method Annotation Verdict Reason
CreateResourceWithCustomState(builder, CustomResourceSnapshot) [AspireExportIgnore] ✅ Correct CustomResourceSnapshot contains ResourcePropertySnapshot.Value (object?) and ResourceCommandSnapshot.Parameter (object?) — untyped properties that can't be represented in statically-typed polyglot SDKs.

DistributedApplicationBuilderExtensions.cs

Method Annotation Verdict Reason
CreateResourceBuilder<T>(builder, name) [AspireExportIgnore] ✅ Correct Takes raw IResource generic constraint — low-level builder API for testing scenarios.
TryCreateResourceBuilder<T>(builder, name, out resourceBuilder) [AspireExportIgnore] ✅ Correct Uses out parameter which is not ATS-compatible.

DistributedApplicationEventingExtensions.cs

Method Annotation Verdict Reason
Subscribe<T, TEvent>(builder, Func<TEvent, CT, Task>) (6 overloads) [AspireExportIgnore] ✅ Correct Complex generic delegates with event/CancellationToken types not ATS-compatible.

DotnetToolResourceExtensions.cs

Method Annotation Verdict Reason
AddDotnetTool(builder, name, tool) [AspireExport] ✅ Correct String params.
WithDotnetToolVersion(builder, version) [AspireExport] ✅ Correct String param.
WithDotnetToolArgs(builder, args) [AspireExport] ✅ Correct String array.

ExecutableResourceBuilderExtensions.cs

Method Annotation Verdict Reason
AddExecutable(builder, name, command, wd, params string[]?) [AspireExport] ✅ Correct All string params.
AddExecutable(builder, name, command, wd, params object[]?) [AspireExportIgnore] ✅ Correct object[] is not ATS-compatible. String[] overload IS exported.
PublishAsDockerFile(builder, Action<IResourceBuilder<ContainerResource>>?) [AspireExportIgnore] ❌ Could be exported Action<IResourceBuilder<ContainerResource>> is ATS-compatible — IResourceBuilder<ContainerResource> is an exported handle type. The callback is optional.

ExternalServiceBuilderExtensions.cs

Method Annotation Verdict Reason
AddExternalService(builder, name) [AspireExport] ✅ Correct String param.
WithEndpoint(builder, host, port, scheme, endpointName) [AspireExport] ✅ Correct Primitives only.
WithHttpHealthCheck(builder, path?, statusCode?) [AspireExport] ✅ Correct Optional primitives.
WithHttpHealthCheck(builder, endpointReference, path?, statusCode?) [AspireExport] ✅ Correct EndpointReference is ATS-compatible.
WithHttpsHealthCheck(builder, ..., Func<X509Certificate2, bool>?) [AspireExportIgnore] ✅ Correct Func<X509Certificate2, bool> not ATS-compatible.
WithHttpsHealthCheck(builder, endpointRef, ..., Func<X509Certificate2, bool>?) [AspireExportIgnore] ✅ Correct Same.

McpServerResourceBuilderExtensions.cs

Method Annotation Verdict Reason
AddMcpServer(builder, name, command, wd?, args?) [AspireExport] ✅ Correct String params.
WithPromptCommand(builder, name, displayName) [AspireExport] ✅ Correct String params.
WithToolCommand(builder, name, displayName) [AspireExport] ✅ Correct String params.
WithHttpCommand(builder, name, displayName, Func<HttpRequestMessage>, options?) [AspireExportIgnore] ✅ Correct Func<HttpRequestMessage> is not ATS-compatible.

OtlpConfigurationExtensions.cs

Method Annotation Verdict Reason
WithOtlpExporter(builder) [AspireExport] ✅ Correct No params.
WithOtlpExporterProtocol(builder, protocol) [AspireExport] ✅ Correct OtlpExportProtocol enum is ATS-compatible.

ParameterResourceBuilderExtensions.cs

Method Annotation Verdict Reason
AddParameter(builder, name, secret) [AspireExport] ✅ Correct Primitives only.
AddParameter(builder, name, value, secret, persist) [AspireExport] ✅ Correct Primitives only.
AddParameter(builder, name, ParameterDefault, secret, persist) [AspireExportIgnore] ✅ Correct ParameterDefault is not exported.
AddParameter(builder, name, Func<ParameterResource, InteractionInput>, ...) [AspireExportIgnore] ✅ Correct Complex Func delegate.

Pipelines/PipelineStepFactoryExtensions.cs

Method Annotation Verdict Reason
All 6 CreateStep/ConfigurePipeline methods [AspireExportIgnore] ✅ Correct PipelineStep/PipelineConfigurationContext are infrastructure types not exported for ATS.

ProjectResourceBuilderExtensions.cs

Method Annotation Verdict Reason
AddProject(builder, name, projectPath, launchProfileName?) [AspireExport] ✅ Correct String params. This is the canonical polyglot overload.
WithLaunchProfile(builder, launchProfileName) [AspireExport] ✅ Correct String param.
WithDisabledForwardedHeaders(builder) [AspireExport] ✅ Correct No params.
AddProject<TProject>(builder, name) [AspireExportIgnore] ✅ Correct IProjectMetadata generic constraint is .NET-specific.
AddProject<TProject>(builder, name, Action<Options>) [AspireExportIgnore] ✅ Correct IProjectMetadata generic constraint is .NET-specific (even though ProjectResourceOptions is ATS-compatible).
AddProject(builder, name, projectPath, Action<ProjectResourceOptions>) [AspireExportIgnore] ❌ Could be exported ProjectResourceOptions has only primitive properties (string?, bool, bool) — fully ATS-compatible as a callback context with ExposeProperties = true.
AddProject(builder, name, projectPath) [AspireExportIgnore] ✅ Correct Intentional API consolidation — 3-param overload with launchProfileName IS exported.
AddCSharpApp(builder, name, path, Action<ProjectResourceOptions>) [AspireExportIgnore] ❌ Could be exported Same as AddProjectProjectResourceOptions is ATS-compatible.
PublishAsDockerFile(builder, Action<IResourceBuilder<ContainerResource>>?) [AspireExportIgnore] ❌ Could be exported Action<IResourceBuilder<ContainerResource>> is ATS-compatible — IResourceBuilder<ContainerResource> is an exported handle.
WithDebugging(builder, preferLocalTools) [AspireExportIgnore] ⚠️ Defensible Signature is ATS-compatible (just bool), but debugging .NET projects from a polyglot host is meaningless. Both models agree this is a reasonable design exclusion.

RequiredCommandResourceExtensions.cs

Method Annotation Verdict Reason
WithRequiredCommand(builder, command, displayName?, Func<Context, Task>?) [AspireExportIgnore] ✅ Correct RequiredCommandValidationContext exposes IServiceProvider — not usable from polyglot hosts.
WithRequiredCommand(builder, command, displayName?) [AspireExport] ✅ Correct String params only (no callback).

ResourceBuilderExtensions.cs (largest file — ~65 annotations)

Exported Methods (✅ all verified correct)

Method Capability ID Verdict
WithEnvironment(builder, name, string) withEnvironment
WithEnvironment(builder, name, ParameterResource) withEnvironmentFromParameter
WithEnvironment(builder, name, EndpointReference) withEnvironmentFromEndpoint
WithEnvironment(builder, name, ReferenceExpression) withEnvironmentFromExpression
WithReference(builder, IResourceBuilder<T>) withReference
WithReference(builder, IResourceBuilder<T>, envPrefix) withReferenceUri
WithReference(builder, IResourceBuilder<ExternalService>) withReferenceExternalService
WithReference(builder, EndpointReference) withReferenceEndpoint
WithReference(builder, string) withServiceReferenceNamed
WithArgs(builder, params string[]) withArgs
WithEndpoint(builder, port?, targetPort?, scheme?, name?, env?, isProxied, isExternal?, protocol?) withEndpoint
WithHttpsEndpoint(builder, port?, targetPort?, name?, env?, isProxied, isExternal?) withHttpsEndpoint
WithHttpEndpoint(builder, port?, targetPort?, name?, env?, isProxied, isExternal?) withHttpEndpoint
WithOtlpExporter(builder) withOtlpExporter
WithLifetime(builder, ResourceLifetime) withLifetime
WithExternalHttpEndpoints(builder) withExternalHttpEndpoints
ExcludeFromManifest(builder) excludeFromManifest
WaitFor(builder, dependency) waitFor
WaitFor(builder, dependency, WaitBehavior) waitForWithBehavior
WaitForStart(builder, dependency) N/A
WaitForStart(builder, dependency, WaitBehavior) N/A
WithAnnotation(builder, annotation, behavior?) withAnnotation
WithContainerFiles(builder, sourceConfig) withContainerFiles
PublishWithContainerFiles(builder) publishWithContainerFiles
WithEntrypoint(builder, entrypoint) withEntrypoint
WithBindMount(builder, source, target, isReadOnly) withBindMount
WithCertificateTrustScope(builder, scope) withCertificateTrustScope

Ignored Methods

Method Verdict Reason
WithEnvironment(builder, name, ExpressionInterpolatedStringHandler) ✅ Correct Compiler-specific type.
WithEnvironment(builder, name, Func<string>) ✅ Correct Raw Func<string> delegate.
WithEnvironment(builder, name, IResourceBuilder<ExternalServiceResource>) ✅ Correct Specialized overload; withReference covers this use case.
WithEnvironment<T, TValue>(builder, name, TValue, format) ✅ Correct Open generic TValue.
WithArgs(builder, params object[]) ✅ Correct object[] not ATS-compatible. String[] overload IS exported.
WithManifestPublishingCallback (2 overloads) ✅ Correct ManifestPublishingContext exposes Utf8JsonWriter (for streaming JSON into the deployment manifest) and DistributedApplicationExecutionContext — .NET runtime types not usable from polyglot hosts.
WithReferenceRelationship (2 overloads) ✅ Correct Takes raw IResource — not ATS-compatible.
WithReferenceEnvironment(builder, flags) ⚠️ Defensible ReferenceEnvironmentInjectionFlags is an enum (ATS-compatible), but this is an advanced configuration API not intended for polyglot use.
WithEndpoint(builder, ..., Action<EndpointAnnotation>) ✅ Correct EndpointAnnotation has read-only properties AllocatedEndpointSnapshot (ValueSnapshot<AllocatedEndpoint>) and AllAllocatedEndpoints (NetworkEndpointSnapshotList) that are not ATS-compatible. Settable properties are all primitives but callback-free variant already covers them.
WithEndpoint(builder, endpointName, Action<EndpointAnnotation>, createIfNotExists) ✅ Correct Same — EndpointAnnotation has incompatible read-only runtime state properties.
WithHttpsEndpoint(builder, ..., Action<EndpointAnnotation>) ✅ Correct Same — callback-free variant IS exported.
WithHttpEndpoint(builder, ..., Action<EndpointAnnotation>) ✅ Correct Same.
WithContainerFilesMountSource(builder, Func<Context, Task>) ✅ Correct ContainerFileSystemCallbackContext exposes IServiceProvider and IResource — not usable from polyglot hosts.
WithContainerFileItems(builder, params ContainerFileSystemItem[]) ✅ Correct ContainerFileSystemItem is an abstract class hierarchy (ContainerFile, ContainerDirectory, ContainerOpenSSLCertificateFile) with recursive Entries property — polymorphic types not supported by ATS.
WithHttpProbe(builder, ProbeType type, string? path, ...) [AspireExport] via internal stub ✅ Fixed
WithHttpProbe(builder, ProbeType, Func<EndpointReference>?, ...) ✅ Correct Func<EndpointReference> is not ATS-compatible.
WithTcpHealthCheck (2 overloads) ✅ Correct Func<EndpointReference> not ATS-compatible.
WithNetworkAlias(builder, alias, NetworkIdentifier?) ⚠️ Defensible NetworkIdentifier is a simple record(string Value) wrapper, but it's not exported. Could potentially be mapped to string?.
WithAddExistingResource(builder, T resource) ✅ Correct Raw IResource instance.
WithHttpsCertificate (5 overloads) ✅ Correct Various X509/StoreName/callback context types.
WithHttpsCertificateForEndpoints(builder, ...) ✅ Correct HttpsEndpointUpdateCallbackContext exposes IServiceProvider and IResource — not usable from polyglot hosts.
WithDeveloperCertificateForwardingToContainer(builder, ...) ⚠️ Defensible List<string> endpoint names param — List<T> may not be ATS-compatible vs string[]. Also certificate-specific infrastructure.
WithCertificateTrustScope(builder, Action<Context>) ✅ Correct CertificateTrustConfigurationCallbackAnnotationContext exposes IResource — not usable from polyglot hosts. Callback-free version IS exported.

Utils/ImageNameGenerator.cs

Method Annotation Verdict Reason
GenerateImageName(...) [AspireExportIgnore] ✅ Correct Internal utility, not a builder API.
GenerateImageTag(...) [AspireExportIgnore] ✅ Correct Same.

ResourceExtensions.cs

Method Annotation Verdict Reason
TryGetContainerImageName(resource, out string?) [AspireExportIgnore] ✅ Correct out parameter.
TryGetLastAnnotation<T>(resource, out T?) [AspireExportIgnore] ✅ Correct out param + open generic.

Questionable Items — Analysis

Seven methods were flagged as ⚠️ QUESTIONABLE by one or both models. Here's why each is correctly ignored:

# Method Why Questionable Why Correctly Ignored
1 AddCertificateAuthorityCollection Signature is just strings Return type would auto-register the builder class, but all companion With* methods require X509Certificate2 — resource would be unusable (zero configurable methods)
2 WithDebugging Just a bool param Debugging .NET projects from polyglot hosts is meaningless
3 WithReferenceEnvironment ReferenceEnvironmentInjectionFlags is an enum Advanced internal configuration; enum not intentionally part of public ATS surface
4 WithNetworkAlias NetworkIdentifier is a simple record NetworkIdentifier is not exported as an ATS type
5 WithDeveloperCertificateForwardingToContainer List<string> could map to string[] Certificate infrastructure; List<T> not supported (only T[])
6 WithEnvironment(ExternalService) IResourceBuilder<ExternalServiceResource> is compatible Covered by withReference; redundant API surface
7 WithHttpsCertificate(StoreName, StoreLocation) Both are enums Certificate store APIs are Windows-specific; enums not exported

Model Agreement Summary

Area Codex 5.3 Opus 4.6 Agreement
Type-incompatible ignores (delegates, X509, out params, etc.) All ✅ All ✅ Full
Design-policy ignores (not intended for polyglot) Some ❌/⚠️ All ✅/⚠️ Partial — Codex was more aggressive about wanting to export design-excluded APIs
WithEndpoint callback vs no-callback variants Codex initially ❌ (didn't check both overloads) After verification: Full — callback-free variant IS exported
AddExecutable string[] vs object[] Codex initially ❌ (didn't check both overloads) ⚠️ After verification: Full — string[] IS exported
Reserved keyword type on WithHttpProbe ⚠️ ⚠️ Full — both acknowledge it's a codegen limitation

Future Work (Not Blocking)

These are potential improvements identified during the audit that could expand polyglot coverage in future releases:

  1. WithHttpProbe — Add parameter name remapping support in code generators ✅ Fixed via internal stub with renamed probeType parameter
  2. WithNetworkAlias — Export NetworkIdentifier or map it to string? to enable this API
  3. AddCertificateAuthorityCollection — Export the resource type to enable CA management in polyglot hosts
  4. WithDockerfile callback variant — If IResourceBuilder<T> callbacks become ATS-compatible, this could be exported
  5. List<string> support — Add ATS support for List<T> (map to arrays) to enable APIs like WithDeveloperCertificateForwardingToContainer
  6. WithContainerRegistryEndpoint — Already exportable (ContainerRegistryResource is auto-registered via AddContainerRegistry)
  7. PublishAsDockerFile with callbackAction<IResourceBuilder<ContainerResource>> is ATS-compatible since IResourceBuilder<ContainerResource> is an exported handle (2 overloads: ExecutableResourceBuilderExtensions + ProjectResourceBuilderExtensions)
  8. AddProject/AddCSharpApp with Action<ProjectResourceOptions>ProjectResourceOptions has only string?, bool, bool properties — fully ATS-compatible with ExposeProperties = true

Integration Coverage Status

Scan of all Aspire.Hosting.* packages showing which need an [AspireExport]/[AspireExportIgnore] coverage pass.

Needs Coverage

Package Methods Exported Ignored Uncovered
Aspire.Hosting.Azure 31 1 0 30
Aspire.Hosting.Azure.AIFoundry 5 0 0 5
Aspire.Hosting.Azure.AppService 10 0 0 10
Aspire.Hosting.Azure.ContainerRegistry 3 2 0 1
Aspire.Hosting.Azure.Kusto 4 0 0 4
Aspire.Hosting.Azure.Redis 6 4 0 2
Aspire.Hosting.Azure.Sql 6 4 0 2
Aspire.Hosting.Docker 7 1 0 6
Aspire.Hosting.JavaScript 12 8 0 4
Aspire.Hosting.Keycloak 4 0 0 4
Aspire.Hosting.Kubernetes 2 0 0 2
Aspire.Hosting.Maui 1 0 0 1
Aspire.Hosting.Qdrant 5 4 0 1
Total 96 24 0 72

Complete Coverage

Package Methods Exported Ignored
Aspire.Hosting 198 180 98
Aspire.Hosting.Azure.AppConfiguration 5 6 1
Aspire.Hosting.Azure.AppContainers 13 13 1
Aspire.Hosting.Azure.ApplicationInsights 1 2 2
Aspire.Hosting.Azure.CognitiveServices 4 5 4
Aspire.Hosting.Azure.CosmosDB 14 13 1
Aspire.Hosting.Azure.EventHubs 10 9 4
Aspire.Hosting.Azure.Functions 4 2 2
Aspire.Hosting.Azure.KeyVault 8 7 3
Aspire.Hosting.Azure.OperationalInsights 1 1 0
Aspire.Hosting.Azure.PostgreSQL 5 6 0
Aspire.Hosting.Azure.Search 1 2 1
Aspire.Hosting.Azure.ServiceBus 15 14 12
Aspire.Hosting.Azure.SignalR 3 2 2
Aspire.Hosting.Azure.Storage 16 16 1
Aspire.Hosting.Azure.WebPubSub 3 5 1
Aspire.Hosting.DevTunnels 5 6 5
Aspire.Hosting.Garnet 6 5 2
Aspire.Hosting.GitHub.Models 4 4 2
Aspire.Hosting.Kafka 5 6 0
Aspire.Hosting.Milvus 7 8 0
Aspire.Hosting.MongoDB 9 9 2
Aspire.Hosting.MySql 10 11 0
Aspire.Hosting.Nats 6 5 2
Aspire.Hosting.OpenAI 5 5 0
Aspire.Hosting.Oracle 5 8 0
Aspire.Hosting.Orleans 0 16 11
Aspire.Hosting.PostgreSQL 14 16 1
Aspire.Hosting.Python 3 9 0
Aspire.Hosting.RabbitMQ 5 6 0
Aspire.Hosting.Redis 12 14 0
Aspire.Hosting.Seq 2 4 1
Aspire.Hosting.SqlServer 7 9 0
Aspire.Hosting.Valkey 0 5 1
Aspire.Hosting.Yarp 6 33 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment