See previous discussion at https://github.com/NixOS/nixpkgs/pull/429770.
cc @adamcstephens.
This is equivalent to giving `appConfigPath` an empty directory, but
expresses intent better (and doesn't require throwing an empty directory
into the store).
The Elixir ecosystem assumes [1] that dependencies are compiled without
their config; the `config/` directory is therefore used in library-only
projects to supply config values only intended for use when _developing_
them. This leads to errors only seen in Nix when compile-time config
lacks runtime equivalents in end-user applications (per the whole
conversation at [1]).
Right now, the only way to get `buildMix` to build without config is to
manually remove the target's config directory in a hook/override, or (as
above) give `appConfigPath` an empty directory. This PR adds a clearer
mechanism, and makes it the default.
[1] https://github.com/dashbitco/lazy_html/pull/11#issuecomment-3138715485
Tested with a `mix2nix`-using package that this functions as expected,
and with some `deps_nix`-using ones that `appConfigPath` still does too.
buildMix currently uses $src/* when copying source files into $out.
However, this does not include important hidden files like
`.formatter.exs` which contains custom package formatters, for example.
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.
Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.
A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.
This commit was automatically created and can be verified using
nix-build a08b3a4d19.tar.gz \
--argstr baseRev b32a094368
result/bin/apply-formatting $NIXPKGS_PATH
Avoid the following during mix builds:
warning: the VM is running with native name encoding of latin1 which may
cause Elixir to malfunction as it expects utf8.
* restore mixBuild
remove bootstrapper by going through ERL_LIBS
mix will use ERL_LIBS to find compiled dependencies
Co-authored-by: Zach <zach@hipcreativeinc.com>
The package set is not maintained. It is also not used by most of the
BEAM community. Removing it to allow a more useful set of tools fit to
the BEAM community in Nixpkgs.
This allows you to turn on debug infor for all the beam packages in the
system with a single change at the top level. This is required for
debugging and dialyzer work. It also allows you to switch it on on a
package by package basis.