Umbrella app and project wide dependencies

Working on my first umbrella app made up of an elixir only app and a phoenix app serving as interface to the elixir app.
I’ll like to install Credo and Dialyxir as development deps only and I’m confused as to which mix.exs file to use because in the base mix.exs (the overall project root folder) there is a comment that says:

dependencies listed here are available only for this
project and cannot be accessed from applications inside
#the apps folder.

#Run “mix help deps” for examples and options.

What does this mean? Does it mean I have to install the deps separately for each of the elixir and phoenix apps?

Dependencies :credo and :dialyxir should be put into top-level mix.exs.
Their configuration files (.credo.exs, .dialyzer-ignore.exs for dializer: [ignore_warnings: _]) are also going to be on top level, next to things like .gitignore or .formatter.exs.
mix credo and mix dialyzer are applied to all umbrella apps in /apps/ recursively.

To make these dependencies development-only, use only option
{:dialyxir, “~> 1.1”, only: [:dev], runtime: false}

2 Likes