mombad.blogg.se

Snitch software
Snitch software





So, when you install "Newtonsoft.Json" (as an example), Snitch would be able to know that you are depending on version "1.x" of "" and use that information to help you out.Įven without that, it's a super helpful tool. I would love that Snitch could consider the dependency tree of installed NuGet packages. There's only one thing that I would love to have here. Like anything that Patrik Svensson does, this project looks amazing. I bet you have found some things that you were not aware of. Now that you have executed it, you can clean your solution. Patrik Svensson has a track record of awesomeness ⭐. Go check it out (after you finish reading) and give it a start on GitHub. Out of curiosity, Snitch has this elegant user experience since it's based on Spectre.Console.

snitch software

You will likely see a beautiful result like this: Then, using the terminal, navigate to the folder of a. NET CLI installed, just run: dotnet tool install -g snitch The best part is that Snitch is simple and frictionless. If you like to keep things clean 🧼 and tidy 🧹, I bet that now you can see the value of it.

snitch software

We are talking about Project A referencing Newtonsoft.Json as well, where its dependencies already reference it. You probably noticed in the example above that we not only have a problem with having multiple versions of the same package, but we also have a dependency that can be removed since it's already a transitive dependency. Next time you need to update it, you update on A and B. Now imagine you have Newtonsoft.Json version 12.0.2 installed in A, B and C. This time, Project A will depend on both Project B, and C. Let's get back to our Projects A, B and C. 🤔 Transitive Dependencies eventual problemsĪ question still remains: How does that contribute to Dependency Hell? Now we know what Transitive Dependencies are. Why? Because it was induced by the dependencies of the direct reference Project B. In this case, A is transitively dependent on C. So, Project A references Project B, which references Project C.

snitch software

Imagine that you have projects A, B and C.

snitch software

Let's start by defining what a Transitive Package Reference (or Transitive Dependency) is.Ī Transitive Dependency is a dependency induced by the dependencies of the direct references of that project. "help you find transitive package references that can be removed." When solutions grow in size, it's common to see projects referencing multiple versions of the same package or duplicated references. Not the same type of Hell from node_modules. Unfortunately, NuGet Packages and References can be (rarely) a new form of Hell. If you don't remember, I'm happy for you. Do you remember DLL Hell? 😈 Yes, me too.







Snitch software