-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
[main] Update dotnet/runtime #35048
[main] Update dotnet/runtime #35048
Conversation
this may need additional tweaks to deal with the band versioning |
Installer needs a bunch of updates as well once this lands |
who is on point to either identifying the individual failures and farming out the work and/or handling them? |
@jeffschwMSFT There shouldn't be too much. This was the commit to switch to 8: 8119940 |
opened dotnet/arcade#14002 for future me |
Looks like it is failing on rid resolution now @elinor-fung can you take a look? |
The built tests are configured to run on a runtime from before dotnet/docs#36466 for some reason. If I build
But from this branch, it has:
I'm not sure why yet - cc @dsplaisted in case it is something obvious to you |
This is what does the updating to the runtime version that gets used by tests: Lines 46 to 54 in aabbd97
But with this PR,
|
@dsplaisted / @marcpopMSFT how does SDK usually handle updating major versions and targeting the consumed runtime version? The retargeting for ASP.NET references has a similar condition: Lines 56 to 63 in aabbd97
|
Now that the dependency flow is bringing in .NET 9 instead of .NET 8, the build doesn't have a version of .NET 8 to update the targeting to. I think the thing to do here is to update the stage 0 SDK to one that has a recent enough version of the runtime. FYI for those not aware, here is where we are trying to keep track of the changes needed each time we update to a new TargetFramework: https://github.com/dotnet/sdk/blob/main/documentation/general/UpdateToNewTargetFramework.md Feel free to update it as appropriate. |
@ViktorHofer @dotnet/domestic-cat please take a look |
var originalBundledNETCoreAppPackageVersion = propertyGroup.Element(ns + "BundledNETCoreAppPackageVersion").Value; | ||
var parsedOriginalBundledPackageVersion = SemanticVersion.Parse(originalBundledNETCoreAppPackageVersion); | ||
var parsedMicrosoftNETCoreAppRefPackageVersion = | ||
SemanticVersion.Parse(microsoftNETCoreAppRefPackageVersion); | ||
|
||
// In the case where we have a new major version, it'll come in first through the dotnet/runtime flow of the | ||
// SDK's own package references. The Stage0 SDK's bundled version props file will still be on the older major version | ||
// (and the older TFM that goes along with that). If we just replaced the bundled version with the new major version, | ||
// apps that target the 'older' TFM would fail to build. So we need to keep the bundled version from the existing | ||
// bundledversions.props in this one specific case. | ||
|
||
var newBundledPackageVersion = | ||
parsedOriginalBundledPackageVersion.Major == parsedMicrosoftNETCoreAppRefPackageVersion.Major | ||
? microsoftNETCoreAppRefPackageVersion | ||
: originalBundledNETCoreAppPackageVersion; | ||
|
||
propertyGroup.Element(ns + "BundledNETCoreAppPackageVersion").Value = newBundledPackageVersion; | ||
|
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.
@dsplaisted would you mind double-checking this and seeing if it matched what you were talking about?
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.
Yes, this matches what I expected. It might be better to use NuGetVersion
instead of SemanticVersion
. I'm not too sure of the differences between them, but the code I've seen has used NuGetVersion
.
latest change has us down to 34 test failures. @dotnet/source-build-internal @agocke @sbomer
|
Side note: not the issue being hit in this PR, but that error is also being downgraded to a warning (dotnet/runtime#91715), so the test will also need to be updated when that change flows over. |
Maybe the wasm error is the same as root cause as the native aot one - seems like the test environment gets constructed such that it is using older packages. As with |
This is because 9.0 targets are being used with a 8.0 runtime pack. I'm trying to reproduce this locally now. |
The tests fail with: ``` emcc : error : /private/tmp/helix/working/A19408C3/w/B54A09BA/e/testExecutionDirectory/.nuget/packages/microsoft.netcore.app.runtime.mono.browser-wasm/8.0.0-rc.1.23414.4/runtimes/browser-wasm/native/libmono-wasm-simd.a: No such file or directory ``` .. because the build is using 9.0 targets, but 8.0 runtime pack. This commit works around that issue by overriding the runtime pack path to point to the correct one. `WasmOverridePacks.targets` is taken from `Wasm.Build.Tests` in `dotnet/runtime`. This workaround can be removed once we have a proper 9.0 workload.
Looks like we are down to NativeAOT publish failures now? |
@dotnet/source-build-internal could you please advise how to track where these prebuilts are coming from and how to version |
eng/Version.Details.xml
Outdated
</Dependency> | ||
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="8.0.0-rc.1.23421.3"> | ||
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="9.0.0-alpha.1.23455.1"> | ||
<Uri>https://github.com/dotnet/runtime</Uri> |
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.
Is this intentionally incoherent with the other runtime dependencies? They are on version 9.0.0-alpha.1.23464.19 and sha a6c64c3c26417f579022e20cbcee992b4814ed2c. This is the source of the following source-build prebuilts that are being reported:
<Usage Id="Microsoft.NETCore.DotNetAppHost" Version="9.0.0-alpha.1.23455.1" File="src/artifacts/obj/Microsoft.DotNet.MSBuildSdkResolver/project.assets.json" />
<Usage Id="Microsoft.NETCore.DotNetAppHost" Version="9.0.0-alpha.1.23455.1" File="src/artifacts/obj/Microsoft.DotNet.SdkResolver/project.assets.json" />
<Usage Id="Microsoft.NETCore.DotNetHostResolver" Version="9.0.0-alpha.1.23455.1" File="src/artifacts/obj/Microsoft.DotNet.MSBuildSdkResolver/project.assets.json" IsDirectDependency="true" />
<Usage Id="Microsoft.NETCore.DotNetHostResolver" Version="9.0.0-alpha.1.23455.1" File="src/artifacts/obj/Microsoft.DotNet.SdkResolver/project.assets.json" IsDirectDependency="true" />
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.
We actually removed Microsoft.NETCore.DotNetHostResolver
in runtime. It looks like this repo is using it to grab hostfxr
for Framework builds. I think it can use Microsoft.NETCore.App.Runtime.*
packages - I'll take a look.
I took a quick look. Here is what I did:
|
Second grouping from Microsoft.DotNet.MSBuildSdkResolver / Microsoft.DotNet.SdkResolver is resolved. #35048 (comment) is all that is left. |
@marcpopMSFT ping |
Fix the 9.0.100 band in the emsdk transport package name