git.iko.soy/typeable/cabal2nix
on v20160308 help sign in
typeable/cabal2nix/doc/00-future-of-haskell-packaging-in-nixpkgs.md
41 lines 2.3 kB history raw
1The Future of Haskell Packaging in Nix
2======================================
4Fellow Nixers and Haskellers,
6the [Haskell NG][1] effort allowed us for the first time to distribute the
7latest version of every package known to Hackage --- well over 8,000 builds in
8total ---, and this seemed like a crazy leap forward at the time. These days, we
9distribute [60+ Haskell package sets][2] that represent different views into
10Hackage built with 8+ different compilers, and there's probably a lot more
11variety out there, living in our user's `config.nix` files, that we don't even
12know about. The requirements on our Haskell infrastructure become ever more
13complex. New questions pop up due to the growing popularity of Stack; our
14support for old compiler versions is somewhat lacking; and we still don't have
15convincing answers to questions like: how do I compile my package with
16profiling support?
18The issues we have to address are mostly known and understood. What we lack are
19brilliant ideas how to solve them.
21This thread is an attempt to make some headway towards that end through open
22discussion and collaboration. Instead of everyone having to browse a couple of
23thousand Github tickets to find out what's going on, I'll regularly pick one
24particular aspect that needs improvement and post a short article outlining the
25issues we have and potential solutions that we know of so that constructive
26dialogue can ensue.
28Everyone is invited to participate in the conversation with ideas, questions,
29suggestions, or references to Github Pull Requests that implement a perfect,
30production-ready solution waiting to be merged.
32The issues we've identified so far are:
34- [Use Function Application To Escape Override Hell](01-use-function-application-to-escape-override-hell.md)
35- [Guarantee Consistent Builds and Obsolete `overrideScope`](02-guarantee-consistent-builds-and-obsolete-overridescope.md)
36- [Map Cabal Files To Nix Without Information Loss](03-map-cabal-files-to-nix-without-information-loss.md)
37- [Set up a Sufficiently Powerful Build Farm](04-set-up-a-sufficiently-powerful-build-farm.md)
38- [Publish All of Hackage](05-publish-all-of-hackage.md)
40[1]: https://github.com/NixOS/nixpkgs/commit/c0c82ea2ebbcf0632260a931cf832cac1c8a014e
41[2]: https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/haskell-packages.nix