Contributing guidelines


To ensure all code changes adhere to existing code quality standards, some automatic checks can be run locally.

Ensure that the code builds without warnings and passes the tests:

cabal test

And also run the linter on your code:

cabal install hlint
cabal exec hlint -- src tests

Build the documentation and check if you get any warnings:

cabal haddock --enable-documentation

Submitting changes

Clone the repository or pull the latest changes to your local repository by running:

git pull origin master

Create a new branch to work on:

git checkout -b branch-name-with-my-changes

After finishing your work commit your changes with

git commit

If it is a big changeset you can create multiple commits. Now you can generate a set of patches, that represents the difference between branch-name-with-my-changes and master:

git format-patch master

This command creates a patch for each commit and saves them in the current directory. The patches are numbered sequentially, their filenames contain the the first line of the commit message and their extension is .patch.


Contributions are very welcome. Send your bug reports, feature requests, questions and patches to or open an issue here. Patches can be attached to existing issues, otherwise feel free to create a new one.

Updated by Eugen Wissner about 2 months ago · 1 revisions