3There are multiple components that play a part in the haskell.nix
4infrastructure. These are `nix-tools`, `haskell.nix`, `hackage.nix`,
8 .-------------. .-------------.
9.- nix-tools ------. | haskell.nix | .- | hackage.nix |
10| .--------------. | .----------------. '-------------' | '-------------'
11| | stack-to-nix |---> | stack-pkgs.nix |-. | | |
12| '--------------' | '----------------' | v | v
13| .-------------. | .----------. '--> .----------. <-' .--------------.
14| | plan-to-nix |----> | plan.nix |------.---> | pkgs.nix | <--- | stackage.nix |
15| '-------------' | '----------' | '----------' '--------------'
16| .--------------. | .--------------. | |
17| | cabal-to-nix |---> | $package.nix |--' v
18| '--------------' | '--------------' .-------------.
19'------------------' | default.nix |
29## [nix-tools](https://github.com/input-output-hk/nix-tools)
31nix-tools is a Haskell package that provides the following tools:
33- `cabal-to-nix`: a `.cabal` to `.nix` transformer that retains
34 conditional expressions.
36- `stack-to-nix`: a `stack.yaml` to `.nix` transformer that will read
37 in a `stack.yaml` expression an generate a `pkgs.nix` file suited for
38 use with `haskell.nix`.
40- `plan-to-nix`: a `plan.json` to `.nix` transformer that will read in
41 a `plan.json` file and generate a `pkgs.nix` file suited for use
44as well as a few other tools used to generate `hackage.nix` and `stackage.nix`.
48[Haskell.nix][] is the runtime system for this Haskell infrastructure.
49It contains the component builder, as well as the system package and
50license mapping. Without haskell.nix the expressions generated by
51either of the `nix-tools` tools make little sense on their own.
55[hackage.nix][] provides all cabal expressions from hackage as nix
56expressions. It is periodically updated to keep in sync with the set
57of packages available on hackage.
61[stackage.nix][] is similar to hackage.nix but provides all stackage
62snapshots (lts, and nightly) as nix expressions. It naturally depends
63on hackage.nix to resolve package names, versions and revisions to the
64repsective packages from hackage.nix.
66[haskell.nix]: https://github.com/input-output-hk/haskell.nix
67[hackage.nix]: https://github.com/input-output-hk/hackage.nix
68[stackage.nix]: https://github.com/input-output-hk/stackage.nix
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list