Skip to content

tek/hix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Apr 15, 2025
7b2ad1d · Apr 15, 2025
Apr 11, 2025
Feb 21, 2025
Apr 15, 2025
Apr 12, 2025
Mar 28, 2025
Apr 12, 2025
Apr 15, 2025
Jul 28, 2024
Feb 22, 2022
Mar 27, 2025
Apr 11, 2025
Feb 16, 2025
Feb 16, 2025
Jun 14, 2024
Mar 28, 2025
Apr 11, 2025
Feb 21, 2025

Repository files navigation

About

Hix is a toolkit for Haskell development that uses Nix to provide a unified, declarative interface for a range of build related tasks:

  • Reproducible environments and dependency overrides
  • Cabal file generation
  • Hackage upload
  • Rapid-recompilation testing with ghcid
  • Haskell Language Server
  • CTags generation
  • Virtual Machines for testing
  • Compatibility checks for multiple GHC versions

To learn more, please visit the documentation page.

tldr

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.8.tar.gz#bootstrap'
nix run 'github:tek/hix?ref=0.8.0#bootstrap'

You can create a new project in the current directory:

nix run 'https://flakehub.com/f/tek/hix/~0.8.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.8.tar.gz";
}

Then configure your project with NixOS module options:

{
  description = "Example";
  inputs.hix.url = "https://flakehub.com/f/tek/hix/~0.8.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