@hackage stack2nix0.2.1
Convert stack.yaml files into Nix build instructions.
Categories
License
MIT
Maintainer
jacob.mitchell@iohk.io
Links
Versions
Installation
Dependencies (21)
- Cabal >=2.0.0.2 && <2.3
- SafeSemaphore >=0.10.1 && <0.11
- async >=2.1.1.1 && <2.3
- base >=4.9 && <4.12
- cabal2nix >=2.10
- containers >=0.5.7.1 && <0.6 Show all…
Dependents (0)
stack2nix
About
stack2nix automates conversion from Stack configuration file to Nix expressions. The purpose is to map stack.yaml one-to-one into Nix expressions.
stack2nix high-level workflow:
- Generate stackage snapshot to determine complete fixed version list of packages based on resolver
- apply any additional configuration (local packages, extra dependencies, etc) from
stack.yaml - generate complete list of dependencies to Nix expressions, replacing upstream
hackage-packages.nix
Installation
There are three options. The first - using Nix is recommended. If there are difficulties please file an issue.
Nix (recommended)
- Install Nix.
- Clone this repo.
- Run
nix-buildto build.
Stack
- Install Nix.
- Clone this repo.
- Run
stack install --nixto install.
Virtual Machine
- Install VirtualBox and Vagrant.
- Clone this repo.
- Run
./scripts/vagrant.shand take a coffee break. - If there are no errors, log into the VM:
vagrant ssh.
Usage
Nix expressions generated by stack2nix require NixOS 17.09 or later.
Local Packages
Sometimes it's convenient to build local Haskell packages. Assuming the current directory is a locally maintained fork of Pandoc:
$ stack2nix . > default.nix
$ nix-build -A pandoc
Remote Packages
Stack2nix can generate a nix expressions for Haskell packages hosted in git repositories.
$ stack2nix --revision 242e2a064f6a32b22e1599bbfe72e64d7b6203b8 https://github.com/jgm/pandoc.git > demo.nix
$ nix-build -A pandoc demo.nix
Testing
Run ./scripts/travis.sh to build and test.