
On Fri, 2009-02-06 at 15:18 +0100, Peter Robinson wrote:
Hello,
Hi Peter,
I recently upgraded GHC on one of my machines and therefore had to reinstall all installed packages. Granted, cabal-install makes this a lot easier nowadays, but I saw that there's a ticket [1] for adding a "world" file (speaking in Gentoo terminology) that records all user requested packages, so I gave that a try. You can find a patch for the Head branch that adds preliminary support here: http://darcs.monoid.at/cabal-install/
Yay! :-)
Basically the patch adds Distribution.Client.World that provides an /insert/, /delete/, and /getContents/ interface. /World.insert/ is called from Distribution.Client.Install upon successful build.
Sounds sensible.
What's currently missing is the implementation of a cabal command that rebuilds the package list from ~/.cabal/world (or some other location set by the currently also missing configuration options).
Ok.
1. The world file only contains the list of package names and versions as requested by the user. I suppose that's all that's needed for rebuilding, right?
Yes.
2. How should that command look like? Something like: # cabal install --world
Hmm.
Suggestions and advice welcome!
Yes, if anyone else has a suggestion on this pitch in. In gentoo we say: $ emerge --upgrade world ie world acts rather like a meta-package of all the things the user deliberately installed. Thanks very much Peter for having a go at this one. I promise I'll properly review your patch soon. I'm shortly going to do a release and I think I might leave this new feature 'til afterwards. However don't worry as I expect to put out another release shortly after that with more dependency resolver improvements so your feature will make it for that release. Duncan