-
Notifications
You must be signed in to change notification settings - Fork 345
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
source build prebuilts #2228
source build prebuilts #2228
Conversation
@@ -2,7 +2,7 @@ | |||
|
|||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFrameworks>net472;netcoreapp2.0</TargetFrameworks> |
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 needs corresponding update in the props file that references the task binaries.
@safern , any update on validating that moving the TargetFramework for Microsoft.DotNet.CodeAnalysis to netstandard2.0 is now safe for CoreFx |
@danmosemsft , this PR is blocked on validating that CoreFx is not broken if we move to netstandard2.0. Do you have any resources that can help us make progress? |
@ericstj thoughts? |
TFM change is fine but I’m more concerned with the version changes. Those won’t work in the numerous repos that are still building with the 2.x CLI due to MSBuild pinning these in its deps file causing tasks to be downgraded. Have you tested downstream consumption of these changes? |
The problem @chcosta wanted us to review, is that when we targeted the analyzers against .netstandard2.0 we where hitting this when building on VS:
https://github.com/dotnet/corefx/issues/32980 So that is why I rolled it back to |
That would only be a problem if we were still running on desktop version or roslyn without netstandard inbox, or running on netcoreapp1.x. We're now running on a roslyn version that targets ns2.0. I'm more worried about the fallout of these version changes. I spent last week cleaning up regressions that resulted from folks blindly changing these in the past. MSBuild is very brittle here. |
I agree, that could cause us spend a lot of time investigating and fixing issues like we did with NuGet in the past weeks. |
Thanks, @ericstj, I'll investigate the version changes |
@riarenas , where are we w.r.t. flowing CLI version to repos via Arcade? @alexperovich , do we have telemetry available which tells us the current version of the dotnet sdk Arcade repos are using? |
Waiting for final PR feedback on dotnet/arcade-services#294 and then will need a Maestro production rollout. |
@chcosta @riarenas @alexperovich -- what is the status on this? can it be merged? |
I need to further validate the MSBuild versioning changes based on recent conversations with Eric St. John. This issue is top of mind and I'll make progress soon. |
@ericstj , I'm internalizing your feedback as meaning that we have an upper limit on the version of NuGet we use which is defined by the MSBuild deps file provided with the sdk. So, we can upgrade the version, but realistically, we can never build against the "source build" version of NuGet and instead we should handle these as we handle other dependencies provided by the host (build against a reference package). Is that correct? Are the MSBuild versions in a similar category; meaning we should build against a reference package rather than trying to consume the latest build version? I looked at the issues you linked, and they provide additional context, but unfortunately the builds linked in the issues have expired so I'm not certain where the problems surfaced (ie, a good place to go to validate I'm not causing the same type of regressions that were previously fixed). |
All the failure modes are cases where tasks fail to load because they reference a version of a dll higher than the one pinned in the MSBuild.deps.json file. Depending on which MSBuild you're trying to run on you need to make sure your dependencies aren't higher than the versions pinned by that MSBuild. Building against a reference package may work, but it may not since many of these task DLLs redistribute their dependencies. |
What is your recommend for how to handle this? Is this something we can even enforce? This is sounding less like an Arcade issue, and more like something we need to drive from the source build perspective. @dseefeld , how would you like to handle this category of issues? |
@dseefeld , can we get reference packages for Microsoft.Build.* and NuGet.* assemblies? These seem to fall into the category of dependencies which are provided by the host (.NET Core Sdk). Does that seem reasonable? |
@chcosta I can look into adding them as reference packages. |
PlatformAbstractions and CodeAnalysis as well. What's the best way to validate that, at that point, we will be compliant w.r.t. prebuilts? |
Addresses dotnet/source-build#970 (comment)
Adds a daily Arcade subscription to consume MSBuild updates (NuGet dependencies are not yet available via dependency flow).
@safern is confirming that moving the TargetFramework for Microsoft.DotNet.CodeAnalysis to netstandard2.0 is now safe for CoreFx