Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Split the Runtime Shared Framework project and combine legs in the official build #111136

Merged
merged 45 commits into from
Jan 11, 2025

Conversation

jkoritzinsky
Copy link
Member

@jkoritzinsky jkoritzinsky commented Jan 6, 2025

Split the Microsoft.NETCore.App.Runtime.sfxproj project into three separate projects, one for each runtime (CoreCLR, Mono, NativeAOT).

This makes some of the logic easier to reason about as settings specific to one runtime can be isolated in that project file.
The main benefit though, is that splitting the project allows us to build multiple "Runtime shared frameworks" in a single build invocation.

This PR also adds a DotNetBuildAllRuntimePacks property that builds all runtime packs that are supported for the given target. It also enables building the Mono CrossAOT compiler that runs on the target (targeting all RIDs supported for a CrossAOT compiler running on that target).

These changes allow us to reduce the number of legs in our official build's Build stage from 79 to 41 by enabling us to deduplicate all builds for a given platform except for Mono LLVMAOT for desktop, CoreCLR PGO-instrumented, and Wasm single threaded vs multithreaded.

Once this flows to the VMR, we can do similar deduplication in the VMR and significantly reduce the lanes there as well using the same property.

…ework projects that are hard-coded to specific runtimes.
…NativeAOT or singlefile instead of building a tool pack like how we build a runtime pack.
This was added for crossgen1, which we no longer ship.
… to get BuildAllRuntimePacks working locally on Windows x64
…ow has an alternative solution for the product all-up).
… default subsets are calculated for linux-bionic
Copy link
Contributor

Tagging subscribers to this area: @dotnet/runtime-infrastructure
See info in area-owners.md if you want to be subscribed.

@jkoritzinsky
Copy link
Member Author

@jkoritzinsky jkoritzinsky marked this pull request as ready for review January 10, 2025 21:47
Copy link
Member

@ViktorHofer ViktorHofer left a comment

Choose a reason for hiding this comment

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

Looks great. Please compare the produced merged manifest with a recent runtime-official build before merging.

@jkoritzinsky
Copy link
Member Author

Verified that the same assets are available in the official build and a recent main official build.

@jkoritzinsky
Copy link
Member Author

/ba-g Unrelated timeouts

@jkoritzinsky jkoritzinsky merged commit e68313e into dotnet:main Jan 11, 2025
151 of 156 checks passed
@jkoritzinsky jkoritzinsky deleted the split-runtime-sfxproj branch January 11, 2025 02:49
akoeplinger added a commit that referenced this pull request Jan 11, 2025
….yml

Regressed with #111136

I noticed because a second "Build product" step got injected that was building Debug in runtime-official
akoeplinger added a commit that referenced this pull request Jan 11, 2025
….yml (#111302)

Regressed with #111136

I noticed because a second "Build product" step got injected that was building Debug in runtime-official
grendello added a commit to grendello/runtime that referenced this pull request Jan 13, 2025
* main:
  JIT: Model GT_RETURN kills with contained operand (dotnet#111230)
  Update dependencies from https://github.com/dotnet/runtime-assets build 20250110.2 (dotnet#111290)
  [NativeAOT/ARM64] Generate frames compatible with Apple compact unwinding (dotnet#107766)
  Cleanup unused JIT stubs in vm (dotnet#111237)
  Ensure that Shuffle is marked as HW_Flag_CanBenefitFromConstantProp (dotnet#111303)
  Fix CMP0173 policy warning with cmake 3.31 (dotnet#110522)
  [RISC-V] Fix HostActivation.Tests unknown-rid (dotnet#110687)
  Fix accidentally duplicated global-build-step.yml in runtime-official.yml (dotnet#111302)
  JIT: run extra SPMI queries for arrays (dotnet#111293)
  Split the Runtime Shared Framework project and combine legs in the official build (dotnet#111136)
  Do not ignore `MemoryMarshal.TryWrite` result (dotnet#108661)
  Update dependencies from https://github.com/dotnet/emsdk build 20250109.1 (dotnet#111263)
  Clean up in Number.Formatting.cs (dotnet#110955)
saitama951 added a commit to saitama951/dotnet-s390x that referenced this pull request Jan 16, 2025
dotnet-runtime-*.symbols.tar.gz is not shipped anymore
so copy the symbol nupkg's instead.
more details:- dotnet/runtime#111136
saitama951 added a commit to saitama951/dotnet-s390x that referenced this pull request Jan 16, 2025
dotnet-runtime-*.symbols.tar.gz is not shipped anymore
so copy the symbol nupkg's instead.
more details:- dotnet/runtime#111136

Signed-off-by: Sanjam Panda <[email protected]>
saitama951 added a commit to saitama951/dotnet-s390x that referenced this pull request Jan 16, 2025
dotnet-runtime-*.symbols.tar.gz is not shipped anymore
so copy the symbol nupkg's instead.
more details:- dotnet/runtime#111136

Signed-off-by: Sanjam Panda <[email protected]>
iii-i pushed a commit to IBM/dotnet-s390x that referenced this pull request Jan 16, 2025
dotnet-runtime-*.symbols.tar.gz is not shipped anymore
so copy the symbol nupkg's instead.
more details:- dotnet/runtime#111136

Signed-off-by: Sanjam Panda <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

2 participants