[main] Update dependencies from dotnet/msbuild#39088
Conversation
…0228.3 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24128-03
…0228.4 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24128-04
…0228.4 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24128-04
…0228.4 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24128-04
…0228.4 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24128-04
…0304.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24154-01
|
@dotnet/illink-contrib Could someone take a look at these test failures? |
…0305.2 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24155-02
|
This started failing with this commit range: dotnet/msbuild@6f44380...986f8ec |
|
Even though it's unlikely, dotnet/msbuild@986f8ec is the only possible change from that diff. cc @jeffkl |
Those changes are behind change wave 17.10, does this repo opt into that? The builds succeeded but tests failed Not sure how the test would hit that? |
|
ChangeWaves are on by default, so the test doesn't have to opt into them for them to fire. |
|
I currently suspect ImportProjectExtensionTargets is being set to false, and that means there's some targets file that isn't being imported, so we don't care about ILLinkTargetsPath, and that's making us fail the unit tests. |
|
Can you please repro it locally? I am very intrigued now and want to know what's going on but don't have time to investigate myself today. |
|
I had a lot of trouble building for some reason, but I got the unit test to run. It failed in a similar way. I think there should be a .targets file here: |
|
I'm not very familiar with how that is supposed to work. Are you saying |
|
I don't know very much about it either, and apparently I got the directory wrong, but I verified that the publish command is supposed to create this file: I'll try to get a binlog and send it to you over teams |
|
Thanks to @Forgind providing binlogs, I was able to figure out the problem. The unit tests are writing a file to I think the best solution is to fix the unit tests to no longer have a dependency on a generated MSBuild import be imported during restore and build. These tests are not testing |
|
The "breaking change" here is if someone has a *.g.targets that they create before Restore and want imported during Restore. I told jeffkl that seems unusual to me; do you agree @dsplaisted? If they just want it to be imported during the build, this change doesn't break that. |
|
I pushed a fix at ceb443b |
|
Are This seems like a breaking change to me. Maybe usage of this extensibility point is low enough that no one else would be impacted, but I don't have a way of knowing either way. |
|
Yes its considered a breaking change if:
As long as people generate the extensions as part of restore and don't rely on them being used during restore, its not a breaking change. |
|
@jeffkl thanks for taking a look. Something's still wrong though:
|
|
Whoops, I ran the other tests with this functionality locally and they passed so I just assumed I fixed those other ones. I'll take a look later today or tomorrow. |
If I'm following correctly, it sounds like you're saying that because NuGet generates To me, that's a breaking change I wouldn't expect. Even if I hadn't taken a dependency on it, if I was trying to use the project extensions functionality and encountered this new behavior I would probably find it very confusing and think it was a bug. If we don't think anyone else using using project extensions, then it's fine to fix the issue in the test. (And we would like to migrate to the new |
|
@jeffkl king ping as tests are still failing |
Sorry something else came up late last week, I'll get these working today. |
…0306.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24156-01
…0307.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24157-01
…0307.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24157-01
…0307.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24157-01
…0307.1 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24157-01
…0311.2 Microsoft.SourceBuild.Intermediate.msbuild , Microsoft.Build , Microsoft.Build.Localization From Version 17.10.0-preview-24127-03 -> To Version 17.10.0-preview-24161-02
0894232 to
40371d8
Compare
40371d8 to
866a386
Compare
ViktorHofer
left a comment
There was a problem hiding this comment.
Approving to unblock dependency flow and get new msbuild changes into the SDK. Jeff, you still might want to follow-up with Daniel on the intention of the breaking change.
|
The fix for this ended up being fairly simple. Instead of generating a .targets file to |
This test is running `GetValuesCommand` with `PublishTrimmed` set to `true` in the generated `<project>.WriteValuesToFile.g.targets`. In the failure case, `ImportProjectExtensionProps` is false (due to https://github.com/dotnet/msbuild/blob/147ecadd19ae031d5a511ad55908cff9bcdc17c5/src/Tasks/Microsoft.Common.props#L68 imported from full framework MSBuild props) during restore, so this file isn't imported, we don't set `PublishTrimmed`, Microsoft.NET.ILLink.Tasks isn't restored, and then `ILLinkTargetsPath` never gets set. I was wondering why this wasn't failing in main on .NET Core, and found that the `GetValuesCommand` behavior was fixed as part of dotnet#39088 to not rely on `ImportProjectExtensionProps`. So an alternative fix would be to backport the GetValuesCommand fix. This change is just a simpler fix to set `PublishTrimmed` in the project file for this testcase.
This pull request updates the following dependencies
From https://github.com/dotnet/msbuild