Currently, when fetchMixDeps is executed without mixEnv argument.
"mixEnv" envvar is empty at installPhase, instead of having value "prod".
This happens because optional attrs values are not included in @attrs variable.
Thrus being necessary to replace mixEnv for MIX_ENV, which holds value "prod".
Reference: https://github.com/NixOS/nixpkgs/pull/216214#issuecomment-1434737238
The Elixir LS package in Nixpkgs by default used the latest Elixir
version available to compile and run Elixir LS. The user can build
a custom Elixir LS package with a different Elixir version:
my-custom-elixir-ls = pkgs.elixir-ls.override {
elixir = my-custom-elixir;
};
But by doing so the user changes only the Elixir version used to
run Elixir LS; the Elixir version used to compile Elixir LS doesn't
change. As the result, the custom Elixir LS package uses a different
Elixir version at runtime than the Elixir version it was compiled with.
In order to be able to modify the Elixir version used at build time,
I changed `mixRelease` and `fetchMixDeps` to accept `elixir` and
`hex` as parameters (defaults to the latest Elixir and Hex packages).