-
This question came to mind when I was looking at GH Sponsor's list of packages/repos my pet projects apparently depend on. I found out the top of the list are those that are in fact n-th level npm dependencies of dependencies used by the likes of React or .net's Imagine a situation:
Will sponsorship requirement apply to me? For instance, a real life example:
Assuming newtonsoft.json included SL (it likely won't but what-if)
So the obvious question is, how is this handled? I would expect transitive dependencies to be excluded from any checks for the reasons above and only direct ones (the ones I personally include) to be taken into consideration but that's my point of view... |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
Great question @psimsa. The package author gets to decide if their sponsorship is transitive or not (at the moment). NuGet provides a package dependency graph that SL inspects to determine if your package is a top-level dependency or not. If the SL settings used by the package-provided analyzer doesn't specify transitivity, SL won't check sponsorship unless the package is top-level. Since direct dependencies are the most likely scenario where you want sponsorship checks (i.e. some Azure package using Newtonsoft.Json, the check would be for the Azure package authors, not their consumers), the default is to be non-transitive. |
Beta Was this translation helpful? Give feedback.
Great question @psimsa.
The package author gets to decide if their sponsorship is transitive or not (at the moment).
NuGet provides a package dependency graph that SL inspects to determine if your package is a top-level dependency or not. If the SL settings used by the package-provided analyzer doesn't specify transitivity, SL won't check sponsorship unless the package is top-level.
Since direct dependencies are the most likely scenario where you want sponsorship checks (i.e. some Azure package using Newtonsoft.Json, the check would be for the Azure package authors, not their consumers), the default is to be non-transitive.