Skip to content

Merge API compatibility fixes into release/13.5 - #19165

Merged
Jose Perez Rodriguez (joperezr) merged 7 commits into
release/13.5from
joperezr/merge-api-fixes-release-13.5
Aug 8, 2026
Merged

Merge API compatibility fixes into release/13.5#19165
Jose Perez Rodriguez (joperezr) merged 7 commits into
release/13.5from
joperezr/merge-api-fixes-release-13.5

Conversation

@joperezr

Copy link
Copy Markdown
Member

Description

Merges the API compatibility fixes already landed on main into release/13.5 so the release branch preserves the expected Azure, Go/Delve, and Kubernetes APIs.

This includes:

The accompanying unit and polyglot AppHost tests are included from the original 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

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

Co-authored-by: Sébastien Ros <1165805+sebastienros@users.noreply.github.com>
Copilot-Session: a4388e40-626f-4e1a-b980-bf079acdd8d5
* Fix Delve server API compatibility

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

* Obsolete the Delve port overload

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

* Preserve parameterless Delve exports

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

---------

Co-authored-by: Sébastien Ros <1165805+sebastienros@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
* Fix persistent volume ATS export names

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

Copilot-Session: 65c05591-5ad7-4d10-b6b4-40bf8337f17f

* Export persistent volume resource to ATS

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

Copilot-Session: 65c05591-5ad7-4d10-b6b4-40bf8337f17f

---------

Co-authored-by: Sébastien Ros <1165805+sebastienros@users.noreply.github.com>
Copilot-Session: 65c05591-5ad7-4d10-b6b4-40bf8337f17f
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Co-authored-by: Sébastien Ros <1165805+sebastienros@users.noreply.github.com>
Copilot-Session: 8c2c7da0-b7e0-477d-b7b2-3f3f3809d8c2
* Mark DisplayOrder obsolete

Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>

* Preserve obsolete DisplayOrder behavior

Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>

* Keep DisplayOrder compatibility test

Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>

* Finalize DisplayOrder obsoletion

Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>

* Restore Go module requirements

Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JamesNK <303201+JamesNK@users.noreply.github.com>
PR #19084 added AzureBicepResourceScopeTests using the then-current
ForSubscription and ForTenant factories. PR #18976 merged 27 seconds later
and renamed the public factories to CreateForSubscription and
CreateForTenant after API review.

Neither PR conflicted textually on its own branch, but their combination left
the new test calling names that no longer exist on main. Update the test to
follow the shipping API shape from #18976 rather than reintroducing the old
factory names.

Co-authored-by: adamint <adamratzman1@gmail.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings August 8, 2026 16:15
@github-actions

github-actions Bot commented Aug 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 -- 19165

Or

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

@github-actions github-actions Bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Aug 8, 2026
@joperezr

Copy link
Copy Markdown
Member Author

FYI Sébastien Ros (@sebastienros)

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

Pull request overview

Merges Azure, Go/Delve, and Kubernetes API compatibility fixes into release/13.5.

Changes:

  • Preserves Azure Bicep scope compatibility and renames scope factories.
  • Introduces Delve options while retaining the shipped compatibility overload.
  • Corrects Kubernetes persistent-volume ATS exports and polyglot coverage.
Show a summary per file
File Description
tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/TypeScript/apphost.mts Exercises persistent-volume APIs in TypeScript.
tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/Python/apphost.py Exercises persistent-volume APIs in Python.
tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/Java/AppHost.java Exercises persistent-volume APIs in Java.
tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/Go/apphost.go Exercises persistent-volume APIs in Go.
tests/PolyglotAppHosts/Aspire.Hosting.Go/TypeScript/apphost.mts Updates TypeScript Delve usage.
tests/PolyglotAppHosts/Aspire.Hosting.Go/Python/apphost.py Updates Python Delve options.
tests/PolyglotAppHosts/Aspire.Hosting.Go/Java/AppHost.java Configures Java Delve DTO defaults.
tests/PolyglotAppHosts/Aspire.Hosting.Go/Go/apphost.go Uses the renamed Go options DTO.
tests/Aspire.Hosting.Go.Tests/GoPublicApiTests.cs Covers Delve defaults, compatibility, and flags.
tests/Aspire.Hosting.Go.Tests/AddGoAppTests.cs Updates Delve manifest and debugging tests.
tests/Aspire.Hosting.Azure.Tests/ExistingAzureResourceTests.cs Uses renamed Azure scope factories.
tests/Aspire.Hosting.Azure.Tests/BicepUtilitiesTests.cs Tests subscription and tenant scope serialization.
tests/Aspire.Hosting.Azure.Tests/AzureEnvironmentResourceTests.cs Updates Azure environment scope calls.
tests/Aspire.Hosting.Azure.Tests/AzureBicepResourceScopeTests.cs Tests the restored resource-group contract.
tests/Aspire.Hosting.Azure.Tests/AzureBicepProvisionerTests.cs Updates provisioner scope tests.
src/Aspire.Hosting.Kubernetes/KubernetesPersistentVolumeResource.cs Exports persistent-volume resources to ATS.
src/Aspire.Hosting.Kubernetes/KubernetesPersistentVolumeExtensions.cs Corrects parameterized ATS export names.
src/Aspire.Hosting.Go/README.md Documents the revised Delve API.
src/Aspire.Hosting.Go/GoHostingExtensions.cs Adds options and compatibility Delve overloads.
src/Aspire.Hosting.Go/GoDelveServerAnnotation.cs Aligns internal Delve option naming and nullability.
src/Aspire.Hosting.Go/DelveServerOptions.cs Defines the exported Delve options DTO.
src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs Guards resource-group access by scope kind.
src/Aspire.Hosting.Azure/Provisioning/BicepUtilities.cs Handles scopes without resource groups.
src/Aspire.Hosting.Azure/AzurePublishingContext.cs Publishes subscription and tenant scopes safely.
src/Aspire.Hosting.Azure/AzureProvisioningResource.cs Compares and emits scopes safely.
src/Aspire.Hosting.Azure/AzureBicepResourceScope.cs Restores the non-null API and renames factories.
src/Aspire.Hosting.Azure/AzureBicepResource.cs Omits absent resource groups from manifests.

Review details

Suppressed comments (1)

tests/Aspire.Hosting.Azure.Tests/AzureBicepResourceScopeTests.cs:29

  • ForTenant is removed by this PR, so this newly added test does not compile. Use the renamed factory, as the other Azure scope tests now do.
        var scope = AzureBicepResourceScope.ForTenant();
  • Files reviewed: 27/27 changed files
  • Comments generated: 2
  • Review effort level: Balanced

Comment thread tests/Aspire.Hosting.Azure.Tests/AzureBicepResourceScopeTests.cs Outdated
Comment thread tests/PolyglotAppHosts/Aspire.Hosting.Go/TypeScript/apphost.mts

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.

Review details

  • Files reviewed: 32/32 changed files
  • Comments generated: 1
  • Review effort level: Balanced

/// <summary>
/// Gets the TCP port on which Delve listens. The default is <c>2345</c>.
/// </summary>
public int Port { get; init; } = 2345;
@github-actions

github-actions Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Tests selector (audit mode)

The full test matrix and all jobs still run in audit mode. The tests and jobs below are what selective CI would run under enforcement.

48 / 100 test projects · 4 jobs, from 31 changed files.

Selected test projects (48 / 100)

Aspire.EndToEnd.Tests, Aspire.Hosting.Analyzers.Tests, Aspire.Hosting.Azure.Kubernetes.Tests, Aspire.Hosting.Azure.Kusto.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.GitHub.Models.Tests, Aspire.Hosting.Go.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.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 jobs (4)

deployment-e2e, extension-e2e, polyglot, typescript-api-compat


How these were chosen — grouped by what changed

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

🔧 src/Aspire.Hosting/ApplicationModel/ResourceUrlAnnotation.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.CodeGeneration.TypeScript.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.GitHub.Models.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.Seq.Tests (2 hops), Aspire.Hosting.SqlServer.Tests (2 hops), Aspire.Hosting.Testing.Tests (2 hops), Aspire.Hosting.Valkey.Tests (2 hops), Aspire.Hosting.Yarp.Tests (2 hops), Aspire.Playground.Tests

🧪 tests/Aspire.Hosting.Tests/WithUrlsTests.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/AzureBicepResource.cs (changed source)
1 directly: Aspire.Hosting.Azure.Tests
2 via the project graph: Aspire.Hosting.Azure.Kusto.Tests (2 hops), Aspire.Hosting.Foundry.Tests (2 hops)

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

🧪 tests/Aspire.Hosting.Azure.Tests/AzureBicepProvisionerTests.cs (changed test)
1 directly: Aspire.Hosting.Azure.Tests
1 via the project graph: Aspire.Hosting.Azure.Kubernetes.Tests

📦 affected project Aspire.Hosting
1 test: Aspire.EndToEnd.Tests

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

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

🔧 src/Aspire.Hosting.Azure/AzurePublishingContext.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/Provisioners/BicepProvisioner.cs (changed source)
1 directly: Aspire.Hosting.Azure.Tests

🔧 src/Aspire.Hosting.Go/DelveServerOptions.cs (changed source)
1 directly: Aspire.Hosting.Go.Tests

🔧 src/Aspire.Hosting.Go/GoDelveServerAnnotation.cs (changed source)
1 directly: Aspire.Hosting.Go.Tests

🔧 src/Aspire.Hosting.Go/GoHostingExtensions.cs (changed source)
1 directly: Aspire.Hosting.Go.Tests

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

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

🧪 tests/Aspire.Hosting.Azure.Tests/AzureEnvironmentResourceTests.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/ExistingAzureResourceTests.cs (changed test)
1 directly: Aspire.Hosting.Azure.Tests

🧪 tests/Aspire.Hosting.Go.Tests/AddGoAppTests.cs (changed test)
1 directly: Aspire.Hosting.Go.Tests

🧪 tests/Aspire.Hosting.Go.Tests/GoPublicApiTests.cs (changed test)
1 directly: Aspire.Hosting.Go.Tests

Job reasons

Job Triggered by
deployment-e2e affected project Aspire.Hosting.Azure
extension-e2e src/Aspire.Hosting.Azure/AzureBicepResource.cs, src/Aspire.Hosting.Azure/AzureBicepResourceScope.cs, src/Aspire.Hosting.Azure/AzureProvisioningResource.cs, src/Aspire.Hosting.Azure/AzurePublishingContext.cs, src/Aspire.Hosting.Azure/Provisioning/BicepUtilities.cs, src/Aspire.Hosting.Azure/Provisioning/Provisioners/BicepProvisioner.cs, src/Aspire.Hosting.Go/DelveServerOptions.cs, src/Aspire.Hosting.Go/GoDelveServerAnnotation.cs, src/Aspire.Hosting.Go/GoHostingExtensions.cs, src/Aspire.Hosting.Kubernetes/KubernetesPersistentVolumeExtensions.cs, src/Aspire.Hosting.Kubernetes/KubernetesPersistentVolumeResource.cs, src/Aspire.Hosting/ApplicationModel/ResourceUrlAnnotation.cs, src/Aspire.Hosting/Dashboard/DashboardEventHandlers.cs, src/Aspire.Hosting/Dcp/ResourceSnapshotBuilder.cs, src/Aspire.Hosting/Orchestrator/ApplicationOrchestrator.cs
• affected project Aspire.Hosting.Azure
polyglot tests/PolyglotAppHosts/Aspire.Hosting.Go/Go/apphost.go, tests/PolyglotAppHosts/Aspire.Hosting.Go/Java/AppHost.java, tests/PolyglotAppHosts/Aspire.Hosting.Go/Python/apphost.py, tests/PolyglotAppHosts/Aspire.Hosting.Go/TypeScript/apphost.mts, tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/Go/apphost.go, tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/Java/AppHost.java, tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/Python/apphost.py, tests/PolyglotAppHosts/Aspire.Hosting.Kubernetes/TypeScript/apphost.mts
• affected project Aspire.Hosting.Go
typescript-api-compat affected project Aspire.Hosting.Azure

Selection computed for commit e548ce1.

@github-actions

github-actions Bot commented Aug 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.

@github-actions

github-actions Bot commented Aug 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.

@github-actions

github-actions Bot commented Aug 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.

@joperezr
Jose Perez Rodriguez (joperezr) merged commit 25db6c3 into release/13.5 Aug 8, 2026
1340 of 1356 checks passed
@joperezr
Jose Perez Rodriguez (joperezr) deleted the joperezr/merge-api-fixes-release-13.5 branch August 8, 2026 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants