Skip to content
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

Is the PVP transitive? #23

Open
sol opened this issue Feb 24, 2018 · 1 comment
Open

Is the PVP transitive? #23

sol opened this issue Feb 24, 2018 · 1 comment

Comments

@sol
Copy link
Member

sol commented Feb 24, 2018

Question

Can a package that adheres to the PVP depend on a package that violates the PVP?

Assumption

My assumption so far has been that the answer to this question is "no".

Rational

Looking at the following sentence:

Note that modifying imports or depending on a newer version of another package may cause extra orphan instances to be exported and thus force a major version change.

This suggests that a package a is "responsible" for orphan instances from transitive dependencies. Now if there is a package c in the transitive dependency graph of a and c is not constrained with a valid upper bound then package a does not honor the PVP as it is not guarded against possible additions of orphan instances to c in the future.

For completeness, the scenario here is:

  • package a depends on package b, specifying a valid upper bound
  • package b depends on package c, violating the PVP by not specifying a valid upper bound
  • package c adheres to the PVP

Does this make sense or do I miss something?

@bergmark
Copy link

I think you're right. To be strictly compliant a would need to directly depend on all of b's dependencies so that it can take this responsibility instead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants