This is all news to me, and un-googleable to boot: http://www.google.pl/search?hl=en&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=cabal+referred-versions&spell=1
(no results) So yes, I think this referred-versions machinery should at least be made more transparent for situations when it does the wrong thing, like with xml-parsec. I think your last suggestion is good > cabal install haxml > Downloading HaXml-1.13.3... > Note: the recommended version is HaXml-1.13.3 but latest version is > HaXml-1.19, use cabal install haxml-1.19 if you want that version. I would have this message pop up for both cabal install and cabal upgrade -- especiallly since with cabal upgrade the result was for me completely bafflling. Thomas. 2008/11/15 Duncan Coutts <[EMAIL PROTECTED]>: > On Sat, 2008-11-15 at 12:39 +0100, Thomas Hartman wrote: >> When I specify >> >> Build-Depends: base, parsec, HaXml >= 1.19.4 >> >> in xml-parsec.cabal >> >> it does install correctly. > > Yes, saying what version it needs is a good thing. It's all guesses > otherwise. > >> I guess what happens is that cabal install takes the earliest version >> of a package registered to try to build. I guess that's a reasonable >> default. > > Actually it does that for specific packages, there's a file in the > hackage index called 'referred-versions': > > base < 4 > parsec < 3 > HaXml == 1.13.* > QuickCheck < 2 > > These are all cases where there are large numbers of packages that fail > to specify an upper version constraint but break when built with the > later version of the package. In the case of HaXml it is also because > the 1.13 series is the one considered stable by its author. > >> What seems unreasonable to me is that cabal continued to take the >> earlier version even after I hid it with ghc-pkg hide. > > We cannot in general consider the hidden status of packages or we'd > never be able to use packages like 'ghc' which are always hidden. > Perhaps they could be used as soft preferences. If so should those come > before or after the preferences from the command line or from the > hackage index? > >> My advice would be to improve the error message to read >> >> "... Could not find module `Text.XML.HaXml.Posn': >> it is a member of package HaXml-1.19.4, which is hidden >> It can be unhidden by adding >> >> Build-Depends: HaXml >= 1.19.4 >> >> to xml-parsec.cabal" > > Unfortunately we cannot easily do that. It is ghc that produces the > message about hidden packages but it is cabal that told ghc to hide all > the packages (other than those specified in the .cabal file). Some > people suggest that we should try parsing the ghc error messages to be > able to provide such hints but I don't think that's sensible. > >> That leaves the issue of cabal upgrade not upgrading to the latest >> version available on hackage, which still feels like a real bug to me. > > That's again down to the preferred versions in the hackage index. It > only comes into effect when you specify no version when asking for a > package. If you cabal install 'haxml >= 1.14' then it'll pick the latest > version. > > When you "cabal install haxml", do you mean "install the default > version" or "install the latest experimental version"? Currently it > means the former. If there is general agreement it should mean the > latter then we can switch it. > > Or perhaps it just needs an informational message to tell the user > whenever the default version is not the latest version. > > cabal install haxml > Downloading HaXml-1.13.3... > Note: the recommended version is HaXml-1.13.3 but latest version is > HaXml-1.19, use cabal install haxml-1.19 if you want that version. > > Or something like that. > > Duncan > > _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
