[Haskell-cafe] How to determine correct dependency versions for a library?
simons at cryp.to
Fri Nov 16 18:30:51 CET 2012
> A 126.96.36.199 build-depends: B ==2.5.* C ==3.7.* (overspecified)
> B 188.8.131.52 build-depends: C ==3.* (underspecified)
> C 184.108.40.206
> Everything works nice until C-220.127.116.11 appears with incompatible changes
> that break B, but not A.
> Now both A and B have to update their dependencies and we have now:
> A 18.104.22.168 build-depends: B ==2.5.* C >=3.7 && <3.9
> B 22.214.171.124 build-depends: C >=3 && <3.8
> C 126.96.36.199
> And now the following combination is still valid:
> A 188.8.131.52
> B 184.108.40.206 (old version)
> C 220.127.116.11
thank you for contributing this insightful example.
When such a situation has arisen in the past, it's my experience that the
author of B typically releases an update to fix the issue with the latest
version of C:
B 18.104.22.168 build-depends: C >= 3.8
So that particular conflict does hardly ever occur in practice.
Note that package A would build just fine after that update of B -- if the
author of A hadn't overspecified its dependencies. As it is, however, a
new version of A has to released that changes no code, but only the Cabal
More information about the Haskell-Cafe