-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
Minimize the build graph by deleting unnecessary references #68603
Minimize the build graph by deleting unnecessary references #68603
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
@@ -260,7 +260,7 @@ System.Reflection.PortableExecutable.ManagedPEBuilder</PackageDescription> | |||
<ProjectReference Include="$(LibrariesProjectRoot)System.Collections.Immutable\src\System.Collections.Immutable.csproj" /> | |||
</ItemGroup> | |||
|
|||
<ItemGroup Condition="'$(TargetFrameworkVersion)' == 'v$(NetCoreAppCurrentVersion)'"> | |||
<ItemGroup Condition="'$(TargetFramework)' == '$(NetCoreAppCurrent)'"> |
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.
@eerhardt I'm applying your feedback here.
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.
Assuming it builds, LGTM.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@GrabYourPitchforks sees "delete SecureString.cs" and starts to celebrate 🥳
Co-authored-by: Jeremy Barton <[email protected]>
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.