Confusing language re: "depends on" in FAQ #22
Replies: 4 comments 11 replies
|
Thanks for articulating the above @davidwhitney - +1 for some sort of clarification being made here. My personal read of the scope is the same as David's (direct dependency, not transient).
|
|
Your understanding is correct. To use C# terminology, "reference" aligns with |
|
I just wanted to throw something into the mix here. Rob kindly reached out to me on social media, more regarding how our legal department might gain some clarity on the situation, and I spotted this thread. Where I'm a little lost is this type of scenario:
As per David:
And I agree, and feel somewhat awkward and ungrateful jumping into this conversation. But my concern is not paying, it's a lack of clarity about when payment might be expected. And our legal dept have already tripped up once on this because they saw "the license isn't changing" and assumed "so we don't have to pay". Now I've pointed out to them that isn't true they're onto their second round of investigation and chin-stroking about the matter. (It's not lost on me either that this process will cost more than $20). So whilst this discussion is about clarity in the FAQs, I also feel like, fundamentally, hanging the legality of using a package on "depends on" is a footgun waiting to happen. Not sure what the answer is to that though. But my personal opinion is that transitive dependencies should count. If I built a wrapper around NServiceBus (I obviously wouldn't 🙃 but I could) and released that, whoever used it would have to pay Particular. Because why is it any different, just because it's a dependency? |
|
I note your reply here Rob: I note Rob's reply here on adjusting the FAQs around how to handle dependency versioning issues. This is useful clarity as to intent of the author. But the EULA simply talks about usage and has no indication of direct or transitive. The EULA simply cares about usage of the binary. Now, perhaps the consumer is not asked to agree to the EULA transitively and so can claim that they never agreed to it, but that feels like the kind of issue that makes procurement and legal teams very twitchy. I note that the Polly announcement just referred to usage, not to direct dependency over a transitive dependency - agreeing with the EULA but muddying the water for users of Polly. I accept that this may be the first "big" library, used mainly as a transitive dependency, to test the OSMF, but there is a lot of "grey" here. Much of it seems to be being brushed under the carpet as "it's only $20." But there is no guarantee that next month it's not $2000. The only constraint is the price point at which a maintainer may feel that a fork would succeed. And there is no guarantee that I get anything for that, other than a binary. |
Uh oh!
There was an error while loading. Please reload this page.
Hey folks - very much a fan of this initiative.
With Polly's recent announcement of adopting the OSMF (personally extremely supportive) I ended up in an open-to-interpretation discussion with a friend about the virility of the OSMF to consumers of their own framework project that depended on Polly.
Here is the specific scenario:
... some time later ...
To use the resilience feature in their framework, the users themselves interact with Polly APIs (they make use of Poly syntax to define policies), this led to two competing opinions regarding if the end-consumers of Framework A were in scope of the OSMF.
Their take:
My take:
Unfortunately, I think the conflation of different uses of the word "reference" introduces ambiguity into the mix here and leads to a potentially uncharitable read that brings what I would characterise as indirect usage into scope.
So, questions to the floor:
I would suggest something like:
Q. "What counts as referenced?"
A. Any packages you directly add, libraries you download and explicitly add, or dependencies you take directly are referenced dependencies. Packages, libraries or code that is a dependency-of-a-dependency that may get added or referenced as a side effect, peer-dependency or ride-along component are not the explicit target of this fee.
The ImageSharp EULA does a good job with a definition of: "Transitive Package Dependency" shall mean any Work in Object form that is installed indirectly by a third party dependency unrelated to Six Labors."
This is obviously related to a previous discussion here: https://github.com/orgs/opensourcemaintenancefee/discussions/12 - but focused on making the FAQ slightly clearer rather than amending the EULA. I appreciate that trying to work out how people can't pay is a mildly against-the-spirit of the initiative line of discussion, but it feels like this ambiguity distracts from the intent.
Thanks!
All reactions