Remove [Experimental] from IInteractionService and related types#18032
Merged
Conversation
Contributor
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 18032Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 18032" |
davidfowl
reviewed
Jun 9, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Removes the [Experimental("ASPIREINTERACTION001")] designation from IInteractionService and related interaction/command/input types, and cleans up repository-wide suppressions that are now unnecessary.
Changes:
- Removed
[Experimental(...)]from interaction-related public APIs (includingIInteractionService, input models, interaction options/results, and command argument metadata). - Removed
#pragma warning disable/restore ASPIREINTERACTION001(and related suppressions) across product code, tests, playgrounds, and extension E2E scaffolding. - Updated generated API surface (
src/Aspire.Hosting/api/Aspire.Hosting.cs) to reflect the de-experimentalized APIs.
Reviewed changes
Copilot reviewed 72 out of 72 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| tests/Shared/TestInteractionService.cs | Removes ASPIREINTERACTION001 pragma suppression around test interaction types. |
| tests/Aspire.Hosting.Tests/WithProcessCommandTests.cs | Removes ASPIREINTERACTION001 suppression now that interaction inputs are no longer experimental. |
| tests/Aspire.Hosting.Tests/WithHttpCommandTests.cs | Removes ASPIREINTERACTION001 suppression for command-argument interaction inputs. |
| tests/Aspire.Hosting.Tests/VersionChecking/VersionCheckServiceTests.cs | Removes ASPIREINTERACTION001 suppression. |
| tests/Aspire.Hosting.Tests/ResourceCommandServiceTests.cs | Removes ASPIREINTERACTION001 suppression for resource command argument metadata. |
| tests/Aspire.Hosting.Tests/RequiredCommandAnnotationTests.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| tests/Aspire.Hosting.Tests/Publishing/PipelineActivityReporterTests.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| tests/Aspire.Hosting.Tests/Orchestrator/ParameterProcessorTests.cs | Removes ASPIREINTERACTION001 suppression while keeping other experimental suppressions. |
| tests/Aspire.Hosting.Tests/Orchestrator/ApplicationOrchestratorTests.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| tests/Aspire.Hosting.Tests/InteractionServiceTests.cs | Removes ASPIREINTERACTION001 suppression for interaction service tests. |
| tests/Aspire.Hosting.Tests/Dcp/DcpHostNotificationTests.cs | Removes ASPIREINTERACTION001 suppression while keeping other experimental suppressions. |
| tests/Aspire.Hosting.Tests/Dashboard/DashboardServiceTests.cs | Removes ASPIREINTERACTION001 suppression. |
| tests/Aspire.Hosting.Tests/Backchannel/AuxiliaryBackchannelRpcTargetTests.cs | Removes ASPIREINTERACTION001 suppression. |
| tests/Aspire.Hosting.Tests/AddParameterTests.cs | Removes ASPIREINTERACTION001 suppression around custom-input/interaction-related tests. |
| tests/Aspire.Hosting.Foundry.Tests/HostedAgentExtensionTests.cs | Removes ASPIREINTERACTION001 suppression. |
| tests/Aspire.Hosting.EntityFrameworkCore.Tests/EFMigrationCommandsTests.cs | Removes localized ASPIREINTERACTION001 suppression around command argument assertions. |
| tests/Aspire.Hosting.Browsers.Tests/BrowserLogsBuilderExtensionsTests.cs | Removes ASPIREINTERACTION001 suppressions and related localized pragma blocks. |
| tests/Aspire.Hosting.Azure.Tests/ProvisioningContextProviderTests.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| tests/Aspire.Hosting.Azure.Tests/AzureDeployerTests.cs | Removes ASPIREINTERACTION001 suppression from test file header. |
| tests/Aspire.Cli.Tests/Commands/PublishCommandPromptingIntegrationTests.cs | Removes ASPIREINTERACTION001 suppressions and associated suppression attribute/import. |
| tests/Aspire.Cli.EndToEnd.Tests/ResourceCommandTests.cs | Removes ASPIREINTERACTION001 pragma from generated AppHost snippet content. |
| src/Aspire.Hosting/VersionChecking/VersionCheckService.cs | Removes ASPIREINTERACTION001 pragma suppression. |
| src/Aspire.Hosting/ResourceBuilderExtensions.cs | Removes ASPIREINTERACTION001 suppressions around command-argument validation/flow. |
| src/Aspire.Hosting/Publishing/PipelineExecutor.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting/Pipelines/PipelineActivityReporter.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting/Pipelines/DistributedApplicationPipeline.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting/ParameterResourceBuilderExtensions.cs | Removes [Experimental(...)] from WithCustomInput and polyglot counterpart. |
| src/Aspire.Hosting/Orchestrator/ParameterProcessor.cs | Removes [Experimental(...)] from ParameterProcessor and updates warning suppressions accordingly. |
| src/Aspire.Hosting/Orchestrator/ApplicationOrchestrator.cs | Removes ASPIREINTERACTION001 pragma suppression at file scope. |
| src/Aspire.Hosting/InteractionService.cs | Removes ASPIREINTERACTION001 pragma suppression and the now-unneeded diagnostic ID constant. |
| src/Aspire.Hosting/IInteractionService.cs | Removes [Experimental(...)] from IInteractionService and all related interaction/input/option/result types. |
| src/Aspire.Hosting/DistributedApplicationBuilder.cs | Removes ASPIREINTERACTION001 suppression around DI registrations for interaction-related services. |
| src/Aspire.Hosting/Dcp/DcpHost.cs | Removes ASPIREINTERACTION001 suppression while keeping other experimental suppressions. |
| src/Aspire.Hosting/Dashboard/DashboardServiceData.cs | Removes ASPIREINTERACTION001 pragma suppression. |
| src/Aspire.Hosting/Dashboard/DashboardService.cs | Removes localized ASPIREINTERACTION001 pragma around mapping helpers. |
| src/Aspire.Hosting/Backchannel/AuxiliaryBackchannelRpcTarget.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting/Ats/ParameterCustomInputOptions.cs | Removes [Experimental(...)] from ATS DTO used for polyglot custom inputs. |
| src/Aspire.Hosting/ApplicationModel/ResourceNotificationService.cs | Removes ASPIREINTERACTION001 suppression around command snapshot creation. |
| src/Aspire.Hosting/ApplicationModel/ResourceCommandService.cs | Removes ASPIREINTERACTION001 pragma suppression at file scope. |
| src/Aspire.Hosting/ApplicationModel/ResourceCommandAnnotation.cs | Removes ASPIREINTERACTION001 pragma suppression and [Experimental(...)] from argument/validation-related properties. |
| src/Aspire.Hosting/ApplicationModel/RequiredCommandValidator.cs | Removes ASPIREINTERACTION001 suppression around command validation code. |
| src/Aspire.Hosting/ApplicationModel/ProcessCommandResultContext.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting/ApplicationModel/ParameterResource.cs | Removes localized ASPIREINTERACTION001 suppression around input creation helper. |
| src/Aspire.Hosting/ApplicationModel/InputGeneratorAnnotation.cs | Removes [Experimental(...)] from input generator annotation type. |
| src/Aspire.Hosting/ApplicationModel/HttpCommandContext.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting/ApplicationModel/CustomResourceSnapshot.cs | Removes localized ASPIREINTERACTION001 suppression around Arguments property. |
| src/Aspire.Hosting/ApplicationModel/CommandOptions.cs | Removes ASPIREINTERACTION001 pragma suppression and [Experimental(...)] from command-argument metadata. |
| src/Aspire.Hosting/api/Aspire.Hosting.cs | Updates public API surface to remove Experimental("ASPIREINTERACTION001") annotations for interaction-related APIs. |
| src/Aspire.Hosting.Kubernetes/Deployment/HelmDeploymentEngine.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting.Foundry/PromptAgent/PromptAgentBuilderExtensions.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting.Foundry/Aspire.Hosting.Foundry.csproj | Removes ASPIREINTERACTION001 from NoWarn list. |
| src/Aspire.Hosting.EntityFrameworkCore/EFResourceBuilderExtensions.cs | Removes ASPIREINTERACTION001 suppressions around EF command wrapper code/docs. |
| src/Aspire.Hosting.Docker/DockerComposeEnvironmentResource.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting.DevTunnels/LoggedOutNotificationManager.cs | Removes ASPIREINTERACTION001 suppressions around interaction usage. |
| src/Aspire.Hosting.DevTunnels/DevTunnelResourceBuilderExtensions.cs | Removes ASPIREINTERACTION001 suppressions around health check registration. |
| src/Aspire.Hosting.DevTunnels/DevTunnelLoginManager.cs | Removes ASPIREINTERACTION001 suppressions around interaction usage. |
| src/Aspire.Hosting.DevTunnels/DevTunnelHealthCheck.cs | Removes ASPIREINTERACTION001 suppressions around interaction usage. |
| src/Aspire.Hosting.Browsers/BrowserLogsConfigurationManager.cs | Removes ASPIREINTERACTION001 suppression while keeping other experimental suppressions. |
| src/Aspire.Hosting.Browsers/BrowserLogsBuilderExtensions.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting.Azure/Provisioning/Internal/RunModeProvisioningContextProvider.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting.Azure/Provisioning/Internal/PublishModeProvisioningContextProvider.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting.Azure/Provisioning/Internal/BaseProvisioningContextProvider.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting.Azure/AzureEnvironmentResource.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| src/Aspire.Hosting.Azure.Kusto/AzureKustoBuilderExtensions.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| playground/Stress/Stress.AppHost/InteractionPages.cs | Adds interaction-page registration helpers for the stress AppHost (uses IInteractionService page APIs). |
| playground/Stress/Stress.AppHost/InteractionCommands.cs | Removes ASPIREINTERACTION001 suppression around stress interaction commands. |
| playground/Stress/Stress.AppHost/CommandResources.cs | Removes ASPIREINTERACTION001 suppression around resource command argument exercises. |
| playground/Stress/Stress.AppHost/AppHost.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| playground/publishers/Publishers.AppHost/DistributedApplicationBuilderExtensions.cs | Removes ASPIREINTERACTION001 suppression at file scope. |
| playground/ParameterEndToEnd/ParameterEndToEnd.AppHost/AppHost.cs | Removes ASPIREINTERACTION001 suppression around WithCustomInput usage. |
| playground/ExternalServices/ExternalServices.AppHost/AppHost.cs | Removes ASPIREINTERACTION001 suppression around WithCustomInput usage. |
| extension/scripts/run-e2e.js | Removes ASPIREINTERACTION001 pragma from generated AppHost used by extension E2E runs. |
davidfowl
approved these changes
Jun 9, 2026
davidfowl
left a comment
Contributor
There was a problem hiding this comment.
The api/* folders are auto updated no need to fix them.
f52cbeb to
09b6ffe
Compare
09b6ffe to
f0bfac7
Compare
Remove the ASPIREINTERACTION001 experimental diagnostic from all interaction service types including IInteractionService, InteractionInput, InteractionInputCollection, InputType, InputLoadOptions, LoadInputContext, InteractionOptions, MessageBoxInteractionOptions, NotificationInteractionOptions, InputsDialogInteractionOptions, InputsDialogValidationContext, MessageIntent, InteractionResult<T>, InputGeneratorAnnotation, and ParameterProcessor. Also removes all #pragma warning disable/restore ASPIREINTERACTION001 from consuming code across src/, tests/, playground/, and extension/ files.
f0bfac7 to
57a07d9
Compare
Contributor
|
❓ CLI E2E Tests unknown — 113 passed, 0 failed, 2 unknown (commit View all recordings
📹 Recordings uploaded automatically from CI run #27245909199 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Remove the
[Experimental("ASPIREINTERACTION001")]attribute fromIInteractionServiceand all related interaction types. These APIs have been stable and widely consumed internally for multiple releases and no longer need the experimental designation.Types un-experimentalized:
IInteractionServiceInteractionInput,InteractionInputCollection,InputTypeInputLoadOptions,LoadInputContextInteractionOptions,MessageBoxInteractionOptions,NotificationInteractionOptions,InputsDialogInteractionOptionsInputsDialogValidationContextMessageIntentInteractionResult<T>InputGeneratorAnnotationParameterProcessorCommandOptions.Arguments,CommandOptions.ValidateArgumentsResourceCommandAnnotation.Arguments,ResourceCommandAnnotation.ValidateArgumentsParameterResourceBuilderExtensions.WithCustomInputAlso removes all
#pragma warning disable/restore ASPIREINTERACTION001suppressions from 70+ files across src/, tests/, playground/, and extension/.Breaking changes
Users who previously suppressed
ASPIREINTERACTION001will get a build warning about an unknown pragma warning. They should remove their#pragma warning disable ASPIREINTERACTION001lines.Checklist