Use an umbrella app as a dependency

I’m building an umbrella app as a framework which my other apps will depends on.

So, I added it in my project app as a dependency :

  defp deps do
    [
      {:umbrella_app, path: "path/to/umbrella_app",
    ]
  end

Thing is, it builds the umbrella apps but it doesn’t know about the :umbrella_app app

** (Mix) Could not start application umbrella_app: could not find application file:umbrella_app.app

How can I refer to it and ensure all apps in the umbrella one are started ?

{:umbrella_app, in_umbrella: true}
3 Likes

@benwilson512 this only works between umbrella children.

I want to use an umbrella app (ie a full framework) as a dependency of a standalone other app.

Umbrellas are not more than a common folder structure for handling (starting/stoping) multiple otp apps as a single unit. A single otp app is still the most high level organizational structure within the erlang vm. If you want to depend on all your umbrella children either depend on all of them manually or create another child, which you depend on in new projects and which does then depend on the other parts of the umbrella.

2 Likes

Thanks @LostKobrakai now I have a better understanding of what is actually an umbrella app and how I should use it with my other projects !

This is actually why I don’t use umbrella’s. I just make everything as standalone dependencies (maybe just file: "../blah" dependencies in many cases) but then I can compose and recompose as I wish.