forked from mirrors/nixpkgs
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
1.3 KiB
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.
- It replaces binwrap scripts with noop shell scripts
- It uses nix for installing the binaries to expected location in
node_modules
Example usage be found in elm/default.nix
.