nixpkgs/pkgs/development/compilers/elm/packages/README.md
Marek Fajkus a97986a481 elmPackages.{elm-test,elm-analyse..}: tooling additions and fixes
Extends the number of available tools for Elm language.

1. fix and move "elm-test"
Previously located in nodePackages.elm-test but broken (see binwrap info).
Now fixed and located in elmPackages.elm-test

2. add "elm-verify-examples"
Generate tests from documentation examples

3. add "elm-upgrade"
upgrade assistant using statical analysis

4. add "elm-analyse"
static analysis for elm code (linter)

5. move "elm-doc-preview"
originally located in nodePackages.elm-upgrade - moved for consistency

6. add "elmi-to-json"
transforms elmi files to json - used by other tools like elm-test and
elm-verify-examples

Node.js based dependencies are defined the same way as nodePackages
contaparts but are independent (has it's own packages.json)

patch-binwrap.nix is used to as a replacement for binwrap package
used by some nodejs dependencies that depends on Haskell binaries
(elm-test and elm-verify-examples).

BREAKING CHANGE
===============
elm-doc-preview (as well as broken elm-test) is now commented
in `node-packages-v10.json` and should be removed once new
nix-expressions for node10 are generated (out of scope of this PR)

There are still 2 outstanding elm related packages in nodePackages

1. elm-oracle - legacy package which is not compatible with elm 0.19
2. elm-live - should be moved in the future I think
2019-06-18 21:29:10 +02:00

1.3 KiB

Elm packages

Mixtures of useful Elm lang tooling containing both Haskell and Node.js based utilities.

Upgrades

Haskell parts of the ecosystem are using cabal2nix. Please refer to nix documentation and cabal2nix readme for more information. Elm-format update scripts is part of its repository.

Node dependencies are defined in node-packages.json. Node2nix is used for generating nix expression from this file. Use generate-node-packages.sh for updates of nix expressions.

Binwrap Patch

Some node packages might use binwrap typically for installing elmi-to-json. Binwrap is not compatible with nix. To overcome issues with those packages apply patch-binwrap.nix which essentially does 2 things.

  1. It replaces binwrap scripts with noop shell scripts
  2. It uses nix for installing the binaries to expected location in node_modules

Example usage be found in elm/default.nix.