-
Notifications
You must be signed in to change notification settings - Fork 446
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 portable runtime build. #14549
Conversation
@@ -50,7 +50,7 @@ | |||
<SourceBuiltTarballName>$(OutputPath)$(SourceBuiltArtifactsTarballName).$(installerOutputPackageVersion).tar.gz</SourceBuiltTarballName> | |||
</PropertyGroup> | |||
|
|||
<Exec Command="tar --numeric-owner --exclude='Microsoft.SourceBuild.Intermediate.*.nupkg' --exclude='runtime.$(TargetRid).*.nupkg' -czf $(SourceBuiltTarballName) *.nupkg *.props SourceBuildReferencePackages/" | |||
<Exec Command="tar --numeric-owner --exclude='Microsoft.SourceBuild.Intermediate.*.nupkg' -czf $(SourceBuiltTarballName) *.nupkg *.props SourceBuildReferencePackages/" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change is to include ilasm for the non-portable rid.
@@ -0,0 +1,337 @@ | |||
From 4e92a776a0bb0b8a4ab02ad4e436352594b7eab2 Mon Sep 17 00:00:00 2001 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is dotnet/aspnetcore#43937
<MicrosoftNETCoreAppHostPackageVersion>$(MicrosoftNETCoreAppHostwinx64PackageVersion)</MicrosoftNETCoreAppHostPackageVersion> | ||
<MicrosoftNETCoreAppRuntimePackageVersion>$(MicrosoftNETCoreAppRuntimewinx64PackageVersion)</MicrosoftNETCoreAppRuntimePackageVersion> | ||
- <MicrosoftAspNetCoreAppRuntimePackageVersion>$(MicrosoftAspNetCoreAppRuntimewinx64PackageVersion)</MicrosoftAspNetCoreAppRuntimePackageVersion> | ||
+ <MicrosoftAspNetCoreAppRuntimePackageVersionBuilt>$(MicrosoftAspNetCoreAppRuntimewinx64PackageVersion)</MicrosoftAspNetCoreAppRuntimePackageVersionBuilt> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've added this to deal with https://github.com/dotnet/installer/issues/14492. This renames the property so source-build doesn't override it. There are better ways to fix this. I noticed the issue after I wrote this patch.
@@ -0,0 +1,67 @@ | |||
From 39d69b410eff3e6a22aa3a25489263a35c7da453 Mon Sep 17 00:00:00 2001 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is dotnet/runtime#75597.
I ran this locally using Microsoft's portable sdk. This built fine with the exception of
I have no clue what is causing this or to get better debug info. |
The issue is not caused by these changes. I've created dotnet/source-build#3030. |
@tmds - This is a fantastic contribution I've been wanting for some time. Can you clarify your intent on if you are trying to get this into 7.0 or 8.0? I ask because the contributing changes in the repos like runtime and aspnetcore are going into main and this PR is going into 7.0. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Once the FSharp issue is resolved (dotnet/source-build#3030), I'd like to trigger the internal CI on this change to validate everything builds cleanly rebuilding the tarball with the SDK and artifacts from these changes.
I'm targeting the main branches to get feedback from the repo owners, and here I'm using 7.0 to validate. We can decide if we want to do this 7.0 or later depending on the risk. We could also make it opt-in. It builds, but it isn't finished yet. I think the crossgen2 package that gets built from runtime no longer meets the built-from-source requirement. I've created dotnet/runtime#74721 for that.
Is this a CI job that will build |
Sounds good.
Correct |
@@ -0,0 +1,37 @@ | |||
From 43f51a115a8f20b0c1374afa180c2a67db2e357e Mon Sep 17 00:00:00 2001 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is dotnet/sdk#28005.
In testing this against 7.0.100-rc1 on Alpine Linux, build of aspnetcore fails with:
I reckon this is due to the initial prebuilt bootstrap being portable. Aspnetcore should be able to buld with portable runtime despite targeting non-portable. edit Ignore this, I made a mistake when porting this pull request to the Alpine building script. It works now. |
Incidently this fixes musl support on installer, as the issues had to do entirely with portable builds in source-build. I'm doing more tests, but it looks like it would make #13410 unnecessary. |
Finished tests for dotnet7 rc1 on Alpine Linux. Substantial build time savings:
Very happy with this change, and would be happy to see it included in net7.0. |
The tarball build fails with:
This seems related to dotnet/sdk#25566. |
I had accidentally removed disabling package validation which caused the build failure. |
@@ -0,0 +1,266 @@ | |||
From 65dba1ea70461a99f585daebed67a3ad52b3f48c Mon Sep 17 00:00:00 2001 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is dotnet/runtime#74504 (merged on runtime main).
@@ -0,0 +1,127 @@ | |||
From cd2f0ffb287251c26f03850d1a596abafb99d5c7 Mon Sep 17 00:00:00 2001 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is dotnet/runtime#76068 (merged on runtime main).
@@ -0,0 +1,52 @@ | |||
From 2775cf0d524f7a31f8cad3405b3e111056b345e3 Mon Sep 17 00:00:00 2001 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is dotnet/runtime#75597.
This now builds without the portable runtime. There is still an issue with the This contains a self-contained app. Self-contained apps get built using artifacts from It should be possible to use the |
Besides the patches needed to eliminate the portable runtime build, I've included patches that enable source-build to build on distros (and distro versions) that are not yet known in the runtime graph (dotnet/runtime#74504 and dotnet/runtime#76068). I've included them in this PR to see if they work well with the other RID-related changes. |
I'll look into making the backport PRs. We also still need a proper fix for dotnet/source-build#3121. |
Indeed. I've been using your fix, that is to say changing the name of |
Status of the backports:
|
Update on 7.0 backports:
|
@crummel @MichaelSimons are you looking into backporting these to 7.0? Is there something I can do to help? |
This was picked up in 7.0.1 servicing (internally). It will be released in Dec servicing. |
The runtime and aspnetcore changes that were backported flowed in and required the installer changes. |
@MichaelSimons this change is now part of |
Yes it is. The internal servicing changes made for 7.0.101 changes aren't getting mirror publicly because of the tight timeline for the January release because of the holiday vacations. The changes will get mirrored during the 7.0.102 release in January. I apologize for any inconveniences this causes. |
The changes are part of the 7.0.102 tag, will they be mirrored automatically to the 7.0.1xx and 7.0.2xx branches? |
Yes. |
Contributes to dotnet/source-build#3027.
cc @MichaelSimons @crummel @omajid