diff --git a/src/Aspire.Hosting.Azure.AppContainers/Aspire.Hosting.Azure.AppContainers.csproj b/src/Aspire.Hosting.Azure.AppContainers/Aspire.Hosting.Azure.AppContainers.csproj index 85c1808b635..e91cd7848a8 100644 --- a/src/Aspire.Hosting.Azure.AppContainers/Aspire.Hosting.Azure.AppContainers.csproj +++ b/src/Aspire.Hosting.Azure.AppContainers/Aspire.Hosting.Azure.AppContainers.csproj @@ -19,7 +19,6 @@ - diff --git a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppExtensions.cs b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppExtensions.cs index 50e0b2fc4a0..8e6e6ed7f37 100644 --- a/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppExtensions.cs +++ b/src/Aspire.Hosting.Azure.AppContainers/AzureContainerAppExtensions.cs @@ -99,7 +99,9 @@ public static IResourceBuilder AddAzureCon infra.Add(identity); ContainerRegistryService? containerRegistry = null; +#pragma warning disable ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. if (appEnvResource.TryGetLastAnnotation(out var registryReferenceAnnotation) && registryReferenceAnnotation.Registry is AzureProvisioningResource registry) +#pragma warning restore ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. { containerRegistry = (ContainerRegistryService)registry.AddAsExistingResource(infra); } diff --git a/src/Aspire.Hosting.Azure.AppService/Aspire.Hosting.Azure.AppService.csproj b/src/Aspire.Hosting.Azure.AppService/Aspire.Hosting.Azure.AppService.csproj index b004368b6a6..68ee5c9e03e 100644 --- a/src/Aspire.Hosting.Azure.AppService/Aspire.Hosting.Azure.AppService.csproj +++ b/src/Aspire.Hosting.Azure.AppService/Aspire.Hosting.Azure.AppService.csproj @@ -17,7 +17,6 @@ - diff --git a/src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentExtensions.cs b/src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentExtensions.cs index 2b2ba91b41f..c9ad2dc78d5 100644 --- a/src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentExtensions.cs +++ b/src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentExtensions.cs @@ -59,7 +59,9 @@ public static IResourceBuilder AddAzureAppSe infra.Add(identity); ContainerRegistryService? containerRegistry = null; +#pragma warning disable ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. if (resource.TryGetLastAnnotation(out var registryReferenceAnnotation) && registryReferenceAnnotation.Registry is AzureProvisioningResource registry) +#pragma warning restore ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. { containerRegistry = (ContainerRegistryService)registry.AddAsExistingResource(infra); } diff --git a/src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentResource.cs b/src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentResource.cs index e3984cd743c..75c156a05cc 100644 --- a/src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentResource.cs +++ b/src/Aspire.Hosting.Azure.AppService/AzureAppServiceEnvironmentResource.cs @@ -3,7 +3,7 @@ using Aspire.Hosting.ApplicationModel; -namespace Aspire.Hosting.Azure.AppService; +namespace Aspire.Hosting.Azure; /// /// Represents an Azure App Service Environment resource. @@ -33,4 +33,4 @@ public class AzureAppServiceEnvironmentResource(string name, Action ReferenceExpression.Create($"{ContainerRegistryUrl}"); -} \ No newline at end of file +} diff --git a/src/Aspire.Hosting.Azure.ContainerRegistry/AzureContainerRegistryExtensions.cs b/src/Aspire.Hosting.Azure.ContainerRegistry/AzureContainerRegistryExtensions.cs index a5eb8f5c0cc..87c196d50e4 100644 --- a/src/Aspire.Hosting.Azure.ContainerRegistry/AzureContainerRegistryExtensions.cs +++ b/src/Aspire.Hosting.Azure.ContainerRegistry/AzureContainerRegistryExtensions.cs @@ -5,7 +5,6 @@ using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Azure; -using Aspire.Hosting.Azure.ContainerRegistry; using Azure.Provisioning; using Azure.Provisioning.ContainerRegistry; diff --git a/src/Aspire.Hosting.Azure.ContainerRegistry/AzureContainerRegistryResource.cs b/src/Aspire.Hosting.Azure.ContainerRegistry/AzureContainerRegistryResource.cs index 14ebff81217..f3bd0d2c233 100644 --- a/src/Aspire.Hosting.Azure.ContainerRegistry/AzureContainerRegistryResource.cs +++ b/src/Aspire.Hosting.Azure.ContainerRegistry/AzureContainerRegistryResource.cs @@ -1,4 +1,4 @@ -#pragma warning disable ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. +#pragma warning disable ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. @@ -7,7 +7,7 @@ using Azure.Provisioning.ContainerRegistry; using Azure.Provisioning.Primitives; -namespace Aspire.Hosting.Azure.ContainerRegistry; +namespace Aspire.Hosting.Azure; /// /// Represents an Azure Container Registry resource. diff --git a/src/Aspire.Hosting.Azure.Storage/AzureBlobStorageContainerResource.cs b/src/Aspire.Hosting.Azure.Storage/AzureBlobStorageContainerResource.cs index 42f21a482d3..82bd663340c 100644 --- a/src/Aspire.Hosting.Azure.Storage/AzureBlobStorageContainerResource.cs +++ b/src/Aspire.Hosting.Azure.Storage/AzureBlobStorageContainerResource.cs @@ -4,10 +4,9 @@ using System.Diagnostics.CodeAnalysis; using System.Runtime.CompilerServices; using Aspire.Hosting.ApplicationModel; -using Aspire.Hosting.Azure; using Azure.Provisioning; -namespace Aspire.Hosting; +namespace Aspire.Hosting.Azure; /// /// A resource that represents an Azure Blob Storage container. diff --git a/src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs b/src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs index 6634f258e5d..56fd31577e7 100644 --- a/src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs +++ b/src/Aspire.Hosting.Azure/AzureEnvironmentResourceExtensions.cs @@ -2,9 +2,9 @@ // The .NET Foundation licenses this file to you under the MIT license. using System.Diagnostics.CodeAnalysis; -using Aspire.Hosting; using Aspire.Hosting.ApplicationModel; -using Aspire.Hosting.Azure; + +namespace Aspire.Hosting.Azure; /// /// Provides extension methods for adding Azure environment resources to the application model. diff --git a/src/Aspire.Hosting.Azure/AzurePublishingContext.cs b/src/Aspire.Hosting.Azure/AzurePublishingContext.cs index 1baec4d8056..7850afdfb37 100644 --- a/src/Aspire.Hosting.Azure/AzurePublishingContext.cs +++ b/src/Aspire.Hosting.Azure/AzurePublishingContext.cs @@ -30,7 +30,7 @@ public sealed class AzurePublishingContext( /// /// Gets the main.bicep infrastructure for the distributed application. /// - public Infrastructure MainInfrastructure = new() + public Infrastructure MainInfrastructure { get; } = new() { TargetScope = DeploymentScope.Subscription }; diff --git a/src/Aspire.Hosting.Docker/DockerComposeEnvironmentResource.cs b/src/Aspire.Hosting.Docker/DockerComposeEnvironmentResource.cs index e07b0880197..96dd04d6622 100644 --- a/src/Aspire.Hosting.Docker/DockerComposeEnvironmentResource.cs +++ b/src/Aspire.Hosting.Docker/DockerComposeEnvironmentResource.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. #pragma warning disable ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. +#pragma warning disable ASPIREPUBLISHERS001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Docker.Resources; @@ -53,9 +54,7 @@ public DockerComposeEnvironmentResource(string name) : base(name) private Task PublishAsync(PublishingContext context) { -#pragma warning disable ASPIREPUBLISHERS001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. var imageBuilder = context.Services.GetRequiredService(); -#pragma warning restore ASPIREPUBLISHERS001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. var dockerComposePublishingContext = new DockerComposePublishingContext( context.ExecutionContext, diff --git a/src/Aspire.Hosting.Kubernetes/KubernetesEnvironmentResource.cs b/src/Aspire.Hosting.Kubernetes/KubernetesEnvironmentResource.cs index 573f906f3b4..9024e4b7692 100644 --- a/src/Aspire.Hosting.Kubernetes/KubernetesEnvironmentResource.cs +++ b/src/Aspire.Hosting.Kubernetes/KubernetesEnvironmentResource.cs @@ -2,6 +2,7 @@ // The .NET Foundation licenses this file to you under the MIT license. #pragma warning disable ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. +#pragma warning disable ASPIREPUBLISHERS001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. using Aspire.Hosting.ApplicationModel; diff --git a/src/Aspire.Hosting/ApplicationModel/ContainerRegistryReferenceAnnotation.cs b/src/Aspire.Hosting/ApplicationModel/ContainerRegistryReferenceAnnotation.cs index e2312d81041..b37d334497a 100644 --- a/src/Aspire.Hosting/ApplicationModel/ContainerRegistryReferenceAnnotation.cs +++ b/src/Aspire.Hosting/ApplicationModel/ContainerRegistryReferenceAnnotation.cs @@ -1,8 +1,8 @@ -#pragma warning disable ASPIRECOMPUTE001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. - // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Diagnostics.CodeAnalysis; + namespace Aspire.Hosting.ApplicationModel; /// @@ -12,6 +12,7 @@ namespace Aspire.Hosting.ApplicationModel; /// Initializes a new instance of the class. /// /// The container registry resource. +[Experimental("ASPIRECOMPUTE001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public class ContainerRegistryReferenceAnnotation(IContainerRegistry registry) : IResourceAnnotation { /// diff --git a/src/Aspire.Hosting/ApplicationModel/PublishingCallbackAnnotation.cs b/src/Aspire.Hosting/ApplicationModel/PublishingCallbackAnnotation.cs index 2392a632606..388df44579e 100644 --- a/src/Aspire.Hosting/ApplicationModel/PublishingCallbackAnnotation.cs +++ b/src/Aspire.Hosting/ApplicationModel/PublishingCallbackAnnotation.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +using System.Diagnostics.CodeAnalysis; + namespace Aspire.Hosting.ApplicationModel; /// @@ -10,10 +12,11 @@ namespace Aspire.Hosting.ApplicationModel; /// Initializes a new instance of the class. /// /// The publishing callback. +[Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed class PublishingCallbackAnnotation(Func callback) : IResourceAnnotation { /// /// The publishing callback. /// public Func Callback { get; } = callback ?? throw new ArgumentNullException(nameof(callback)); -} \ No newline at end of file +} diff --git a/src/Aspire.Hosting/CompatibilitySuppressions.xml b/src/Aspire.Hosting/CompatibilitySuppressions.xml index 52f5c27f48e..2330b952fa0 100644 --- a/src/Aspire.Hosting/CompatibilitySuppressions.xml +++ b/src/Aspire.Hosting/CompatibilitySuppressions.xml @@ -1,6 +1,14 @@  + + + CP0001 + T:Aspire.Hosting.PublisherDistributedApplicationBuilderExtensions + lib/net8.0/Aspire.Hosting.dll + lib/net8.0/Aspire.Hosting.dll + true + CP0002 @@ -16,4 +24,4 @@ lib/net8.0/Aspire.Hosting.dll true - \ No newline at end of file + diff --git a/src/Aspire.Hosting/PublisherDistributedApplicationBuilderExtensions.cs b/src/Aspire.Hosting/PublisherDistributedApplicationBuilderExtensions.cs index bd05a1cc379..0cab33c4ae7 100644 --- a/src/Aspire.Hosting/PublisherDistributedApplicationBuilderExtensions.cs +++ b/src/Aspire.Hosting/PublisherDistributedApplicationBuilderExtensions.cs @@ -1,7 +1,6 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System.Diagnostics.CodeAnalysis; using Aspire.Hosting.Publishing; using Microsoft.Extensions.DependencyInjection; @@ -10,7 +9,7 @@ namespace Aspire.Hosting; /// /// Extensions for adding a publisher to the distributed application. /// -public static class PublisherDistributedApplicationBuilderExtensions +internal static class PublisherDistributedApplicationBuilderExtensions { /// /// Adds a publisher to the distributed application for use by the Aspire CLI. @@ -20,8 +19,7 @@ public static class PublisherDistributedApplicationBuilderExtensions /// The . /// The name of the publisher. /// Callback to configure options for the publisher. - [Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] - public static IDistributedApplicationBuilder AddPublisher(this IDistributedApplicationBuilder builder, string name, Action? configureOptions = null) + internal static IDistributedApplicationBuilder AddPublisher(this IDistributedApplicationBuilder builder, string name, Action? configureOptions = null) where TPublisher : class, IDistributedApplicationPublisher where TPublisherOptions : class { @@ -46,4 +44,4 @@ public static IDistributedApplicationBuilder AddPublisherThe logger for publishing operations. /// The cancellation token for the publishing operation. /// The output path for publishing artifacts. +[Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public sealed class PublishingContext( DistributedApplicationModel model, DistributedApplicationExecutionContext executionContext, diff --git a/src/Aspire.Hosting/ResourceBuilderExtensions.cs b/src/Aspire.Hosting/ResourceBuilderExtensions.cs index d9d1bf81aa9..00803332bd8 100644 --- a/src/Aspire.Hosting/ResourceBuilderExtensions.cs +++ b/src/Aspire.Hosting/ResourceBuilderExtensions.cs @@ -291,6 +291,7 @@ public static IResourceBuilder WithManifestPublishingCallback(this IResour /// The resource builder. /// Callback method which takes a which can be used to publish assets. /// + [Experimental("ASPIREPUBLISHERS001", UrlFormat = "https://aka.ms/aspire/diagnostics/{0}")] public static IResourceBuilder WithPublishingCallback(this IResourceBuilder builder, Func callback) where T : IResource { ArgumentNullException.ThrowIfNull(builder); diff --git a/tests/Aspire.Hosting.Azure.Tests/AzureAppServiceTests.cs b/tests/Aspire.Hosting.Azure.Tests/AzureAppServiceTests.cs index dd8cbc95a33..4d63ef26201 100644 --- a/tests/Aspire.Hosting.Azure.Tests/AzureAppServiceTests.cs +++ b/tests/Aspire.Hosting.Azure.Tests/AzureAppServiceTests.cs @@ -4,7 +4,6 @@ using System.Text.Json.Nodes; using Aspire.Hosting.ApplicationModel; -using Aspire.Hosting.Azure.AppService; using Aspire.Hosting.Utils; using Microsoft.Extensions.DependencyInjection; using static Aspire.Hosting.Utils.AzureManifestUtils; diff --git a/tests/Aspire.Hosting.Azure.Tests/AzureContainerAppsTests.cs b/tests/Aspire.Hosting.Azure.Tests/AzureContainerAppsTests.cs index 411b9098faa..8333145e98d 100644 --- a/tests/Aspire.Hosting.Azure.Tests/AzureContainerAppsTests.cs +++ b/tests/Aspire.Hosting.Azure.Tests/AzureContainerAppsTests.cs @@ -7,7 +7,6 @@ using System.Text.Json.Nodes; using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Azure.AppContainers; -using Aspire.Hosting.Azure.ContainerRegistry; using Aspire.Hosting.Utils; using Azure.Provisioning; using Azure.Provisioning.AppContainers; diff --git a/tests/Aspire.Hosting.Azure.Tests/AzureContainerRegistryTests.cs b/tests/Aspire.Hosting.Azure.Tests/AzureContainerRegistryTests.cs index 8d1db25f912..efaac70e7ad 100644 --- a/tests/Aspire.Hosting.Azure.Tests/AzureContainerRegistryTests.cs +++ b/tests/Aspire.Hosting.Azure.Tests/AzureContainerRegistryTests.cs @@ -5,7 +5,6 @@ using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Azure.AppContainers; -using Aspire.Hosting.Azure.ContainerRegistry; using Aspire.Hosting.Utils; using Azure.Provisioning.ContainerRegistry; using Microsoft.Extensions.DependencyInjection; diff --git a/tests/Aspire.Hosting.Azure.Tests/AzureUserAssignedIdentityTests.cs b/tests/Aspire.Hosting.Azure.Tests/AzureUserAssignedIdentityTests.cs index c2055df88aa..47822caf90f 100644 --- a/tests/Aspire.Hosting.Azure.Tests/AzureUserAssignedIdentityTests.cs +++ b/tests/Aspire.Hosting.Azure.Tests/AzureUserAssignedIdentityTests.cs @@ -5,7 +5,6 @@ using Aspire.Hosting.ApplicationModel; using Aspire.Hosting.Azure.AppContainers; -using Aspire.Hosting.Azure.ContainerRegistry; using Aspire.Hosting.Utils; using Azure.Provisioning.ContainerRegistry; using Microsoft.Extensions.DependencyInjection; diff --git a/tests/Aspire.Hosting.Tests/DistributedApplicationRunnerTests.cs b/tests/Aspire.Hosting.Tests/DistributedApplicationRunnerTests.cs index 4b164f9defc..2bd1ed43956 100644 --- a/tests/Aspire.Hosting.Tests/DistributedApplicationRunnerTests.cs +++ b/tests/Aspire.Hosting.Tests/DistributedApplicationRunnerTests.cs @@ -14,9 +14,7 @@ public void EnsureFailingPublishResultsInRunMethodThrowing() { var args = new[] { "--publisher", "explodingpublisher" }; using var builder = TestDistributedApplicationBuilder.Create(outputHelper, args); -#pragma warning disable ASPIREPUBLISHERS001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. builder.AddPublisher("explodingpublisher"); -#pragma warning restore ASPIREPUBLISHERS001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. using var app = builder.Build(); var ex = Assert.Throws(app.Run); @@ -38,4 +36,4 @@ public Task PublishAsync(DistributedApplicationModel model, CancellationToken ca internal sealed class ExplodingPublisherOptions { -} \ No newline at end of file +} diff --git a/tests/Aspire.Hosting.Tests/PublishingTests.cs b/tests/Aspire.Hosting.Tests/PublishingTests.cs index 91ea6687d3c..2f06015f9b7 100644 --- a/tests/Aspire.Hosting.Tests/PublishingTests.cs +++ b/tests/Aspire.Hosting.Tests/PublishingTests.cs @@ -1,6 +1,8 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. +#pragma warning disable ASPIREPUBLISHERS001 // Type is for evaluation purposes only and is subject to change or removal in future updates. Suppress this diagnostic to proceed. + using Aspire.Hosting.Utils; using Xunit;