···128129###### FOD {#fixed-output-derivation}
130131-A fixed output derivation will download mix dependencies from the internet. To ensure reproducibility, a hash will be supplied. Note that mix is relatively reproducible. An FOD generating a different hash on each run hasn't been observed (as opposed to npm where the chances are relatively high). See [elixir_ls](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/beam-modules/elixir-ls/default.nix) for a usage example of FOD.
132133Practical steps
134
···128129###### FOD {#fixed-output-derivation}
130131+A fixed output derivation will download mix dependencies from the internet. To ensure reproducibility, a hash will be supplied. Note that mix is relatively reproducible. An FOD generating a different hash on each run hasn't been observed (as opposed to npm where the chances are relatively high). See [elixir-ls](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/beam-modules/elixir-ls/default.nix) for a usage example of FOD.
132133Practical steps
134
···23 sha256 = pinData.depsSha256;
24 };
2526- # elixir_ls is an umbrella app
27 # override configurePhase to not skip umbrella children
28 configurePhase = ''
29 runHook preConfigure
···31 runHook postConfigure
32 '';
3334- # elixir_ls require a special step for release
35 # compile and release need to be performed together because
36 # of the no-deps-check requirement
37 buildPhase = ''
38 runHook preBuild
39- mix do compile --no-deps-check, elixir_ls.release
40 runHook postBuild
41 '';
42
···23 sha256 = pinData.depsSha256;
24 };
2526+ # elixir-ls is an umbrella app
27 # override configurePhase to not skip umbrella children
28 configurePhase = ''
29 runHook preConfigure
···31 runHook postConfigure
32 '';
3334+ # elixir-ls require a special step for release
35 # compile and release need to be performed together because
36 # of the no-deps-check requirement
37 buildPhase = ''
38 runHook preBuild
39+ mix do compile --no-deps-check, elixir-ls.release
40 runHook postBuild
41 '';
42
···108 # access for example elixir built with different version of Erlang, use
109 # `beam.packages.erlangR24.elixir`.
110 inherit (self.packages.erlang)
111- elixir elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir_ls;
112113 inherit (self.packages.erlang) lfe lfe_1_3;
114 };
···108 # access for example elixir built with different version of Erlang, use
109 # `beam.packages.erlangR24.elixir`.
110 inherit (self.packages.erlang)
111+ elixir elixir_1_14 elixir_1_13 elixir_1_12 elixir_1_11 elixir_1_10 elixir-ls;
112113 inherit (self.packages.erlang) lfe lfe_1_3;
114 };