Hi!
The objective is to prevent Mix from fetching dependencies and to rely solely on ERL_LIBS
. The idea is that all dependencies are already available through ERL_LIBS
, which have been added by Guix.
However, the issue arises when using mix compile
. It attempts to fetch dependencies regardless of existing settings. Currently, no option prevents this behavior; it always tries and subsequently fails. A potential workaround is to patch mix.exs
so that the project()
function returns a key/value list with the deps
key set to []
.
For instance, in the Mix project named makeup
, there isnβt a straightforward method to instruct mix
to avoid fetching nimble_parsec
, even when itβs already available in ERL_LIBS
:
βββββ
β $ mix compile --no-deps-check
β Could not find Hex, which is needed to build dependency :nimble_parsec
β Shall I install Hex? (if running non-interactively, use "mix local.hex --force") [Yn] n
β ** (Mix) Could not find an SCM for dependency :nimble_parsec from Makeup.Mixfile
βββββ
Itβs evident from the IEx session below that nimble_parsec
is
available:
βββββ
β $ iex
β Interactive Elixir (1.14.0) - press Ctrl+C to exit (type h() ENTER for help)
β iex(1)> :code.which(NimbleParsec)
β '/gnu/store/261qi8bmagns11d3ssiypbqj82i9k16g-profile/lib/elixir/1.14/nimble_parsec/ebin/Elixir.NimbleParsec.beam'
βββββ
So, the pressing question is: how can we configure mix
to prioritize ERL_LIBS
over fetching new dependencies?