a97986a481
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
26 lines
1.3 KiB
Markdown
26 lines
1.3 KiB
Markdown
# 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](https://github.com/NixOS/cabal2nix).
|
|
Please refer to [nix documentation](https://nixos.org/nixpkgs/manual/#how-to-create-nix-builds-for-your-own-private-haskell-packages)
|
|
and [cabal2nix readme](https://github.com/NixOS/cabal2nix#readme) for more information. Elm-format [update scripts](https://github.com/avh4/elm-format/tree/master/package/nix)
|
|
is part of its repository.
|
|
|
|
Node dependencies are defined in [node-packages.json](node-packages.json).
|
|
[Node2nix](https://github.com/svanderburg/node2nix) is used for generating nix expression
|
|
from this file. Use [generate-node-packages.sh](generate-node-packages.sh) for updates of nix expressions.
|
|
|
|
## Binwrap Patch
|
|
|
|
Some node packages might use [binwrap](https://github.com/avh4/binwrap) typically for installing
|
|
[elmi-to-json](https://github.com/stoeffel/elmi-to-json). Binwrap is not compatible with nix.
|
|
To overcome issues with those packages apply [patch-binwrap.nix](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`.
|