Minimize the build graph by deleting unnecessary references#68603
Minimize the build graph by deleting unnecessary references#68603ViktorHofer merged 8 commits intodotnet:mainfrom
Conversation
Minimizing projects' dependency graph. There are tons of unnecessary Reference and ProjectReference items which aren't required anymore as the referenced projects became full facade assemblies. Removing those from a leaf's graph makes the graph smaller and therefore the project's evaluation and build faster.
|
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
|
Tagging subscribers to this area: @dotnet/area-infrastructure-libraries Issue DetailsContributes to #65552 Minimizing projects' dependency graph. There are tons of unnecessary Examples of full facade projects are:
The changes were performed via:
Unrelated changes that I applied in the projects that I already touched:
|
| <!-- error : CannotChangeAttribute : Attribute 'System.Diagnostics.SwitchLevelAttribute' on 'System.Diagnostics.BooleanSwitch' changed | ||
| from '[SwitchLevelAttribute(typeof(bool))]' in the implementation to '[SwitchLevelAttribute(typeof(Boolean))]' in the reference. --> | ||
| <Reference Include="System.IO.FileSystem" /> |
There was a problem hiding this comment.
@tannergooding do you think the above mentioned ApiCompat error will be fixed with your recent change to use primitive types always?
There was a problem hiding this comment.
This one I'm not sure is impacted. The logic I changed was only impacting Boolean itself using bool vs Boolean (and same for other primitives).
I wouldn't have expected it to also impact attribute decisions like this one. So there may still be another GenApi fix needed to ensure typeof here is allowing the keyword where possible.
| </ItemGroup> | ||
|
|
||
| <ItemGroup Condition="'$(TargetFrameworkVersion)' == 'v$(NetCoreAppCurrentVersion)'"> | ||
| <ItemGroup Condition="'$(TargetFramework)' == '$(NetCoreAppCurrent)'"> |
|
EDIT: As Jeremy already approved the PR I don't think additional reviews are needed (basically because this should be a non controversial change). |
|
Tagging subscribers to this area: @dotnet/area-meta Issue DetailsContributes to #65552 Minimizing projects' dependency graph. There are tons of unnecessary Examples of full facade projects are:
The changes were performed via:
Unrelated changes that I applied in the projects that I already touched:
|
@bartonjs that was fast 😄. And I agree that if the changes builds successfully, they should be correct. |
| @@ -1,5 +0,0 @@ | |||
| // Licensed to the .NET Foundation under one or more agreements. | |||
There was a problem hiding this comment.
@GrabYourPitchforks sees "delete SecureString.cs" and starts to celebrate 🥳
Co-authored-by: Jeremy Barton <jbarton@microsoft.com>
Contributes to #65552
Minimizing projects' dependency graph. There are tons of unnecessary
Reference and ProjectReference items which aren't required anymore as
the referenced projects became full façade assemblies. Removing those
from a leaf's graph makes the graph smaller and therefore the project's
evaluation and build faster.
Examples of full facade projects are:
The changes were performed via:
<Reference Include="full-facade-assembly" /><ProjectReference Include="full-facade-project" />defined ProjectReference/Reference items and removing them if not.
Unrelated changes that I applied in the projects that I already touched:
previously brought in transitively.
project files more readable. Most projects in src/libraries already
follow that style.
readability of project files.