#220: detect inconsistent package dependencies ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: enhancement | Status: closed Priority: normal | Milestone: Component: Cabal library | Version: 1.2.3.0 Severity: normal | Resolution: fixed Keywords: | Difficulty: hard (< 1 day) Ghcversion: 6.8.2 | Platform: ----------------------------+----------------------------------------------- Changes (by duncan): * status: new => closed * resolution: => fixed Comment: {{{ Tue Feb 19 00:01:39 GMT 2008 Duncan Coutts <duncan@haskell.org> * Detect broken and inconsistent package deps We now check for packages that are broken due to their dependencies having been unregistered. We fail and print a fairly sensible message in this case. We also check for inconsistent dependencies and give a warning saying which packages are depending on inconsistent versions of a third. This is a warning not an error because it does not always lead to failure. Hopefully it'll help people who are otherwise just running into random compile errors. This fixes ticket #220. }}} We now get warnings like this: {{{ Configuring Foo-1.0... Warning: This package indirectly depends on multiple versions of the same package. This is highly likely to cause a compile failure. package rss-3000.0.1 requires HaXml-1.13.3 package Foo-1.0 requires HaXml-1.19.2 }}} This was for a `Foo-1.0` package that depended on `rss` and `HaXml` where both `HaXml-1.13.3` and `HaXml-1.19.2` were available but `rss` had been built against the older `HaXml-1.13.3`. So by default we're still picking the latest `HaXml` version but now we warn that we got inconsistent versions. In this example it would be possible to avoid the inconsistency by picking `HaXml-1.13.3`. That is the next step. -- Ticket URL: <http://hackage.haskell.org/trac/hackage/ticket/220#comment:3> Hackage <http://haskell.org/cabal/> Hackage: Cabal and related projects