@hackage cabal-scripts0.1

Shell scripts for support of Cabal maintenance

This is a collection of Bash shell scripts for support of Cabal package development. The scripts are installed in your cabal/share directory, thus you may extend your command search path accordingly.

If you are in the directory of mypkg (the directory that contains mypkg.cabal), then you may run scripts in the following way:

  • cabal-test dist/mypkg-0.1.tar.gz: Unpack the tarball in the /tmp directory and try to build it using Cabal. This check helps to find missing files in the Cabal package description.

  • cabal-darcs-bump-version 0.2: Replaces the package and the repository version number in your Cabal file by 0.2 and records an according Darcs patch.

  • cabal-darcs-upload 0.2: This command supports the following workflow: Say, on Hackage there is version 0.0.1 of your package and the cabal file in the darcs repository says Version: 0.1. Now you decide to finish that version and to work next on the version 0.2. This is the time when you call cabal-darcs-upload 0.2. The call runs cabal-test and cabal check before uploading. Then it tags the repository with the current package version number. Then it uploads the package to Hackage. Finally it bumps the version of the package to 0.2. This workflow makes sure, that you never have two different contents for the same version in Hackage and in your darcs repository.

  • cabal-darcs-repository: Shows some lines of Source-Repository fields, that you may copy into mypkg.cabal. We fetch the repository URL from Darcs files. Unfortunately, as developer you will certainly use a private read-write access to your repository like code.haskell.org:/home/user/mypkg/, whereas the Cabal field may contain a public read-only access, such as http://code.haskell.org/~user/mypkg/.

See also package cabal-sort that provides the commands cabal-sort and ghc-pkg-dep.