Skip to content

Remove redundant experimental annotations from Azure Sandboxes - #20482

Merged
Eric Erhardt (eerhardt) merged 1 commit into
mainfrom
eerhardt-azure-sandbox-annotations
Sep 25, 2026
Merged

Eric Erhardt (eerhardt) merged 1 commit into
mainfrom
eerhardt-azure-sandbox-annotations

Conversation

@eerhardt

Copy link
Copy Markdown
Member

Description

Consumers should not need to suppress ASPIREAZURE001 to use Azure Sandboxes: the entire Aspire.Hosting.Azure.Sandboxes package is already prerelease.

Remove the Experimental attributes for ASPIREAZURE001 from the sandbox resource, extension methods, options, and enums. Remove obsolete warning suppressions and unused imports, including the suppression in the README and generated deployment-test AppHost.

The package remains prerelease. Shared Azure experimental APIs, required internal suppressions, ASPIRECOMPUTE002 annotations, and generated API baselines are unchanged. No runtime behavior changes.

User-facing usage

C# AppHosts can use the existing APIs without #pragma warning disable ASPIREAZURE001:

builder.AddAzureSandboxGroup("sandboxes");
var api = builder.AddProject<Projects.ApiService>("api");

The corresponding TypeScript usage is unchanged:

await builder.addAzureSandboxGroup("sandboxes");

Validation

  • All 101 existing AzureSandboxesTests passed, with quarantined and outerloop tests excluded.
  • Removed the obsolete suppression from the .NET deployment E2E AppHost fixture; live Azure deployment tests were not run.

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 — existing sandbox unit coverage was run; the deployment scenario fixture was updated.
  • 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

The package is already prerelease, so sandbox APIs do not need the ASPIREAZURE001 opt-in. Remove obsolete suppressions from implementation code, documentation, and the deployment test AppHost.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions

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 -- 20482

Or

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

@aspire-repo-bot
aspire-repo-bot Bot requested a balanced review from Copilot September 25, 2026 17:34
@github-actions github-actions Bot added the area-integrations Issues pertaining to Aspire Integrations packages label Sep 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Tests selector

2 / 99 PR test projects · 2 PR jobs, from 7 changed files.

Selected PR test projects (2 / 99)

Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Tests

Selected PR jobs (2)

polyglot, typescript-api-compat


How these were chosen — grouped by what changed

🔧 src/Aspire.Hosting.Azure.Sandboxes/AzureSandboxCleanupResource.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests
→ 1 via the project graph: Aspire.Hosting.Azure.Kubernetes.Tests (2 hops)

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

🔧 src/Aspire.Hosting.Azure.Sandboxes/AzureSandboxContainerResource.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.Sandboxes/AzureSandboxGroupResource.cs (changed source)
→ 1 directly: Aspire.Hosting.Azure.Tests

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

Job reasons

Job Triggered by
polyglot affected project Aspire.Hosting.Azure.Sandboxes
typescript-api-compat affected project Aspire.Hosting.Azure.Sandboxes

Selection computed for commit dbc46d5.

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.

Copilot review overview

🟢 Approval recommended

The changes consistently remove the targeted diagnostic metadata while preserving required shared experimental annotations and runtime behavior.

Review effort: Balanced
Findings: None

What changed in this PR

Removes redundant ASPIREAZURE001 experimental annotations from the prerelease Azure Sandboxes integration without changing runtime behavior.

Changes:

  • Removes experimental attributes from sandbox public APIs.
  • Removes obsolete warning suppressions and unused imports.
  • Updates README and deployment fixture usage.
File Description
tests/​Aspire.Deployment.EndToEnd.Tests/​AzureSandboxesDeploymentTests.cs Removes obsolete generated AppHost suppression.
src/​Aspire.Hosting.Azure.Sandboxes/​README.md Removes the suppression from C# usage.
src/​Aspire.Hosting.Azure.Sandboxes/​AzureSandboxGroupResource.cs Removes the resource annotation.
src/​Aspire.Hosting.Azure.Sandboxes/​AzureSandboxesExtensions.cs Removes annotations, suppression, and unused import.
src/​Aspire.Hosting.Azure.Sandboxes/​AzureSandboxEndpointPropertyValueProvider.cs Removes obsolete suppression.
src/​Aspire.Hosting.Azure.Sandboxes/​AzureSandboxContainerResource.cs Removes obsolete suppression.
src/​Aspire.Hosting.Azure.Sandboxes/​AzureSandboxContainerOptionsAnnotation.cs Removes annotations and unused directives.
src/​Aspire.Hosting.Azure.Sandboxes/​AzureSandboxCleanupResource.cs Removes obsolete suppression.

💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.

@eerhardt

Copy link
Copy Markdown
Member Author

/backport to release/13.6

@github-actions

Copy link
Copy Markdown
Contributor

Started backporting to release/13.6 (link to workflow run)

@eerhardt
Eric Erhardt (eerhardt) merged commit f03a257 into main Sep 25, 2026
58 checks passed
@microsoft-github-policy-service microsoft-github-policy-service Bot added this to the 14.0 milestone Sep 25, 2026
aspire-repo-bot Bot added a commit to microsoft/aspire.dev that referenced this pull request Sep 25, 2026
… suppression

Documents changes from microsoft/aspire#20482

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@aspire-repo-bot

Copy link
Copy Markdown
Contributor

Pull request created: #1759

Generated by PR Documentation Check · copilot · auto · 83.2 AIC · ⌖ 10.8 AIC · ⊞ 18.7K

@aspire-repo-bot

Copy link
Copy Markdown
Contributor

📝 Documentation has been drafted in microsoft/aspire.dev#1759 targeting release/13.6.

Updated the Aspire 13.6 release-notes page (whats-new/aspire-13-6.mdx) to reflect that Azure Container Apps Sandboxes APIs (AddAzureSandboxGroup, PublishAsAzureSandbox) no longer require suppressing ASPIREAZURE001, since the Aspire.Hosting.Azure.Sandboxes package is already prerelease.

Triggered signals and evidence:

  • integration_readme_changed — src/Aspire.Hosting.Azure.Sandboxes/README.md removed the #pragma warning disable ASPIREAZURE001 line from its quick-start code sample; mirrored the same simplified AddAzureSandboxGroup("sandboxes") snippet in the docs "Azure Container Apps Sandboxes" section.
  • pr_body_has_user_facing_section — PR body's "User-facing usage" section shows the exact updated C# snippet without the pragma; that snippet is now embedded verbatim in the docs page.
  • pr_body_has_deprecation_marker — PR body states "Remove obsolete warning suppressions and unused imports"; updated the docs caution/note asides that previously labeled the Sandboxes feature "Experimental" to clarify only the ASPIREAZURE001 suppression requirement was removed, while the package itself remains prerelease/experimental in scope.

No dedicated Sandboxes integration page exists yet (only the 13.6 release-notes entry and README references AddAzureSandboxGroup), so the whats-new page was the only doc surface requiring an update. diagnostics/aspireazure001.mdx and integrations/cloud/azure/role-assignments.mdx reference ASPIREAZURE001 for the unrelated AddAzurePublisher/pipeline-step APIs, which are unaffected by this PR and were left unchanged.

Note

This draft PR needs human review before merging.

Jose Perez Rodriguez (joperezr) pushed a commit that referenced this pull request Sep 25, 2026
…andboxes (#20483)

Backport of #20482 to release/13.6

/cc @eerhardt

## Customer Impact

Customers shouldn't need to suppress experimental APIs on a prerelease
package. Also, the diagnostic we use is incorrect - it is already used.
We should have created a new one.

## Testing

Current repo tests.

## Risk

Basicaly zero.

## Regression?

No

Co-authored-by: Eric Erhardt <eric.erhardt@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 26, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-integrations Issues pertaining to Aspire Integrations packages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants