Skip to content

Graduate deployment-state APIs (ASPIREPIPELINES002) to stable - #20816

Merged
Mitch Denny (mitchdenny) merged 2 commits into
mainfrom
mitchdenny-stable-deployment-state-apis
Oct 9, 2026
Merged

Mitch Denny (mitchdenny) merged 2 commits into
mainfrom
mitchdenny-stable-deployment-state-apis

Conversation

@mitchdenny

@mitchdenny Mitch Denny (mitchdenny) commented Oct 8, 2026 •

Copy link
Copy Markdown
Member

Description

Consumers can use IDeploymentStateManager and DeploymentStateSection without suppressing ASPIREPIPELINES002. This is an independent, attribute-only graduation from main, 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.cs and src/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 in AzureEnvironmentResource introduced 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, AcquireCurrentSectionAsync and 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. Generated api/*.cs baselines 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 ASPIREPIPELINES002 suppression:

var section = await stateManager.AcquireSectionAsync("Parameters");
section.Data["key1"] = "value1";
await stateManager.SaveSectionAsync(section);

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

  • Is this feature complete?
    • Yes. Ready to ship.
    • No. Follow-up changes expected.
  • Are you including unit tests for the changes and scenario tests if relevant?
    • Yes
    • No
  • Did you add public API?
    • Yes
      • If yes, did you have an API Review for it?
        • Yes
        • No
      • Did you add <remarks /> and <code /> elements on your triple slash comments?
        • Yes
        • No
    • No
  • Does the change make any security assumptions or guarantees?
    • Yes
      • If yes, have you done a threat model and had a security review?
        • Yes
        • No
    • No

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20816

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20816"

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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 IDeploymentStateManager and DeploymentStateSection.
  • 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.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 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.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt.

@mitchdenny
Mitch Denny (mitchdenny) force-pushed the mitchdenny-stable-deployment-state-apis branch from 7343dc1 to 3b5aafd Compare October 8, 2026 22:45
@aspire-repo-bot
aspire-repo-bot Bot requested a balanced review from Copilot October 8, 2026 22:48
@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes consistently remove the diagnostic while preserving API signatures and behavior, with no unresolved issues found.

0 open findings

🧠 Review effort: Balanced

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

One stale suppression remains and the newly stable API still inaccurately documents its mutable state as immutable.

2 open findings

🧠 Review effort: Balanced

Comment thread src/Aspire.Hosting/Pipelines/IDeploymentStateManager.cs
Comment thread src/Aspire.Hosting/Pipelines/IDeploymentStateManager.cs

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

One stale ASPIREPIPELINES002 suppression and experimental-status comment remains in non-generated source.

0 open findings

2 resolved since last review

🧠 Review effort: Balanced

@github-actions

This comment has been minimized.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The mechanical graduation is complete, behavior-preserving, and leaves no source references to the retired diagnostic.

0 open findings

🧠 Review effort: Balanced

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

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>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The mechanical graduation is complete and no unresolved diagnostic references remain outside the intentionally unchanged generated API baseline.

0 open findings

🧠 Review effort: Balanced

@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown
Contributor

Tests selector

50 / 98 PR test projects · 4 PR jobs, from 45 changed files.

Selected PR test projects (50 / 98)

Aspire.Cli.EndToEnd.Tests, Aspire.Hosting.Analyzers.Tests, Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Kusto.Tests, Aspire.Hosting.Azure.Provisioning.Tests, Aspire.Hosting.Azure.Tests, Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Browsers.Tests, Aspire.Hosting.CodeGeneration.Go.Tests, Aspire.Hosting.CodeGeneration.Java.Tests, Aspire.Hosting.CodeGeneration.Python.Tests, Aspire.Hosting.CodeGeneration.Rust.Tests, Aspire.Hosting.CodeGeneration.TypeScript.Tests, Aspire.Hosting.Containers.Tests, Aspire.Hosting.DevTunnels.Tests, Aspire.Hosting.Docker.Tests, Aspire.Hosting.Dotnet.Tests, Aspire.Hosting.DotnetTool.Tests, Aspire.Hosting.EntityFrameworkCore.Tests, Aspire.Hosting.Foundry.Tests, Aspire.Hosting.Garnet.Tests, Aspire.Hosting.Go.Tests, Aspire.Hosting.Java.Tests, Aspire.Hosting.JavaScript.Tests, Aspire.Hosting.Kafka.Tests, Aspire.Hosting.Keycloak.Tests, Aspire.Hosting.Kubernetes.Tests, Aspire.Hosting.Maui.Tests, Aspire.Hosting.Milvus.Tests, Aspire.Hosting.MongoDB.Tests, Aspire.Hosting.MySql.Tests, Aspire.Hosting.Nats.Tests, Aspire.Hosting.OpenAI.Tests, Aspire.Hosting.Oracle.Tests, Aspire.Hosting.Orleans.Tests, Aspire.Hosting.PostgreSQL.Tests, Aspire.Hosting.Python.Tests, Aspire.Hosting.Qdrant.Tests, Aspire.Hosting.RabbitMQ.Tests, Aspire.Hosting.Radius.Tests, Aspire.Hosting.Redis.Tests, Aspire.Hosting.RemoteHost.Tests, Aspire.Hosting.Rust.Tests, Aspire.Hosting.Seq.Tests, Aspire.Hosting.SqlServer.Tests, Aspire.Hosting.Testing.Tests, Aspire.Hosting.Tests, Aspire.Hosting.Valkey.Tests, Aspire.Hosting.Yarp.Tests, Aspire.Playground.Tests

Selected PR jobs (4)

cli-starter-validation, extension-e2e, polyglot, typescript-api-compat


How these were chosen — grouped by what changed

⚠️ 36 of the 50 selected test projects come from a single change — src/Aspire.Hosting/DistributedApplicationBuilder.cs.

🔧 src/Aspire.Hosting/DistributedApplicationBuilder.cs (changed source)
→ 36 via the project graph

show 36

Aspire.Hosting.Analyzers.Tests (2 hops), Aspire.Hosting.Browsers.Tests (2 hops), Aspire.Hosting.CodeGeneration.Go.Tests, Aspire.Hosting.CodeGeneration.Java.Tests, Aspire.Hosting.CodeGeneration.Python.Tests, Aspire.Hosting.CodeGeneration.Rust.Tests, Aspire.Hosting.Containers.Tests (2 hops), Aspire.Hosting.DevTunnels.Tests (2 hops), Aspire.Hosting.DotnetTool.Tests (2 hops), Aspire.Hosting.EntityFrameworkCore.Tests (2 hops), Aspire.Hosting.Garnet.Tests (2 hops), Aspire.Hosting.Go.Tests (2 hops), Aspire.Hosting.Java.Tests (2 hops), Aspire.Hosting.JavaScript.Tests (2 hops), Aspire.Hosting.Kafka.Tests (2 hops), Aspire.Hosting.Keycloak.Tests (2 hops), Aspire.Hosting.Maui.Tests, Aspire.Hosting.Milvus.Tests (2 hops), Aspire.Hosting.MongoDB.Tests (2 hops), Aspire.Hosting.MySql.Tests (2 hops), Aspire.Hosting.Nats.Tests (2 hops), Aspire.Hosting.OpenAI.Tests (2 hops), Aspire.Hosting.Oracle.Tests (2 hops), Aspire.Hosting.Orleans.Tests (2 hops), Aspire.Hosting.PostgreSQL.Tests (2 hops), Aspire.Hosting.Python.Tests (2 hops), Aspire.Hosting.Qdrant.Tests (2 hops), Aspire.Hosting.RabbitMQ.Tests (2 hops), Aspire.Hosting.Redis.Tests (2 hops), Aspire.Hosting.RemoteHost.Tests, Aspire.Hosting.Rust.Tests (2 hops), Aspire.Hosting.Seq.Tests (2 hops), Aspire.Hosting.SqlServer.Tests (2 hops), Aspire.Hosting.Testing.Tests (2 hops), Aspire.Hosting.Valkey.Tests (2 hops), Aspire.Playground.Tests

🔧 src/Aspire.Hosting.Azure/AzureBicepResource.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests
→ 3 via the project graph: Aspire.Hosting.Azure.Kusto.Tests (2 hops), Aspire.Hosting.Azure.Provisioning.Tests (2 hops), Aspire.Hosting.Foundry.Tests (2 hops)

🧪 tests/Aspire.Hosting.Tests/Orchestrator/ApplicationOrchestratorTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Tests
→ 3 via the project graph: Aspire.Hosting.Blazor.Tests, Aspire.Hosting.Dotnet.Tests, Aspire.Hosting.Radius.Tests

🔧 src/Aspire.Hosting.Azure.Kubernetes/AzureKubernetesEnvironmentResource.AksPipeline.cs (changed source)
→ 2 directly: Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure.Kubernetes/AzureKubernetesEnvironmentResource.cs (changed source)
→ 2 directly: Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Docker/DockerComposeEnvironmentResource.cs (changed source)
→ 1 directly: Aspire.Hosting.Docker.Tests
→ 1 via the project graph: Aspire.Hosting.Yarp.Tests

🔧 src/Aspire.Hosting.Kubernetes/Deployment/HelmDeploymentEngine.cs (changed source)
→ 1 directly: Aspire.Hosting.Kubernetes.Tests
→ 1 via the project graph: Aspire.Hosting.CodeGeneration.TypeScript.Tests

📦 affected project Aspire.Hosting.Docker
→ 1 test: Aspire.Cli.EndToEnd.Tests

🔧 src/Aspire.Hosting.Azure.Sandboxes/AzureSandboxContainerDeployment.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure.Sandboxes/AzureSandboxEndpointPropertyValueProvider.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/AzureEnvironmentResource.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/AzureProvisioningController.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/AzureResourcePreparer.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/Provisioning/BicepUtilities.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/Provisioning/Internal/BaseProvisioningContextProvider.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/Provisioning/Internal/PublishModeProvisioningContextProvider.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/Provisioning/Internal/RunModeProvisioningContextProvider.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/Provisioning/Provisioners/AzureProvisioner.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Kubernetes/KubernetesHelmChartExtensions.cs (changed source)
→ 1 directly: Aspire.Hosting.Kubernetes.Tests

🔧 src/Aspire.Hosting.Kubernetes/KubernetesPublishingContext.cs (changed source)
→ 1 directly: Aspire.Hosting.Kubernetes.Tests

🧪 tests/Aspire.Hosting.Azure.Kubernetes.Tests/AzureKubernetesInfrastructureTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Kubernetes.Tests

🧪 tests/Aspire.Hosting.Azure.Kubernetes.Tests/AzureKubernetesTestBuilder.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Kubernetes.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/AzureBicepProvisionerTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/AzureDeployerTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/AzureEnvironmentResourceExtensionsTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/AzureProvisionerOptionsTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/AzureSandboxesTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/BicepUtilitiesTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/DefaultTokenCredentialProviderTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/ProvisioningContextProviderTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Azure.Tests/ProvisioningTestHelpers.cs (changed test)
→ 1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Docker.Tests/DockerComposeTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Docker.Tests

🧪 tests/Aspire.Hosting.Kubernetes.Tests/KubernetesDeployTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Kubernetes.Tests

🧪 tests/Aspire.Hosting.Tests/Orchestrator/ParameterProcessorTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Tests

🧪 tests/Aspire.Hosting.Tests/Pipelines/DistributedApplicationPipelineTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Tests

🧪 tests/Aspire.Hosting.Tests/Publishing/DeploymentStateManagerTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Tests

🧪 tests/Aspire.Hosting.Tests/Publishing/PipelineExecutorTests.cs (changed test)
→ 1 directly: Aspire.Hosting.Tests

Job reasons

Job Triggered by
cli-starter-validation affected project Aspire.Hosting.AppHost
extension-e2e • src/Aspire.Hosting.Docker/DockerComposeEnvironmentResource.cs, src/Aspire.Hosting/DistributedApplicationBuilder.cs, src/Aspire.Hosting/Orchestrator/ParameterProcessor.cs, src/Aspire.Hosting/Pipelines/DeploymentStateSection.cs, src/Aspire.Hosting/Pipelines/DistributedApplicationPipeline.cs, src/Aspire.Hosting/Pipelines/IDeploymentStateManager.cs, src/Aspire.Hosting/Pipelines/Internal/DeploymentStateManagerBase.cs, src/Aspire.Hosting/Pipelines/Internal/FileDeploymentStateManager.cs, src/Aspire.Hosting/Publishing/PipelineExecutor.cs
• affected project Aspire.Hosting.Docker
polyglot • affected project Aspire.Hosting.Azure.Kubernetes
• affected project Aspire.Hosting.Azure.Provisioning.ContainerService
typescript-api-compat affected project Aspire.Hosting.Azure.Kubernetes

Selection computed for commit acdad6d.

@mitchdenny
Mitch Denny (mitchdenny) merged commit a0353f1 into main Oct 9, 2026
297 checks passed
@microsoft-github-policy-service microsoft-github-policy-service Bot added this to the 17.0 milestone Oct 9, 2026
aspire-repo-bot Bot added a commit to microsoft/aspire.dev that referenced this pull request Oct 9, 2026
…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>
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Pull request created: #1856

Generated by PR Documentation Check · copilot · auto · 81.2 AIC · ⌖ 17 AIC · ⊞ 20.4K

@aspire-repo-bot

Copy link
Copy Markdown
Contributor

📝 Documentation has been drafted in microsoft/aspire.dev#1856 targeting release/17.0.

Triggered signals (3): pr_body_has_user_facing_section ("User-facing usage" heading showing AcquireSectionAsync/SaveSectionAsync no longer require suppression), pr_body_has_deprecation_marker (PR body mentions removing "experimental attributes and 43 obsolete warning suppressions"), pr_body_has_cli_flag_mention (false-positive match on a --filter string in the PR's test command, not an actual CLI flag).

Updated 3 docs pages to reflect that IDeploymentStateManager and DeploymentStateSection graduated from experimental to stable, removing the need to suppress ASPIREPIPELINES002:

  • diagnostics/aspirepipelines002.mdx — added a graduation note (version 17.0) and updated the "To correct this error" section, following the precedent in aspireacadomains001.mdx.
  • diagnostics/overview.mdx — updated the ASPIREPIPELINES002 table row to state it graduated in 17.0.
  • whats-new/aspire-17.mdx — added a new "Pipelines and deployment" section with a graduation callout and code sample, following the ACA Container Apps jobs graduation precedent in aspire-13-4.mdx.

Note

This draft PR needs human review before merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants