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

**URL:** <https://discourse.julialang.org/t/parallel-precompilation-in-julia-v1-6-dependencies-include-test-dependencies/54776>\
**Category:** General Usage\
**Tags:** question, precompilation\
**Created:** [February 7, 2021, 7:19am UTC](https://discourse.julialang.org/t/parallel-precompilation-in-julia-v1-6-dependencies-include-test-dependencies/54776 "2021-02-07T07:19:47Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ranocha](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ranocha/32/35588_2.png) [@ranocha](https://discourse.julialang.org/u/ranocha)\
**Post date:** [February 7, 2021, 7:19am UTC](https://discourse.julialang.org/t/parallel-precompilation-in-julia-v1-6-dependencies-include-test-dependencies/54776/1 "2021-02-07T07:19:47Z")

</div>

I really like parallel precompilation of projects in Julia v1.6 . That’s really nice work from everybody involved 👍  
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](https://github.com/SciML/OrdinaryDiffEq.jl) and [Trixi.jl](https://github.com/trixi-framework/Trixi.jl) take some time to precompile. Both depend (directly or indirectly) on [LoopVectorization.jl](https://github.com/chriselrod/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.

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [February 7, 2021, 7:44am UTC](https://discourse.julialang.org/t/parallel-precompilation-in-julia-v1-6-dependencies-include-test-dependencies/54776/2 "2021-02-07T07:44:00Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ranocha](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ranocha/32/35588_2.png) [@ranocha](https://discourse.julialang.org/u/ranocha)\
**Post date:** [February 7, 2021, 7:45am UTC](https://discourse.julialang.org/t/parallel-precompilation-in-julia-v1-6-dependencies-include-test-dependencies/54776/3 "2021-02-07T07:45:06Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [February 7, 2021, 4:06pm UTC](https://discourse.julialang.org/t/parallel-precompilation-in-julia-v1-6-dependencies-include-test-dependencies/54776/4 "2021-02-07T16:06:32Z")

</div>

> [@jling](#):
>
> `DiffEqCallbacks`

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

---

<div class="post-metadata">

**Author:** ![ranocha](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ranocha/32/35588_2.png) [@ranocha](https://discourse.julialang.org/u/ranocha)\
**Post date:** [February 7, 2021, 4:14pm UTC](https://discourse.julialang.org/t/parallel-precompilation-in-julia-v1-6-dependencies-include-test-dependencies/54776/5 "2021-02-07T16:14:13Z")

</div>

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.
