If the run-time dependencies were shared across all applications depending on the same rebar.config file,
This sentence is straightforward but I only understood it just now.
rebar.config
can specify the dependencies of all the applications in the umbrella project, but they are not necessarily run-time dependencies.
Also, the relx
example from the rebar.config
above shows how to include an app/lib (in this case, recon
) in the final production release, even if it is not a run-time dependency.
This guide also expands on it a paragraph below:
The Rebar3 maintainers therefore just decided to keep a clear distinction between the applications that need fetching for the project to build or run (in
rebar.config
), and the run-time dependencies of each OTP application (in the.app
file) which may be part of the default OTP install, and would therefore not be included inrebar.config
. Other build tools in the ecosystem let you achieve similar results, but they default to including everything at run-time whereas Rebar3 asks of developers to always be specific in their intent.