Re: [Haskell-cafe] [Haskell] Support tools for development with Cabal and Darcs

On 10 February 2012 12:06, Henning Thielemann
I have uploaded three packages to Hackage that shall simplify maintaining cabal packages under darcs revision control. They simplify tasks like uploading packages after some tests, cabal version handling, compiling multiple local packages in the right order, replacing identifiers in multiple files, renaming modules.
* http://hackage.haskell.org/package/darcs-scripts * http://hackage.haskell.org/package/cabal-scripts * http://hackage.haskell.org/package/cabal-sort
Hi Henning, Would you mind giving me a breif explanation of the "compiling multiple local packages in the right order" feature? I'd like to understand what is missing in cabal-install in this respect. Currently with cabal-install you can say: cabal install ./a ./b ./c and it will install the packages in those directories in the right order. (It is also possible to list other install targets including local and remote tarballs, and of course packages from hackage). Duncan

On Fri, 10 Feb 2012, Duncan Coutts wrote:
Would you mind giving me a breif explanation of the "compiling multiple local packages in the right order" feature? I'd like to understand what is missing in cabal-install in this respect.
Currently with cabal-install you can say:
cabal install ./a ./b ./c
and it will install the packages in those directories in the right order. (It is also possible to list other install targets including local and remote tarballs, and of course packages from hackage).
I believe that the first version of cabal-sort is older than this cabal-install feature. Nonetheless, cabal-sort can be used for other purposes, too. E.g. you can use plain Cabal installation, when 'cabal install' does not work due to problems in constraint solving. You can upload packages in topologically sorted order to Hackage, such that building on Hackage works correctly. Is this also done by cabal-install's upload command? You can also use cabal-sort for stepping into package directories and do some manual updates before installing. However, I will add references to the new cabal-install features in the documentation of cabal-sort.

On 10 February 2012 14:00, Henning Thielemann
On Fri, 10 Feb 2012, Duncan Coutts wrote:
Would you mind giving me a breif explanation of the "compiling multiple local packages in the right order" feature? I'd like to understand what is missing in cabal-install in this respect.
Currently with cabal-install you can say:
cabal install ./a ./b ./c
and it will install the packages in those directories in the right order. (It is also possible to list other install targets including local and remote tarballs, and of course packages from hackage).
I believe that the first version of cabal-sort is older than this cabal-install feature.
Ah yes, looks like we developed it concurrently. cabal-install 0.10.2 came out in March 2011 and cabal-sort 0.0.1 in May.
Nonetheless, cabal-sort can be used for other purposes, too. E.g. you can use plain Cabal installation, when 'cabal install' does not work due to problems in constraint solving. You can upload packages in topologically sorted order to Hackage, such that building on Hackage works correctly. Is this also done by cabal-install's upload command?
No it's not, it's an interesting point. In practice with the current builder you'd be very unlucky to hit the exact time when it kicks off builds (only a few times a day). With the new server it's likely to be more of an issue since that will allow lots of builder clients.
You can also use cabal-sort for stepping into package directories and do some manual updates before installing.
However, I will add references to the new cabal-install features in the documentation of cabal-sort.
Cheers. I wonder if you have any suggestions for UI changes/improvements for cabal-install for working with related sets of local packages (something it's fairly weak on at the moment). Are there things in cabal-sort you think we should just lift directly into cabal-install or variations etc? Duncan

On Fri, 10 Feb 2012, Duncan Coutts wrote:
I wonder if you have any suggestions for UI changes/improvements for cabal-install for working with related sets of local packages (something it's fairly weak on at the moment). Are there things in cabal-sort you think we should just lift directly into cabal-install or variations etc?
Sure, you can add a command 'sort' that outputs the given packages in topologically sorted order. :-)

On Fri, 10 Feb 2012, Henning Thielemann wrote:
On Fri, 10 Feb 2012, Duncan Coutts wrote:
I wonder if you have any suggestions for UI changes/improvements for cabal-install for working with related sets of local packages (something it's fairly weak on at the moment). Are there things in cabal-sort you think we should just lift directly into cabal-install or variations etc?
Sure, you can add a command 'sort' that outputs the given packages in topologically sorted order. :-)
I missed something: The reason for the current upload was a new cabal-sort feature that emits the package dependencies as a Makefile in order to allow building packages in parallel using 'make -j'. Of course, a '--jobs' option would also be a nice addition to 'cabal install'.
participants (2)
-
Duncan Coutts
-
Henning Thielemann