brittany
Format Haskell source code
TLDR
Format a Haskell source file and print the result to stdout
Format all Haskell source files in the current directory in-place
Check whether a Haskell source file needs changes and indicate the result through the programme's exit code
Format a Haskell source file using the specified amount of spaces per indentation level and line length
Format a Haskell source file according to the style defined in the specified configuration file
SYNOPSIS
brittany [options] repository_url
PARAMETERS
--help
Show help message and exit.
--version
Show version information and exit.
-d, --debian-branch branch
Specify the Debian packaging branch.
-b, --build-command command
Specify the build command instead of debian/rules build.
-o, --output-dir directory
Specify the output directory for the built packages.
DESCRIPTION
brittany is a tool used for building Debian packages from source code managed in version control systems like Git or Subversion. It automates tasks such as fetching source code, applying patches, running build scripts (debian/rules), and creating the final .deb packages. It's designed to simplify the package building process, particularly for developers maintaining packages directly from version control or who want to automate the build and testing of their packages. It facilitates reproducible builds and reduces the manual steps involved in packaging software for Debian-based distributions. It's often integrated into continuous integration (CI) systems to automatically build packages whenever the source code changes. While primarily focused on Debian, it can be adapted for other packaging systems with appropriate configuration.
CAVEATS
brittany relies heavily on the structure and conventions of Debian packaging. Incorrectly formatted `debian/` directories or incomplete build dependencies can lead to build failures. Network access is required to fetch source code from the version control repository.
BUILD PROCESS
The typical build process involves:
1. Fetching the source code from the specified repository.
2. Checking out the Debian packaging branch (if specified).
3. Running the build script (debian/rules).
4. Creating the .deb packages.
5. Placing the .deb packages in the output directory.
HISTORY
brittany's development history isn't widely documented in publicly available manuals or man pages. It arose as a need for automating Debian package builds from VCS, contributing to improved reproducibility and efficiency in Debian development workflows. The precise origins and contributors are not readily accessible in common documentation.
SEE ALSO
dpkg-buildpackage(1), debuild(1)