I’m in the process of upgrading from Elixir 1.17.x to Elixir 1.19.x. I’ve noticed that running mix loadpaths now compiles the entire application (including dependencies and application code), rather than just the dependencies. I observe the same behavior with mix deps.compile.
In our CI pipeline, it’s important to compile dependencies and application code separately to enable efficient layer caching.
Is this a regression in Elixir 1.19.x? Is there an alternative approach to achieve this separation with the new version?
I never used mix loadpaths, though I am under the impression, that mix deps.compile always compiled all “children” under the umbrella, though with “plain singular” apps I never observed the described behaviour.
I do not have a testbed for non-umbrella apps currently.
PS: Just checked, with 1.18, all apps under the umbrella are built when using mix deps.compile.
Ok, I never realized it was because we’re also using an umbrella app.
Anyway, I still need a solution to prevent my CI from recompiling all my deps whenever a source file changes
Which Elixir version are you at? mix deps.compile --skip-umbrella-childrenworked fine for me locally, both at the umbrella root and inside a child project.