Repository navigation
Graduate deployment-state APIs (ASPIREPIPELINES002) to stable - #20816
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20816Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20816" |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟢 Approval recommended
The changes are limited to experimental-attribute and suppression cleanup, with no signature changes, runtime changes, or unresolved issues.
0 open findings
What changed in this PR
Graduates Aspire’s deployment-state APIs to stable so consumers no longer need to suppress ASPIREPIPELINES002.
Changes:
- Removes experimental attributes from
IDeploymentStateManagerandDeploymentStateSection. - Removes 42 obsolete suppressions and two unused imports.
- Preserves API signatures, runtime behavior, and generated baselines.
| File | Description |
|---|---|
| tests/Shared/InMemoryDeploymentStateManager.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Tests/Publishing/PipelineExecutorTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Tests/Publishing/DeploymentStateManagerTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Tests/Pipelines/DistributedApplicationPipelineTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Tests/Orchestrator/ParameterProcessorTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Tests/Orchestrator/ApplicationOrchestratorTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Kubernetes.Tests/KubernetesDeployTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Docker.Tests/DockerComposeTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/ProvisioningTestHelpers.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/ProvisioningContextProviderTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/DefaultTokenCredentialProviderTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/BicepUtilitiesTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/AzureSandboxesTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/AzureProvisionerOptionsTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/AzureEnvironmentResourceExtensionsTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/AzureDeployerTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Tests/AzureBicepProvisionerTests.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Kubernetes.Tests/AzureKubernetesTestBuilder.cs | Removes obsolete suppression. |
| tests/Aspire.Hosting.Azure.Kubernetes.Tests/AzureKubernetesInfrastructureTests.cs | Removes obsolete suppression. |
| src/Aspire.Hosting/Publishing/PipelineExecutor.cs | Removes obsolete suppression. |
| src/Aspire.Hosting/Pipelines/Internal/FileDeploymentStateManager.cs | Removes obsolete suppression. |
| src/Aspire.Hosting/Pipelines/Internal/DeploymentStateManagerBase.cs | Removes obsolete suppression. |
| src/Aspire.Hosting/Pipelines/IDeploymentStateManager.cs | Removes experimental attribute and unused import. |
| src/Aspire.Hosting/Pipelines/DistributedApplicationPipeline.cs | Removes obsolete suppression. |
| src/Aspire.Hosting/Pipelines/DeploymentStateSection.cs | Removes experimental attribute and unused import. |
| src/Aspire.Hosting/Orchestrator/ParameterProcessor.cs | Removes obsolete suppression. |
| src/Aspire.Hosting/DistributedApplicationBuilder.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Kubernetes/KubernetesPublishingContext.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Kubernetes/KubernetesHelmChartExtensions.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Kubernetes/Deployment/HelmDeploymentEngine.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Docker/DockerComposeEnvironmentResource.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/Provisioning/Provisioners/AzureProvisioner.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/Provisioning/Internal/RunModeProvisioningContextProvider.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/Provisioning/Internal/PublishModeProvisioningContextProvider.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/Provisioning/Internal/BaseProvisioningContextProvider.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/Provisioning/BicepUtilities.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/AzureResourcePreparer.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/AzureProvisioningController.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure/AzureBicepResource.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure.Sandboxes/AzureSandboxEndpointPropertyValueProvider.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure.Sandboxes/AzureSandboxContainerDeployment.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure.Kubernetes/AzureKubernetesEnvironmentResource.cs | Removes obsolete suppression. |
| src/Aspire.Hosting.Azure.Kubernetes/AzureKubernetesEnvironmentResource.AksPipeline.cs | Removes obsolete suppression. |
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
James Newton-King (JamesNK)
left a comment
There was a problem hiding this comment.
Reviewed all 44 changed files, surrounding consumer context, diagnostic declarations, and relevant existing regression coverage. No concrete issues found. Local source audit confirmed only two experimental attributes, 42 matching suppressions, two unused imports, and blank lines are removed; runtime code and signatures are unchanged. git diff --check passed. GitHub CI reports 282 passed checks and 16 skipped. Author reports 86 deployment-state tests and consumer builds passing on macOS arm64; I did not run local builds/tests or live deployments.
c6e1be9 to
7343dc1
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟢 Approval recommended
The changes are limited to experimental attributes, matching suppressions, and unused imports, with no runtime changes or unresolved issues.
0 open findings
🧠 Review effort: Balanced
Give feedback about Copilot approvals in this survey to enter a drawing for a $150 gift card.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
7343dc1 to
3b5aafd
Compare
This comment has been minimized.
This comment has been minimized.
3b5aafd to
d5bfd70
Compare
This comment has been minimized.
This comment has been minimized.
d5bfd70 to
310a7cd
Compare
This comment has been minimized.
This comment has been minimized.
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
Remove ASPIREPIPELINES002 experimental attributes and obsolete consumer suppressions without changing deployment-state contracts or behavior. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Remove the suppression introduced by the Azure environment graduation on main while preserving the other diagnostic suppressions and all runtime behavior. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
a054149 to
acdad6d
Compare
Tests selector50 / 98 PR test projects · 4 PR jobs, from 45 changed files. Selected PR test projects (50 / 98)
Selected PR jobs (4)
How these were chosen — grouped by what changed
🔧 show 36
🔧 🧪 🔧 🔧 🔧 🔧 📦 affected project 🔧 🔧 🔧 🔧 🔧 🔧 🔧 🔧 🔧 🔧 🔧 🔧 🔧 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 🧪 Job reasons
Selection computed for commit |
…17.0 Documents the graduation of IDeploymentStateManager and DeploymentStateSection from experimental to stable, matching microsoft/aspire#20816. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Pull request created: #1856
|
|
📝 Documentation has been drafted in microsoft/aspire.dev#1856 targeting Triggered signals (3): Updated 3 docs pages to reflect that
Note This draft PR needs human review before merging. |

Description
Consumers can use
IDeploymentStateManagerandDeploymentStateSectionwithout suppressingASPIREPIPELINES002. This is an independent, attribute-only graduation frommain, not an API redesign or removal.Re-enumerated all source declarations on main: the only two declarations carrying this diagnostic are
src/Aspire.Hosting/Pipelines/IDeploymentStateManager.csandsrc/Aspire.Hosting/Pipelines/DeploymentStateSection.cs. Remove both experimental attributes and 43 obsolete warning suppressions across Hosting, shared deployment infrastructure, Azure/AKS/Sandboxes, Kubernetes, Docker, and their tests. This includes the suppression inAzureEnvironmentResourceintroduced on main during the subsequent Azure environment graduation. Remove the two now-unused attribute imports and associated blank lines.All signatures, defaults, implementations, persistence/migration behavior, optimistic concurrency, mutable section/version semantics, and lifetime behavior are unchanged. In particular,
AcquireCurrentSectionAsyncand its compatibility default remain intact; current-state reads still do not fall back to legacy state in the file-backed implementation. Other experimental families and suppressions are unchanged relative to main. Generatedapi/*.csbaselines and package/version settings are untouched. No relevant documentation, configuration, or playground suppressions explicitly referencing this diagnostic were found outside generated baselines. No new dependencies.User-facing usage
Existing usage no longer requires an
ASPIREPIPELINES002suppression:Validation
./restore.sh— passed, 0 warnings/errors.MSBUILDTERMINALLOGGER=false dotnet test --project tests/Aspire.Hosting.Tests/Aspire.Hosting.Tests.csproj --no-launch-profile -- --filter-class '*.DeploymentStateManagerTests' --filter-not-trait 'quarantined=true' --filter-not-trait 'outerloop=true'— passed, 86 tests, 0 failures/skips; rerun after the final suppression cleanup. Covers manager/section behavior, current-state versus legacy fallback, persistence/migration, scalar/nested data, version conflicts, and concurrent saves/deletes.MSBUILDTERMINALLOGGER=false dotnet build tests/Aspire.Hosting.Azure.Kubernetes.Tests/Aspire.Hosting.Azure.Kubernetes.Tests.csproj --no-restore --verbosity quiet— passed, 0 warnings/errors; rerun after the final suppression cleanup. Also builds referenced Azure tests and Azure/Sandboxes production consumers.MSBUILDTERMINALLOGGER=false dotnet build tests/Aspire.Hosting.Docker.Tests/Aspire.Hosting.Docker.Tests.csproj --no-restore --verbosity quiet— passed before the final Azure-only suppression cleanup, 0 warnings/errors.MSBUILDTERMINALLOGGER=false dotnet build tests/Aspire.Hosting.Kubernetes.Tests/Aspire.Hosting.Kubernetes.Tests.csproj --no-restore --verbosity quiet— passed before the final Azure-only suppression cleanup, 0 warnings/errors.git diff --check— passed. Updated source-text audit confirmed that changes across 45 files are restricted to the two attributes, 43 matching suppressions, two unused imports, and associated blank lines; all other nonblank source text is unchanged. Repository-wide tracked-file search found no remaining diagnostic references outside generated API baselines.Validation was performed on macOS arm64. Full suites, live cloud/container deployments, and other operating systems were not run; consumer projects were built rather than running their complete integration suites. Existing regression tests are reused; no new tests are needed for attribute/suppression-only changes.
Fixes # (issue)
Checklist
<remarks />and<code />elements on your triple slash comments?