Hix is a toolkit for Haskell development that uses Nix to provide a unified, declarative interface for a range of build related tasks:
ghcid
To learn more, please visit the documentation page.
You can convert an existing project with Cabal files by executing this command in the project root, using FlakeHub or GitHub:
nix run 'https://flakehub.com/f/tek/hix/~0.7.tar.gz#bootstrap'
nix run 'github:tek/hix?ref=0.7.1#bootstrap'
You can create a new project in the current directory:
nix run 'https://flakehub.com/f/tek/hix/~0.7.tar.gz#new' -- --name 'project-name' --author 'Your Name'
The manual process consists of first adding Hix to your Haskell project flake by specifying the input:
{
inputs.hix.url = "https://flakehub.com/f/tek/hix/~0.7.tar.gz";
}
Then configure your project with NixOS module options:
{
description = "Example";
inputs.hix.url = "https://flakehub.com/f/tek/hix/~0.7.tar.gz";
outputs = {hix, ...}: hix {
packages.parser = {
src = ./.;
library = {
enable = true;
dependencies = ["aeson ^>= 2.0" "bytestring"];
};
executable.enable = true;
test.enable = true;
};
};
}
Now generate Cabal files with:
nix run .#gen-cabal
Build the package with nix build
, or run the tests in test/Main.hs
in GHCid:
nix run .#ghcid -- -p parser