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;