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

Eliminate the 'runtime-portable' build #3027

Closed
5 tasks
tmds opened this issue Sep 15, 2022 · 3 comments
Closed
5 tasks

Eliminate the 'runtime-portable' build #3027

tmds opened this issue Sep 15, 2022 · 3 comments
Assignees
Labels
area-product-experience Improvements in the end-user's product experience

Comments

@tmds
Copy link
Member

tmds commented Sep 15, 2022

When we're source-building .NET, runtime gets built twice: once as runtime-portable, and then as (non-portable) runtime.

The runtime-portable is taking up a large chunk of the build time, and it would be a huge improvement if we can eliminate it.

This means that builds should accept the rid-specific packages instead of using the packages which are built with a portable name.

We must also guard the single runtime build preserves the built-from-source requirement.
It shouldn't output artifacts that were directly copied from the pre-built SDK and pre-built packages, like the app host and assets from runtime packages.

Tasks:

The test should do two passes. The first pass uses a portable pre-built SDK. The second pass uses the non-portable SDK that was the output of the first pass. This ensures source-build also works when starting with the non-portable SDK.

cc @MichaelSimons @crummel @omajid

@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@mmitche
Copy link
Member

mmitche commented Sep 21, 2022

@tmds Am I correct to think that we should still allow for a only portable Linux source build, or an only RID specific build? Just that one the RID specific build should not depend on portable assets.

@MichaelSimons MichaelSimons added area-product-experience Improvements in the end-user's product experience and removed untriaged labels Sep 22, 2022
@tmds
Copy link
Member Author

tmds commented Nov 21, 2022

Fixed by dotnet/installer#14549.

@tmds Am I correct to think that we should still allow for a only portable Linux source build, or an only RID specific build? Just that one the RID specific build should not depend on portable assets.

@mmitche sorry for not picking up your question. Think of portable or non-portable as names, and the portable rid means it is supposed to work on a broader set of distros (because that's what the rid graphs describes).
When we run source-build, we expect to be provided the assets that correspond to the SDK rid. So if we're source-building using the orange.16-x64 SDK, we'll use the orange.16-x64 assets. And if we're using this SDK on Banana Linux 18, the corresponding SDK and assets that are produced are named banana.18-x64.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-product-experience Improvements in the end-user's product experience
Projects
Archived in project
Development

No branches or pull requests

3 participants