Skip to content

Fix our Compiler NuGet dependency list#26762

Merged
jaredpar merged 13 commits intodotnet:masterfrom
jaredpar:fix-nupkg
May 15, 2018
Merged

Fix our Compiler NuGet dependency list#26762
jaredpar merged 13 commits intodotnet:masterfrom
jaredpar:fix-nupkg

Conversation

@jaredpar
Copy link
Copy Markdown
Member

@jaredpar jaredpar commented May 10, 2018

This change addresses two problems:

  1. Verification gap in how our compiler toolset package is constructed. This allowed us to take new dependencies in the compiler without properly updating the supporting files and hence generating a significant bug tail.
  2. Updating our NuSpec and SWR files to address our previous addition of System.Threading.Tasks.Extensions (Use ValueTask<T> on allocation hot paths #23557).

One difference you will see after this change is there are more DLLs in our compiler toolset package, several of which are demonstrably unneeded. Part of the reason we've gotten into this state is we keep trying to outsmart our tooling here and only include DLLs we know are needed. This has proved to be extremely fragile. Instead the decision was made to simply take the dependencies listed in our build output directories.

I raised the point about the unnecessary DLLs being included in the output with the the SDK team. At this time the behavior is by design and there are no plans to change it.

Fixes: #26709

@jaredpar jaredpar added Area-Infrastructure PR For Personal Review Only The PR doesn’t require anyone other than the developer to review it. labels May 10, 2018
@jaredpar jaredpar requested review from a team as code owners May 10, 2018 16:54
@jaredpar jaredpar force-pushed the fix-nupkg branch 2 times, most recently from 400bf0b to da11db6 Compare May 10, 2018 19:44
@jaredpar
Copy link
Copy Markdown
Member Author

Example of the output when the NuGet and SWR files are incorrect

https://ci.dot.net/job/dotnet_roslyn/job/master/job/windows_build_correctness_prtest/13639/console

@jaredpar jaredpar changed the title WIP: Fix our Compiler NuGet dependency list Fix our Compiler NuGet dependency list May 11, 2018
@jaredpar jaredpar removed the PR For Personal Review Only The PR doesn’t require anyone other than the developer to review it. label May 11, 2018
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This has to be kept until this PR is merged because the current state of netci.groovy depends on it. Once this is merged I will immediately follow up with a PR to delete this as it won't be needed anymore.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These DLLs are no longer deployed due to the change to MSBuildTask.csproj hence these attributes aren't needed anymore. If left the project will actually fail to compile.

@jaredpar
Copy link
Copy Markdown
Member Author

CC @dotnet/roslyn-infrastructure for review

jaredpar and others added 12 commits May 11, 2018 08:46
The basic validation of our NuPkg and SWR files is implemented. There
are sill some hacks on how these files are found (hard coded paths, etc
...) that need to be cleaned up. The basic checks though are in place.
Need to restructure our CI so that we can call build.ps1 from our
test-build-correctness leg not the other way around. This is necessary
as we now examine many other artifacts including NuGet packages.
This updates our NuSpec and SWR files to be compliant with the analysis
we are now running over them.
The runtimes directory needs to be checked in addition to the root
directory. This has the same set of problems with deployed dependencies.
Copy link
Copy Markdown
Member

@agocke agocke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@jaredpar jaredpar merged commit 1338eb6 into dotnet:master May 15, 2018
@jaredpar jaredpar deleted the fix-nupkg branch May 15, 2018 03:53
jaredpar added a commit to jaredpar/roslyn that referenced this pull request May 15, 2018
This is cleaning up some code needed to bootstrap groovy changes in an
earlier PR:

dotnet#26762
@jaredpar jaredpar mentioned this pull request May 15, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants