haskell / haskell/pvp

Is the PVP transitive?

Open
#23 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
CSS
Stars
40
Forks
24
PR merge metrics
No merged PRs in 30d

Description

### 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?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.