(Mix) Circular dependencies with `mix release` but not with `mix phx.server` (solved)

I ran mix app.tree and found these dependencies:

my app --> que --> memento --> mnesia

// memento has it in :extra_applications

my app -> mnesia

// I had it in :included_applications

I still don’t understand how this would be circular, but when I remove my included_applications line, the error disappears and the release builds.


original post:

Anyone know what would cause circular dependencies when building a release, but not when running production build with mix?

My app (:gjwapp) was working fine, for

MIX_ENV=prod mix phx.server # works fine

MIX_ENV=prod mix release beta1

./bin/beta1 start   # worked fine

Apparently, I broke it.

What I have done that might matter:

  • started using Mnesia, which brought in memento
  • deleted my _build folder to clean (probably should have done that?)

Now, mix phx.server still works, but

MIX_ENV=prod mix release beta1

gives:

Generated gjwapp app
* assembling beta1-0.1.0 on MIX_ENV=prod
* skipping runtime configuration (config/releases.exs not found)
** (Mix) Circular dependencies among applications: [{memento,"0.3.1"},{gjwapp,"0.1.0"}]

I’ve cleaned, switched from elixir master to rc, back to master. Stumped.