All Projects → input-output-hk → Stack2nix

input-output-hk / Stack2nix

Licence: mit
Generate nix expressions for Haskell projects

Programming Languages

haskell
3896 projects

Labels

Projects that are alternatives of or similar to Stack2nix

stackage2nix
Generate Nix build instructions from a Stack file
Stars: ✭ 48 (-48.39%)
Mutual labels:  nix, stack
Upcast
Abandonware
Stars: ✭ 91 (-2.15%)
Mutual labels:  nix
Nix Tools
Translate Cabals Generic Package Description to a Nix expression
Stars: ✭ 78 (-16.13%)
Mutual labels:  nix
Nixos Configs
My NixOS configs
Stars: ✭ 86 (-7.53%)
Mutual labels:  nix
Bartlett
A simple Jenkins command line client to serve your needs.
Stars: ✭ 81 (-12.9%)
Mutual labels:  stack
Vuizvui
Nix(OS) expressions used by the OpenLab and its members
Stars: ✭ 87 (-6.45%)
Mutual labels:  nix
Home Manager Template
A quick-start template for using home-manager in a more reproducible way.
Stars: ✭ 73 (-21.51%)
Mutual labels:  nix
Setup
My own front end web development set up, covering everything from operating system to analytics.
Stars: ✭ 93 (+0%)
Mutual labels:  stack
Bauer
An Emacs+Nix IDE
Stars: ✭ 89 (-4.3%)
Mutual labels:  nix
Cachix Action
Build software only once and put it in a global cache
Stars: ✭ 85 (-8.6%)
Mutual labels:  nix
Aceto
A programming language based on a 2D Hilbert curve grid
Stars: ✭ 83 (-10.75%)
Mutual labels:  stack
Arcprogressstackview
Present your progress bars in arc mode with information and total control.
Stars: ✭ 1,242 (+1235.48%)
Mutual labels:  stack
Ble Security Attack Defence
✨ Purpose only! The dangers of Bluetooth Low Energy(BLE)implementations: Unveiling zero day vulnerabilities and security flaws in modern Bluetooth LE stacks.
Stars: ✭ 88 (-5.38%)
Mutual labels:  stack
B
Collection of configuration stuff.
Stars: ✭ 80 (-13.98%)
Mutual labels:  nix
Nix Processmgmt
Experimental Nix-based process management framework
Stars: ✭ 92 (-1.08%)
Mutual labels:  nix
Terranix
terranix is a terraform.json generator with a nix-like feeling
Stars: ✭ 77 (-17.2%)
Mutual labels:  nix
Data Structures
This repository contains some data structures implementation in C programming language. I wrote the tutorial posts about these data structures on my personal blog site in Bengali language. If you know Bengali then visit my site
Stars: ✭ 82 (-11.83%)
Mutual labels:  stack
Homies
linux package management
Stars: ✭ 86 (-7.53%)
Mutual labels:  nix
Ghc.nix
Nix (shell) expression for working on GHC
Stars: ✭ 94 (+1.08%)
Mutual labels:  nix
Pre Commit Hooks.nix
Seamless integration of https://pre-commit.com git hooks with Nix.
Stars: ✭ 92 (-1.08%)
Mutual labels:  nix

stack2nix

Build Status Hackage

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 two options. The first - using Nix is recommended. If there are difficulties please file an issue.

Nix (recommended)

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

Stack + Nix

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

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].