Some elm packages (eg. https://github.com/NoRedInk/elm-simple-fuzzy/ ) have a Makefile which the standard builder tries to build and fails because of missing dependencies. This change forces a no-op configure and build phase to avoid such a situation.
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
update makeElmStuff to makeDotElm, create elm-elm.nix listing the elm
code that elm itself embeds, and pre-fetch it so that the elm build
can function offline. also include a versions.dat file, as created
during an impure build of elm. set ELM_HOME so that the elm build can
find these things.
continues #45448
(cherry picked from commit e7d0df84676d51fb0cbfbeb10dd32153489c3565)
Signed-off-by: Domen Kožar <domen@dev.si>