
On Sun, 2008-01-27 at 12:54 -0800, Adam Langley wrote:
On Jan 27, 2008 12:24 PM, Don Stewart
wrote: It should be possible to specify that your lib depends on exactly 0.9.0.1 in the .cabal file.
In the same general area. When you upgrade something like bytestring and have to update everything that was built with it (otherwise you'll get type errors because the ByteString types from the two different versions are different) cabal-install is of no help. Since it already believes that I have those packages installed (correctly) if refuses to install them again so I have to do it all by hand.
I realise that I should be sending darcs patches, not bug reports, but a --force to reinstall an already installed package would be great. I guess, ideally, cabal-install would know to rebuild everything that depends on x when I upgrade x.
This issue is filed as: http://hackage.haskell.org/trac/hackage/ticket/220
darcs patches might follow if I can get round to it (or the next time I update bytestring...)
Great. The first step is to take advantage of the new feature in ghc-pkg in ghc-6.8.3 to enable us to get a complete database for all installed packages, rather than just a list of package names and versions. The following step would be to detect and warn about inconsistent versions of deps. The hardest part is integrating this constraint into the cabal-install package search / dependency resolution algorithm, and if the constraint turns out to be unsatisfiable, working out which packages have to be rebuilt to get a consistent set of dependencies. Of course in the case cited here we have to either make everything stick with bytestring-0.9.0.1 or try and rebuild the ghc package against the newer bytestring, but there is no .cabal package available for the ghc package. In principle I think there could be, there just isn't at the moment. Duncan