$ mix deps.get
* Updating puid (https://github.com/Rio517/Elixir.git)
remote: Enumerating objects: 29, done.
remote: Counting objects: 100% (29/29), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 77 (delta 14), reused 20 (delta 11), pack-reused 48
origin/HEAD set to master
Resolving Hex dependencies...
Dependency resolution completed:
New:
certifi 2.6.1
connection 1.1.0
crypto_rand 1.0.2
db_connection 2.3.1
decimal 2.0.0
ecto 3.4.6
ecto_sql 3.4.5
gen_stage 1.0.0
hackney 1.17.4
httpoison 1.7.0
idna 6.1.1
jason 1.2.2
metrics 1.0.1
mimerl 1.2.0
parallel_task 0.1.1
parse_trans 3.3.1
postgrex 0.15.8
ssl_verify_fun 1.1.6
telemetry 0.4.2
unicode_util_compat 0.7.0
* Getting httpoison (Hex package)
* Getting postgrex (Hex package)
* Getting ecto_sql (Hex package)
* Getting gen_stage (Hex package)
* Getting jason (Hex package)
* Getting parallel_task (Hex package)
* Getting crypto_rand (Hex package)
* Getting db_connection (Hex package)
* Getting ecto (Hex package)
* Getting telemetry (Hex package)
* Getting decimal (Hex package)
* Getting connection (Hex package)
* Getting hackney (Hex package)
* Getting certifi (Hex package)
* Getting idna (Hex package)
* Getting metrics (Hex package)
* Getting mimerl (Hex package)
* Getting parse_trans (Hex package)
* Getting ssl_verify_fun (Hex package)
* Getting unicode_util_compat (Hex package)
$ iex -S mix
Erlang/OTP 23 [erts-11.1.7] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
===> Compiling parse_trans
==> parallel_task
Compiling 1 file (.ex)
Generated parallel_task app
===> Compiling mimerl
==> connection
Compiling 1 file (.ex)
Generated connection app
===> Compiling metrics
===> Compiling unicode_util_compat
===> Rebar3 detected a lock file from a newer version. It will be loaded in compatibility mode, but important information may be missing or lost. It is recommended to upgrade Rebar3.
===> Compiling idna
==> gen_stage
Compiling 10 files (.ex)
warning: System.stacktrace/0 is deprecated, use __STACKTRACE__ instead
lib/consumer_supervisor.ex:574
Generated gen_stage app
===> Compiling telemetry
==> decimal
Compiling 4 files (.ex)
Generated decimal app
==> jason
Compiling 8 files (.ex)
Generated jason app
==> ssl_verify_fun
Compiling 7 files (.erl)
Generated ssl_verify_fun app
===> Compiling certifi
===> Rebar3 detected a lock file from a newer version. It will be loaded in compatibility mode, but important information may be missing or lost. It is recommended to upgrade Rebar3.
===> Compiling hackney
==> db_connection
Compiling 14 files (.ex)
Generated db_connection app
==> httpoison
Compiling 3 files (.ex)
Generated httpoison app
==> ecto
Compiling 55 files (.ex)
warning: Decimal.cmp/2 is deprecated. Use compare/2 instead
lib/ecto/changeset.ex:2149: Ecto.Changeset.validate_number/6
Generated ecto app
==> crypto_rand
Compiling 1 file (.ex)
warning: :crypto.strong_rand_bytes/1 defined in application :crypto is used by the current application but the current application does not directly depend on :crypto. To fix this, you must do one of:
1. If :crypto is part of Erlang/Elixir, you must include it under :extra_applications inside "def application" in your mix.exs
2. If :crypto is a dependency, make sure it is listed under "def deps" in your mix.exs
3. In case you don't want to add a requirement to :crypto, you may optionally skip this warning by adding [xref: [exclude: :crypto]] to your "def project" in mix.exs
Found at 6 locations:
lib/crypto_rand.ex:60: CryptoRand.random/2
lib/crypto_rand.ex:112: CryptoRand.shuffle/2
lib/crypto_rand.ex:164: CryptoRand.take_random/3
lib/crypto_rand.ex:218: CryptoRand.uniform/2
lib/crypto_rand.ex:244: CryptoRand.uniform_list/3
lib/crypto_rand.ex:346: CryptoRand.uniform_bytes/3
Generated crypto_rand app
==> puid
Compiling 3 files (.ex)
Generated puid app
==> postgrex
Compiling 61 files (.ex)
Generated postgrex app
==> ecto_sql
Compiling 26 files (.ex)
Generated ecto_sql app
Since I’m still getting the :crypto.strong_rand_bytes/1 warning it seems that the branch wasn’t installed? Or did I simply misapply your recommendations?
That will not change anything, as the top-levels applications :extra_applications is not consifered when resolving “boundaries” for its dependencies.
This warning has to be fixed in the dependency that causes it, though it is safe to ignore it for now and file an issue upstream.