Skip to content

Commit

Permalink
Mention PVP exceptions in RELEASING
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucsanszky committed Jul 2, 2024
1 parent 64e4a7d commit b1cd693
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,21 @@ point in time. This is necessary to guarantee that if such a package is compatib
other packages from this repository, which have been previously released, the version
bounds should reflect that.

### Exceptions to the PVP versioning scheme

In certain instances, we don't strictly follow the PVP. One such case is when we are adding
orphan instances to `testlib`s. As per the PVP, this should warrant a major version bump.
However, we treat `testlib` orphans as regular instances since they are only defined for
types that are local to the package that contains the `testlib` where the orphan must live.
Hence this won't cause breakage for dependent packages and thus it is enough to only bump
the minor version.
Another exception that we make is related to [upper bounds](#upper-bounds) mentioned below.

### Upper bounds

Normally, [upper bounds are required by
PVP](https://pvp.haskell.org/#dependencies-in-cabal) for all dependencies of a
package. This is the only exception we make to the PVP, and we do not require strict upper
package. This is one exception we make to the PVP, and we do not require strict upper
bounds for dependencies that come from Hackage. For example, there is no need to add an
upper bound on `containers` package, unless there is a known incompatibility. Speculative
upper bounds over time lead to overly restrictive build plans that are forced to favor
Expand Down

0 comments on commit b1cd693

Please sign in to comment.