Update to .NET 11 RC1 SDK - #19999
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 19999Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 19999" |
There was a problem hiding this comment.
🟡 Changes recommended
Template tests now incorrectly use the .NET 11 SDK for .NET 10-specific validation.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Updates Aspire’s development and CI toolchain to .NET 11 RC1.
Changes:
- Pins the repository SDK to .NET 11 RC1.
- Updates .NET 11 template and ASP.NET Core asset versions.
File summaries
| File | Description |
|---|---|
global.json |
Updates the repository SDK/tool version. |
eng/Versions.props |
Updates .NET 11 test and template assets. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Balanced
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
There was a problem hiding this comment.
🔵 Needs a closer look
The template harness now incorrectly uses the .NET 11 SDK for its .NET 10 SDK test matrix.
Review details
Suppressed comments (1)
global.json:13
- This now makes the template harness install the .NET 11 SDK into both its
dotnet-10anddotnet-11test directories.tests/Shared/Aspire.Templates.Testing.targets:17-20derivesSdkVersionForNet10TFMfrom thistools.dotnetvalue, while the template matrix explicitly expectsTestSdk.Net10not to supportnet11.0(TemplateTestsBase.cs:352-360). Those tests will either fail or stop exercising the .NET 10 SDK. Please add a dedicated .NET 10 SDK version property and update the template provisioning target to use it instead of parsingglobal.json.
"dotnet": "11.0.100-rc.1.26425.128",
- Files reviewed: 2/2 changed files
- Comments generated: 0 new
- Review effort level: Balanced
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🔵 Needs a closer look
The changed Helix infrastructure path needs explicit classification in the test-trigger map.
Review details
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
tests/helix/send-to-helix-inner.proj:16
- This AzDO-only
.projis consumed byeng/pipelines/templates/BuildAndTest.yml:301-305but is outsideAspire.slnx. Becausetests/helix/**is neither routed nor ignored ineng/github-ci/test-trigger-map.yml, SelectTests treats a Helix-only change as unowned and unnecessarily forces the full GitHub PR matrix. Perdocs/ci/test-trigger-map.md:146-159, explicitly classify this no-PR-CI path (for example, add a documentedtests/helix/**ignore entry).
- Files reviewed: 6/6 changed files
- Comments generated: 0 new
- Review effort level: Balanced
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🔵 Needs a closer look
The changed Helix CI input is not explicitly classified in the test trigger map.
Review details
Suppressed comments (1)
Previously missed (1) — in code that hasn't changed since the last review.
tests/helix/send-to-helix-inner.proj:16
- Please also classify
tests/helix/**ineng/github-ci/test-trigger-map.yml(most likely underignoreas AzDO-only, unless a GitHub verifier is added). This project is consumed by the public Helix pipeline (eng/pipelines/templates/BuildAndTest.yml:290-305) but is not represented in the solution ProjectGraph; the map's Layer 2 contract requires such inputs to be explicitly accounted for (eng/github-ci/test-trigger-map.yml:68-70). Otherwise edits here fall through to the unattributedALLfallback rather than recording their actual CI ownership.
- Files reviewed: 7/7 changed files
- Comments generated: 0 new
- Review effort level: Balanced
Ankit Jain (radical)
left a comment
There was a problem hiding this comment.
Build changes look good to me. Approving this, but we should run the internal pipeline before merging.
|
I don’t know how to do that. Could you handle internal validation? |
There was a problem hiding this comment.
🔵 Needs a closer look
The repository-wide SDK, cross-platform packaging, and signing changes warrant human review, especially since a complete build was not obtained.
Review details
- Files reviewed: 17/17 changed files
- Comments generated: 0 new
- Review effort level: Balanced
This comment has been minimized.
This comment has been minimized.
28cbf6d to
21df644
Compare
21df644 to
96373e9
Compare
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟡 Changes recommended
The .NET 10 template-test slot uses 10.0.400 instead of the documented and previously pinned 10.0.401.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review details
- Files reviewed: 16/16 changed files
- Comments generated: 1
- Review effort level: Balanced
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Tests selectorSelects the full PR test matrix + all PR-gated jobs (ALL) — a rule matching 'eng/Versions.props' selects ALL Advisory workflow impact (4)
Selection computed for commit |
|
✅ No documentation update needed. Step 5 branch taken: Triggered signals (1): Verification of remaining changed files (16 total): All are internal engineering/build changes with no Aspire product user-facing surface:
(summary truncated) |
|
The CI build failed due to test failure(s) that appear unrelated to the PR changes. These may be flaky tests. Suspected flaky test(s): Suggested actions:
You can re-run the failed jobs from the workflow run page. |
Description
Update the repository build SDK to .NET 11 RC1 so development and CI use the supported release-candidate toolchain instead of .NET 10. The existing .NET 11 template test assets and ASP.NET Core template asset versions are also updated from Preview 6 to the matching RC1 build.
The SDK is pinned to
11.0.100-rc.1.26425.128, with matching runtime assets pinned to11.0.0-rc.1.26425.128. The repository toolset explicitly installs the .NET 8, 9, and 10 Core and ASP.NET Core runtimes for both x64 and arm64 so template tests and remaining framework-dependent test assets can run alongside the .NET 11 SDK.Build and CI utilities that run in SDK-only jobs now target
net11.0, includingSelectTests,CreateLayout,GenerateTestSummary, andGenerateCITimeline. In particular, movingCreateLayoutto the active SDK runtime avoids a Windows ARM64 failure where the ARM64 host attempted to load the x64 .NET 10hostpolicy.dllfrom the repository toolset root. Microsoft.Build'snet10.0managed assets remain compatible with thenet11.0selector.The template test matrix keeps explicit SDK properties for .NET 8, 9, and 10 while the active .NET 11 SDK follows
global.json. This preserves the .NET 10 SDK test slot at10.0.401afterglobal.jsonmoves to .NET 11 and avoids duplicating the repository SDK version.CLI dotnet-tool packaging now enables RID-specific package orchestration only while packing the explicit RID package. The cross-platform pointer package retains all seven RID mappings without asking the .NET 11 SDK to rebuild those RID packages concurrently into one publish directory.
The Blazor hosted playground and tests now use the
ResolveWebAssemblyProjectReferencesimplementation provided by the .NET 11 Static Web Assets SDK. Synthetic test projects declare a target framework and restore before invoking the SDK target.Validation:
restore.cmdcompleted successfully and provisioned the .NET 8, 9, and 10 Core and ASP.NET Core runtime toolsets alongside SDK11.0.100-rc.1.26425.128.8.0.415,9.0.306,10.0.401, and11.0.100-rc.1.26425.128.Sign.projcompleted in dry-run/test-sign mode againstAspire.Dashboard.Sdk.win-x64, including the five third-party assemblies reported bySIGN004.SelectTestsWorkflowTestspassed onnet11.0(6 tests).SelectTests --helpran successfully with runtime roll-forward disabled, confirming direct use of the .NET 11 runtime.Aspire.Hosting.Blazor.Testspassed (88 tests).ResolveWebAssemblyProjectReferencestarget resolved the real BlazorHosted client project.Aspire.Cli.win-x64and the payload-freeAspire.Clipointer package. The pointer settings retain all seven RID mappings.dotnet build tests/Aspire.Templates.Tests/Aspire.Templates.Tests.csproj --no-restore /p:SkipNativeBuild=truesucceeded..\dotnet.cmd msbuild eng\Bundle.proj /restore /p:Configuration=Debug /p:TargetRid=win-x64 /p:BundleVersion=ci-bundlepayload /p:SkipNativeBuild=true /p:ContinuousIntegrationBuild=true.git diff --checkpassed.Stress.ApiService,Stress.Empty,Stress.TelemetryService, andAspire.Dashboardprocesses were locking their output binaries.Fixes # (issue)
Checklist
<remarks />and<code />elements on your triple slash comments?