NAME

dht -- Debian Haskell Packaging Tools

SYNOPSIS

./dht subcommand [args..]

DESCRIPTION

This is the Debian Haskell Team multi purpose tool, combining various more or less useful tools.

Supported subcommands:

Subcommands

dht what-to-upgrade

dht what-to-build

Usage: dht what-to-build [directory..]

For all given directories (defaults to p/*/), check if they are to be built. This means, in particular:

dht tag

Usage: dht tag [directory..]

For all given directories, which should be Debian source packages, figure out the current version from debian/changeslog and create a tag, tagging the youngest git commit that changed this particular source package.

dht debian2dsc

Usage: dht debian2dsc [-o output/] [dir ...]

Expects directories containing the contents of the debian/ directory of a Debian source package (i.e. control, changelog, watch, ...). Uses the watch file to retrieve the upstream tarball (unless it already exists in the local directory), creates a debian.tar.xz tarball from the given directory (ignoring the ususal suspects like _darcs and *~) and creates a corresponding .dsc file; all without unpacking the upstream tarball.

dht cabal-debian

Usage: dht cabal-debian [option...]

This is a wrapper around cabal-debian that tries to infer a few useful facts: * If the test suite is enabled. * Which Cabal flags are to be used. * The source package name.

None of these checks are perfect, so check the result.

It also passes --official.

dht upload

Usage: dht upload foo.changes

Signs the .changes file and the corresponding .dsc file in a temporary location (to avoid touching the original files), uploads them to the archive using dput ssh-upload and tags them in the repository and pushes the tag.

Checks that the distribution is not UNRELEASED and that the tag does not exist already (by tagging first).

dht mass-change

Usage: dht mass-change [-n] [MESSAGE] [ACTION] DIRECTORY ...

This script runs ACTION in each of the given directories. If the ACTION effected a change, it will add MESSAGE to the changelog.

It assumes that all directories are in the same git repository as this script. It ensures that the repository is clean tobegin with, and will commit all changes at once at the end, if there was a change.

dht make-all

TODO

dht init

Usage: dht init [-D distribution] Cabal-Pkg ...

This script will:

Please review the package afterwards, in particular debian/copyright.

dht upgrade

Usage: dht upgrade [-D dist] directory/

This script will:

At the end, it will rightfully ask you to review the changes, giving you a helpful link to the diff between the upstream sources.