stack2nix: Convert stack.yaml files into Nix build instructions.

[ distribution, library, mit, nix, program ] [ Propose Tags ]

Convert stack.yaml files into Nix build instructions.


[Skip to Readme]

Downloads

Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.1.0, 0.1.2.0, 0.1.3.0, 0.2, 0.2.1, 0.2.2, 0.2.3
Change log ChangeLog.md
Dependencies async (>=2.1.1.1 && <2.3), base (>=4.9 && <4.12), Cabal (>=2.0.0.2 && <2.3), cabal2nix (>=2.10), containers (>=0.5.7.1 && <0.6), directory (>=1.3 && <1.4), distribution-nixpkgs (>=1.1 && <1.2), filepath (>=1.4.1.1 && <1.5), hackage-db, language-nix, lens, optparse-applicative (>=0.13.2 && <0.15), path, pretty, process (>=1.4.3 && <1.7), regex-pcre (>=0.94.4 && <0.95), SafeSemaphore (>=0.10.1 && <0.11), stack (>=1.5.1), stack2nix, temporary (>=1.2.0.4 && <1.4), text (>=1.2.2.1 && <1.3), time [details]
License MIT
Author Jacob Mitchell
Maintainer jacob.mitchell@iohk.io
Revised Revision 1 made by domenkozar at 2018-09-04T15:14:06Z
Category Distribution, Nix
Source repo head: git clone https://github.com/input-output-hk/stack2nix.git
Uploaded by domenkozar at 2018-07-24T22:13:04Z
Distributions
Executables stack2nix
Downloads 4024 total (20 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-07-24 [all 1 reports]

Readme for stack2nix-0.2

[back to package description]

stack2nix

Build Status

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.

  1. Install Nix.
  2. Clone this repo.
  3. Run nix-build to build.

Stack

  1. Install Nix.
  2. Clone this repo.
  3. Run stack install --nix to install.

Virtual Machine

  1. Install VirtualBox and Vagrant.
  2. Clone this repo.
  3. Run ./scripts/vagrant.sh and take a coffee break.
  4. 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.