packages feed

Cabal revisions of cabal-sort-0.1.2

Hackage metadata revisions edit the .cabal file after upload; each diff below is one revision.

revision 1
-Cabal-Version:    2.2-Name:             cabal-sort-Version:          0.1.2-License:          BSD-3-Clause-License-File:     LICENSE-Author:           Henning Thielemann <haskell@henning-thielemann.de>-Maintainer:       Henning Thielemann <haskell@henning-thielemann.de>-Homepage:         https://hub.darcs.net/thielema/cabal-sort/-Category:         Distribution-Synopsis:         Topologically sort cabal packages-Description:-  If you have a bunch of packages you may want to compile or recompile,-  then you need an order of compilation that meets the dependencies.-  Given a number of cabal package files,-  this program reads all those files-  and emits them topologically sorted according to their dependencies.-  This way you can compile many packages at once,-  say if a very low-level package has changed.-  .-  For compiling a couple of packages from their local darcs repositories-  in the right order, you may run something like-  .-  > for dir in `find . -name "*.cabal" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir && cabal install); done-  .-  Note that cabal-install does this automatically since version 0.10-  when you call it will multiple directory names as arguments.-  However, when the constraint solver in cabal-install fails-  you may still use cabal-sort for an automated build.-  .-  For uploading a set of packages to Hackage in the right order-  you may run-  .-  > for dir in `find . -name "*.cabal" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir && rm dist/*.tar.gz && cabal sdist && cabal upload dist/*.tar.gz); done-  .-  Sometimes you have to inspect a number of packages manually,-  e.g. in order to adapt your packages to a new GHC version.-  In this case I found it useful to run-  .-  > for dir in `find . -name "*.cabal" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir; bash); done-  .-  This way you start a local shell for every package.-  Then you can easily access commands in the shell history-  that you already run for previous packages,-  e.g. @editor *.cabal@.-  After you finished a package,-  you switch to the next package-  simply by leaving the shell by calling @exit@.-  .-  Problem 1: Given packages A, B, C,-  where C depends on B and B depends on A,-  and you call-  .-  > cabal-sort C.cabal A.cabal-  .-  then the emitted order of packages may be wrong,-  because cabal-sort does not get to know the dependency of C on B.-  Even if the order is correct,-  B.cabal is missing in the output-  and thus the list of cabal files cannot immediately be used-  for a sequence of cabal-install runs.-  .-  Problem 2: We ignore flags and merge all dependencies.-  This may lead to dependency cycles that cannot occur for any flag assignment.-  .-  You also have options @--parallel@ and @--makefile@-  that support parallel compilation.-  The first option is for manual parallelization-  and the second one allows you to compile parallelly using-  @make@'s @-j@/@--jobs@ option.-  .-  There is a second program called @ghc-pkg-dep@-  that finds recursively all packages that a set of packages depends on.-  Duplicates are eliminated and the packages are given topologically sorted,-  such that you can use this for recompilation of the packages.-  The packages must already be registered with @ghc-pkg@.-  .-  > ghc-pkg-dep pkgA-0.1 pkgB-2.3 pkgC-0.1.2-  .-  On GHC versions before 7.0 ghc-pkg runs quite slowly.-  In order to not get bored you may run the program with @--verbose=2@ option.-  .-  Related packages: @rpmbuild-order@-Tested-With:       GHC==6.10.4, GHC==6.12.3-Tested-With:       GHC==8.0.2, GHC==8.6.5-Build-Type:        Simple-Source-Repository head-  type:     darcs-  location: https://hub.darcs.net/thielema/cabal-sort/--Source-Repository this-  type:     darcs-  location: https://hub.darcs.net/thielema/cabal-sort/-  tag:      0.1.2---Executable cabal-sort-  Build-Depends:-    Cabal >=3.8 && <3.11,-    comfort-graph >=0.0.4 && <0.1,-    shell-utility >=0.1 && <0.2,-    optparse-applicative >=0.18 && <0.19,-    directory >=1 && <1.4,-    filepath >=1.1 && <1.5,-    containers >=0.2 && <0.7,-    explicit-exception >=0.1.4 && <0.3,-    transformers >=0.2 && <0.7,-    base >=2 && <5--  GHC-Options:      -Wall-  Default-Language: Haskell98-  Hs-source-dirs:   src-  Main-Is:          CabalSort.hs--Executable ghc-pkg-dep-  Build-Depends:-    Cabal >=1.22 && <3.11,-    shell-utility >=0.1 && <0.2,-    optparse-applicative >=0.18 && <0.19,-    process >=1.0 && <1.7,-    containers >=0.2 && <0.7,-    explicit-exception >=0.1.6 && <0.3,-    non-empty >=0.3.3 && <0.4,-    utility-ht >=0.0.12 && <0.1,-    transformers >=0.2 && <0.7,-    bytestring >=0.9.1 && <0.13,-    base >=2 && <5--  GHC-Options:      -Wall-  Default-Language: Haskell98-  Hs-source-dirs:   src-  Main-Is:          GhcPkgDep.hs+Cabal-Version:    2.2
+Name:             cabal-sort
+Version:          0.1.2
+x-revision: 1
+License:          BSD-3-Clause
+License-File:     LICENSE
+Author:           Henning Thielemann <haskell@henning-thielemann.de>
+Maintainer:       Henning Thielemann <haskell@henning-thielemann.de>
+Homepage:         https://hub.darcs.net/thielema/cabal-sort/
+Category:         Distribution
+Synopsis:         Topologically sort cabal packages
+Description:
+  If you have a bunch of packages you may want to compile or recompile,
+  then you need an order of compilation that meets the dependencies.
+  Given a number of cabal package files,
+  this program reads all those files
+  and emits them topologically sorted according to their dependencies.
+  This way you can compile many packages at once,
+  say if a very low-level package has changed.
+  .
+  For compiling a couple of packages from their local darcs repositories
+  in the right order, you may run something like
+  .
+  > for dir in `find . -name "*.cabal" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir && cabal install); done
+  .
+  Note that cabal-install does this automatically since version 0.10
+  when you call it will multiple directory names as arguments.
+  However, when the constraint solver in cabal-install fails
+  you may still use cabal-sort for an automated build.
+  .
+  For uploading a set of packages to Hackage in the right order
+  you may run
+  .
+  > for dir in `find . -name "*.cabal" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir && rm dist/*.tar.gz && cabal sdist && cabal upload dist/*.tar.gz); done
+  .
+  Sometimes you have to inspect a number of packages manually,
+  e.g. in order to adapt your packages to a new GHC version.
+  In this case I found it useful to run
+  .
+  > for dir in `find . -name "*.cabal" | fgrep -v _darcs | xargs cabal-sort --info=dir`; do (cd $dir; bash); done
+  .
+  This way you start a local shell for every package.
+  Then you can easily access commands in the shell history
+  that you already run for previous packages,
+  e.g. @editor *.cabal@.
+  After you finished a package,
+  you switch to the next package
+  simply by leaving the shell by calling @exit@.
+  .
+  Problem 1: Given packages A, B, C,
+  where C depends on B and B depends on A,
+  and you call
+  .
+  > cabal-sort C.cabal A.cabal
+  .
+  then the emitted order of packages may be wrong,
+  because cabal-sort does not get to know the dependency of C on B.
+  Even if the order is correct,
+  B.cabal is missing in the output
+  and thus the list of cabal files cannot immediately be used
+  for a sequence of cabal-install runs.
+  .
+  Problem 2: We ignore flags and merge all dependencies.
+  This may lead to dependency cycles that cannot occur for any flag assignment.
+  .
+  You also have options @--parallel@ and @--makefile@
+  that support parallel compilation.
+  The first option is for manual parallelization
+  and the second one allows you to compile parallelly using
+  @make@'s @-j@/@--jobs@ option.
+  .
+  There is a second program called @ghc-pkg-dep@
+  that finds recursively all packages that a set of packages depends on.
+  Duplicates are eliminated and the packages are given topologically sorted,
+  such that you can use this for recompilation of the packages.
+  The packages must already be registered with @ghc-pkg@.
+  .
+  > ghc-pkg-dep pkgA-0.1 pkgB-2.3 pkgC-0.1.2
+  .
+  On GHC versions before 7.0 ghc-pkg runs quite slowly.
+  In order to not get bored you may run the program with @--verbose=2@ option.
+  .
+  Related packages: @rpmbuild-order@
+Tested-With:       GHC==6.10.4, GHC==6.12.3
+Tested-With:       GHC==8.0.2, GHC==8.6.5
+Build-Type:        Simple
+Source-Repository head
+  type:     darcs
+  location: https://hub.darcs.net/thielema/cabal-sort/
+
+Source-Repository this
+  type:     darcs
+  location: https://hub.darcs.net/thielema/cabal-sort/
+  tag:      0.1.2
+
+
+Executable cabal-sort
+  Build-Depends:
+    Cabal >=3.8 && <3.13,
+    comfort-graph >=0.0.4 && <0.1,
+    shell-utility >=0.1 && <0.2,
+    optparse-applicative >=0.18 && <0.19,
+    directory >=1 && <1.4,
+    filepath >=1.1 && <1.6,
+    containers >=0.2 && <0.8,
+    explicit-exception >=0.1.4 && <0.3,
+    transformers >=0.2 && <0.7,
+    base >=2 && <5
+
+  GHC-Options:      -Wall
+  Default-Language: Haskell98
+  Hs-source-dirs:   src
+  Main-Is:          CabalSort.hs
+
+Executable ghc-pkg-dep
+  Build-Depends:
+    Cabal >=1.22 && <3.13,
+    shell-utility >=0.1 && <0.2,
+    optparse-applicative >=0.18 && <0.19,
+    process >=1.0 && <1.7,
+    containers >=0.2 && <0.8,
+    explicit-exception >=0.1.6 && <0.3,
+    non-empty >=0.3.3 && <0.4,
+    utility-ht >=0.0.12 && <0.1,
+    transformers >=0.2 && <0.7,
+    bytestring >=0.9.1 && <0.13,
+    base >=2 && <5
+
+  GHC-Options:      -Wall
+  Default-Language: Haskell98
+  Hs-source-dirs:   src
+  Main-Is:          GhcPkgDep.hs