Parallel precompilation in Julia v1.6: Dependencies include test dependencies?

I really like parallel precompilation of projects in Julia v1.6 . That’s really nice work from everybody involved :+1:
I would like to know a bit more about the dependencies used to determine whether two packages can be precompiled simultaneously. For example, both OrdinaryDiffEq.jl and Trixi.jl take some time to precompile. Both depend (directly or indirectly) on LoopVectorization.jl (which is just awesome). Since LoopVectorization.jl is actively developed (which is great), I usually need to precompile it again when updating packages. Thus, OrdinaryDiffEq.jl and Trixi.jl need to be precompiled again, too. However, whenever I do this, OrdinaryDiffEq is precompiled first before the precompilation of Trixi begins. OrdinaryDiffEq.jl is not a direct dependency of Trixi.jl, only a dependency for tests, specified via Trixi/test/Project.toml (and not included in Trixi/Project.toml). Hence, I would have expected that OrdinaryDiffEq.jl and Trixi.jl can be precompiled simultaneously. However, this does never happen for me.

this is just one of the chains probably but:
Trixi depends on DiffEqCallbacks depends on OrdinaryDiffEq

1 Like

Oh yes, I didn’t see this… Thanks!

that could probably be made to only depend on DiffEqBase. I’m actually surprised that’s not the case already.

1 Like

My solution was to make Trixi only depend on DiffEqBase instead of DiffEqCallbacks. But it would be nice to have also fewer dependencies of DiffEqCallbacks, of course.