Umbrella Dependency / Version Conflicts

I have an umbrella project with multiple phoenix sub-apps, each listening on their own port. All the sub-apps depend on Phoenix 1.6.9. Works great!

When I add another Phoenix sub app that depends on 1.7.0-rc.0, I get this compile error:

unchecked dependencies for environment dev:
* phoenix (Hex package)
  the dependency phoenix 1.7.0-rc.0

  > In apps/phx_app1/mix.exs:
    {:phoenix, "~> 1.7.0-rc.0", [env: :prod, hex: "phoenix", override: true, repo: "hexpm"]}

  does not match the requirement specified

  > In apps/phx_app2/mix.exs:
    {:phoenix, "~> 1.6.9", [env: :prod, hex: "phoenix", override: true, repo: "hexpm"]}

  Ensure they match or specify one of the above in your deps and set "override: true"

I’ve tried many combinations of the override attribute in the different sub-apps without success.

Is it possible to run two different versions of Phoenix in different sub apps? Or must all the sub-apps use the same version?

Thanks in advance!

Is it possible to run two different versions of Phoenix in different sub apps?

No. You need to make sure that version which satisfies all apps and dependencies exists. I’d suggest using less strict version selectors. For example, use ~> 1.6 instead of ~> 1.6.9

Don’t forget to mark the solution

1 Like