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
Remove transitive dependencies already included by other projects #9685
Conversation
and found by snitch tool https://github.com/spectresystems/snitch `snitch GitExtensions.sln` (prjects with only dependency global `Microsoft.VisualStudio.Threading` have been removed ┌─────────────────────────────────────────────────────────────────────────────────┐ │ Packages that can be removed from GitUI: │ │ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├──────────────────────────────────────────────────────┼──────────────────────┤ │ │ │ System.IO.Abstractions │ GitCommands │ │ │ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │ │ └──────────────────────────────────────────────────────┴──────────────────────┘ │ │ │ │ Packages that can be removed from GitExtensions.Plugins.AutoCompileSubmodules: │ │ ┌───────────────────────────────────────────────┬─────────────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├───────────────────────────────────────────────┼─────────────────────────────┤ │ │ │ Microsoft.VisualStudio.Composition │ GitUIPluginInterfaces │ │ │ │ System.Reactive.Interfaces │ GitUIPluginInterfaces │ │ │ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │ │ └───────────────────────────────────────────────┴─────────────────────────────┘ │ │ │ │ Packages that can be removed from TeamCityIntegration: │ │ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├──────────────────────────────────────────────────────┼──────────────────────┤ │ │ │ System.Reactive.Linq │ GitCommands │ │ │ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │ │ └──────────────────────────────────────────────────────┴──────────────────────┘ │ │ │ │ Packages that can be removed from GitExtensions.Plugins.Bitbucket: │ │ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├──────────────────────────────────────────────────────┼──────────────────────┤ │ │ │ Newtonsoft.Json │ GitCommands │ │ │ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │ │ └──────────────────────────────────────────────────────┴──────────────────────┘ │ │ │ │ Packages that can be removed from JenkinsIntegration: │ │ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├──────────────────────────────────────────────────────┼──────────────────────┤ │ │ │ Newtonsoft.Json │ GitCommands │ │ │ │ System.Reactive.Linq │ GitCommands │ │ │ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │ │ └──────────────────────────────────────────────────────┴──────────────────────┘ │ │ │ │ Packages that can be removed from AppVeyorIntegration: │ │ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├──────────────────────────────────────────────────────┼──────────────────────┤ │ │ │ Newtonsoft.Json │ GitCommands │ │ │ │ System.Reactive.Linq │ GitCommands │ │ │ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │ │ └──────────────────────────────────────────────────────┴──────────────────────┘ │ │ │ │ Packages that can be removed from GitCommands.Tests: │ │ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├──────────────────────────────────────────────────────┼──────────────────────┤ │ │ │ Newtonsoft.Json │ GitCommands │ │ │ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │ │ └──────────────────────────────────────────────────────┴──────────────────────┘ │ │ │ │ Packages that can be removed from GitUI.Tests: │ │ ┌─────────────────────────────────────────────────────┬───────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├─────────────────────────────────────────────────────┼───────────────────────┤ │ │ │ System.IO.Abstractions │ GitCommands │ │ │ │ Microsoft.VisualStudio.Threading │ ConEmuWinForms │ │ │ └─────────────────────────────────────────────────────┴───────────────────────┘ │ │ │ │ Packages that can be removed from AzureDevOpsIntegration: │ │ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │ │ │ Package │ Referenced by │ │ │ ├──────────────────────────────────────────────────────┼──────────────────────┤ │ │ │ Newtonsoft.Json │ GitCommands │ │ │ │ System.Reactive.Linq │ GitCommands │ │ │ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │ │ └──────────────────────────────────────────────────────┴──────────────────────┘ │ └─────────────────────────────────────────────────────────────────────────────────┘
Notes:
|
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.
+1
@@ -5,7 +5,6 @@ | |||
</ItemGroup> | |||
|
|||
<ItemGroup> | |||
<PackageReference Include="Newtonsoft.Json" /> |
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.
You'd find that below we have the following code:
<ItemGroup>
<PluginAssembly Include="$([System.IO.Path]::Combine('$(TargetDir)', 'Newtonsoft.Json.dll'))" />
</ItemGroup>
If we remove this line this entry becomes very difficult to reason about... I don't have a good suggestion atm, just making a note.
I wonder if we can get away from using Newtonsoft.Json.dll at all and use System.Text.Json API instead. But this is a completely different story...
and found by snitch tool https://github.com/spectresystems/snitch
snitch GitExtensions.sln
(projects with only dependency global
Microsoft.VisualStudio.Threading
have been removed)┌─────────────────────────────────────────────────────────────────────────────────┐
│ Packages that can be removed from GitUI: │
│ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├──────────────────────────────────────────────────────┼──────────────────────┤ │
│ │ System.IO.Abstractions │ GitCommands │ │
│ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │
│ └──────────────────────────────────────────────────────┴──────────────────────┘ │
│ │
│ Packages that can be removed from GitExtensions.Plugins.AutoCompileSubmodules: │
│ ┌───────────────────────────────────────────────┬─────────────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├───────────────────────────────────────────────┼─────────────────────────────┤ │
│ │ Microsoft.VisualStudio.Composition │ GitUIPluginInterfaces │ │
│ │ System.Reactive.Interfaces │ GitUIPluginInterfaces │ │
│ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │
│ └───────────────────────────────────────────────┴─────────────────────────────┘ │
│ │
│ Packages that can be removed from TeamCityIntegration: │
│ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├──────────────────────────────────────────────────────┼──────────────────────┤ │
│ │ System.Reactive.Linq │ GitCommands │ │
│ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │
│ └──────────────────────────────────────────────────────┴──────────────────────┘ │
│ │
│ Packages that can be removed from GitExtensions.Plugins.Bitbucket: │
│ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├──────────────────────────────────────────────────────┼──────────────────────┤ │
│ │ Newtonsoft.Json │ GitCommands │ │
│ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │
│ └──────────────────────────────────────────────────────┴──────────────────────┘ │
│ │
│ Packages that can be removed from JenkinsIntegration: │
│ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├──────────────────────────────────────────────────────┼──────────────────────┤ │
│ │ Newtonsoft.Json │ GitCommands │ │
│ │ System.Reactive.Linq │ GitCommands │ │
│ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │
│ └──────────────────────────────────────────────────────┴──────────────────────┘ │
│ │
│ Packages that can be removed from AppVeyorIntegration: │
│ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├──────────────────────────────────────────────────────┼──────────────────────┤ │
│ │ Newtonsoft.Json │ GitCommands │ │
│ │ System.Reactive.Linq │ GitCommands │ │
│ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │
│ └──────────────────────────────────────────────────────┴──────────────────────┘ │
│ │
│ Packages that can be removed from GitCommands.Tests: │
│ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├──────────────────────────────────────────────────────┼──────────────────────┤ │
│ │ Newtonsoft.Json │ GitCommands │ │
│ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │
│ └──────────────────────────────────────────────────────┴──────────────────────┘ │
│ │
│ Packages that can be removed from GitUI.Tests: │
│ ┌─────────────────────────────────────────────────────┬───────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├─────────────────────────────────────────────────────┼───────────────────────┤ │
│ │ System.IO.Abstractions │ GitCommands │ │
│ │ Microsoft.VisualStudio.Threading │ ConEmuWinForms │ │
│ └─────────────────────────────────────────────────────┴───────────────────────┘ │
│ │
│ Packages that can be removed from AzureDevOpsIntegration: │
│ ┌──────────────────────────────────────────────────────┬──────────────────────┐ │
│ │ Package │ Referenced by │ │
│ ├──────────────────────────────────────────────────────┼──────────────────────┤ │
│ │ Newtonsoft.Json │ GitCommands │ │
│ │ System.Reactive.Linq │ GitCommands │ │
│ │ Microsoft.VisualStudio.Threading │ GitExtUtils │ │
│ └──────────────────────────────────────────────────────┴──────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────────┘
Test methodology
Merge strategy
I agree that the maintainer squash merge this PR (if the commit message is clear).
✒️ I contribute this code under The Developer Certificate of Origin.