Repository navigation
Conversation
eserscor
force-pushed
the
eserscor-dev/erscor/2026/10/26-dotnet-10-migratio
branch
from
October 26, 2026 14:23
81d7f41 to
9ff9dd3
Compare
Base automatically changed from
eserscor-dev/erscor/2026/10/26-centralize-dotnet
to
main
October 26, 2026 18:58
Stack the complete runtime and target migration on the SDK8 setup centralization without duplicating its changes. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Tianlei Wu (tianleiwu)
force-pushed
the
eserscor-dev/erscor/2026/10/26-dotnet-10-migratio
branch
from
October 26, 2026 18:58
9ff9dd3 to
20b274d
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Layer 2 of 2, stacked on #33617. The lower PR centralizes GitHub Actions and Azure Pipelines SDK setup while retaining
8.x, including the existing Node/WebGPU packaging callers. This PR changes both shared SDK selections to10.x, adds migration-specific provisioning, and carries the remaining migration from #33592, without repeating those caller refactors.netstandard2.0;net10.0, and executable tests, samples, performance tools, API documentation, and plugin consumers to .NET 10. Update framework-specific API guards and preserve the E2E launcher's explicitnet462override and required compilation fixes.Compatibility:
netstandard2.0remains available for older desktop consumers. Framework-specific assets and tensor interop APIs formerly supplied bynet8.0now require .NET 10; mobile assets require .NET 10 workloads. Independent dependency versions such as SourceLink 8.0.0 are not runtime8 requirements and remain unchanged.Fresh split verification (passed):
node <parent-session-artifacts>\verify-dotnet-azure-stack.cjs 0bbb7fb2f97cc7887ae93c024f31dd734b3fb72b 9ff9dd3782876d840ce514fecccd4befc8a28ac5passed: the lower layer changes 14 files and keeps both helpers at SDK8.x; the upper is one direct child commit changing 51 files and selects SDK10.x in both helpers. The moved Node/WebGPU callers are absent from the upper diff.node <session-artifacts>\verify-net10-rebase.cjs <expected-remote-upper-sha>passed before/after the lease-protected push: the complete tree differs from the previously validated upper81d7f41e6f7077996c8371d1a37285536f10503bonly by the Azure template's inherited neutralInstall .NET SDKdisplay label. All functional migration code, four mobile renames, and newer main Next.js changes are retained byte-for-byte. Live branch refs, native stack33619 order33617/33618, ready/draft states, and disabled auto-merge were checked.git rev-parse HEAD^{tree}is7711b9062826649e365a1dd4ad45e24a4f49a8ee. The previous fixed tree/count checks were superseded by the user-directed Azure centralization move; the new tree changes no functional source.node <parent-session-artifacts>\validate-net10-full.cjspassed YAML/JSON checks, all 12 GitHub setup callers, Azure template paths, preservation of CPU MSBuild arguments, cached Linux image provisioning, and BrowserStack configuration. Its historical baseline remains appropriate for those checks. The Linux E2E template's pre-existing strict YAML errors are unchanged, not repaired or reported as a strict parse success.git grep -I -n -E 'net[89]\.0|NET[89]_0|dotnet-(sdk|runtime)-8' -- .returned no matches;git diff --check HEAD^ HEADpassed.Prior validation on these identical migrated files (not freshly rerun for this split):
The original migration used fresh isolated SDK 10.0.403/runtime 10.0.14 installations on Windows and Ubuntu 24.04/WSL with no runtime8. Isolated installations were subsequently cleaned up; this PR does not reinstall them solely to repackage unchanged source.
dotnet restore <NetCoreApp-test-project> --source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json <isolated-output-properties>anddotnet test <NetCoreApp-test-project> --no-restore --configuration Release <isolated-output-properties> -p:UseSharedCompilation=false --filter 'FullyQualifiedName~Microsoft.ML.OnnxRuntime.Tensors.Tests' --logger trx --verbosity minimal --disable-build-serverspassed on each OS: 150 tests each, zero failures/skips. Exact platform-specific commands and properties are recorded in #33592.python -m unittest discover -s tools\ci_build -p test_build_nuget.py -vpassed (1 test);python -m unittest discover -s tools\nuget -p test_generate_nuspec_for_native_nuget.py -vpassed (2 tests);python -m unittest discover -s plugin-ep-webgpu\csharp\test -p test_pack_nuget.py -vpassed (8 tests, no skips) with the isolated SDK andORT_WEBGPU_TEST_REQUIRE_DOTNET_SDK=1, exercising the real SDK layout fixture rather than GPU inference.bash -n tools/ci_build/github/linux/docker/scripts/install_dotnet.sh,shellcheck tools/ci_build/github/linux/docker/scripts/install_dotnet.sh, andapt-get --simulate install dotnet-sdk-10.0passed under WSL; SDK10 RPM availability was confirmed for AlmaLinux 8 x86_64/aarch64.Limits: no claim of hosted CI success, native/GPU inference, signed native package validation, MAUI workload/device deployment, or complete Docker image builds. No shared CI VM images were modified. Full validation details and constraints remain documented in #33592.
Motivation and Context
Separate setup-action consolidation from the runtime/target compatibility change so each can be reviewed independently. The first layer intentionally stays on SDK8.x; this second layer migrates targets, tooling, provisioning, and native-package metadata together to .NET 10 LTS ahead of .NET 8 end of support on November 10, 2026. Installing a newer SDK alone would leave older executable/mobile runtime requirements in place.