# Cyclic Dependencies in Julia Packages - How to solve?

**URL:** https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825
**Category:** New to Julia
**Tags:** question
**Created:** [November 12, 2025, 11:36am UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825 "2025-11-12T11:36:15Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![Mini4Ever](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mini4ever/32/217363_2.png) [@Mini4Ever](https://discourse.julialang.org/u/Mini4Ever)
#### Post date: [November 12, 2025, 11:36am UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825/1 "2025-11-12T11:36:15Z")

</div>

Using Julia 1.10.10 on Windows 11. Running the following Julia script for a JULIA\_DEPOT\_PATH location that is still empty:

```julia-auto
import Pkg
Pkg.add("DelimitedFiles")
Pkg.add("CairoMakie")
Pkg.add("LaTeXStrings")
Pkg.add("Statistics")
Pkg.add("DifferentialEquations")
Pkg.add("Distributions")
Pkg.add("YAML")
Pkg.add("Dates")
Pkg.add("DataFrames")
Pkg.add("ArgParse")
Pkg.add("CSV")
Pkg.precompile()

```

gives the following Warning on Cyclic Dependencies since a couple of days (this was still working on 4 November 2025):

```julia-auto
Warning: Circular dependency detected.
│ Precompilation will be skipped for dependencies in this cycle:
│ ┌ IntervalSets → IntervalSetsRandomExt
│ └─ IntervalSets → IntervalSetsPrintfExt
│ Precompilation will also be skipped for the following, which depend on the above cycle:
│ ImageIO
│ ImageAxes
│ CairoMakie
│ ConstructionBase → ConstructionBaseIntervalSetsExt
│ IntervalArithmetic → IntervalArithmeticIntervalSetsExt
│ Makie
│ AxisArrays
│ Netpbm
│ IntervalSets → IntervalSetsStatisticsExt
│ ImageMetadata

```

I don’t manage to get the packages compiled anymore…

Any suggestions?

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [November 12, 2025, 12:02pm UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825/2 "2025-11-12T12:02:32Z")

</div>

I would start by double checking with the maintainers of IntervalSets.jl why they are creating extensions for standard libraries. `Random` and `Printf` are available in any Julia installation, so they should be direct dependencies of IntervalSets.jl instead.

---

<div class="post-metadata">

### Author: ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)
#### Post date: [November 12, 2025, 12:03pm UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825/3 "2025-11-12T12:03:39Z")

</div>

both Julia 1.11 and 1.12 fix this issue

---

<div class="post-metadata">

### Author: ![JoshuaLampert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joshualampert/32/205964_2.png) [@JoshuaLampert](https://discourse.julialang.org/u/JoshuaLampert)
#### Post date: [November 12, 2025, 12:13pm UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825/4 "2025-11-12T12:13:20Z")

</div>

See ["Warning: Circular dependency detected." with IntervalSets 0.7.12 in Julia 1.10.10 · Issue #206 · JuliaMath/IntervalSets.jl · GitHub](https://github.com/JuliaMath/IntervalSets.jl/issues/206).

---

<div class="post-metadata">

### Author: ![Mini4Ever](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mini4ever/32/217363_2.png) [@Mini4Ever](https://discourse.julialang.org/u/Mini4Ever)
#### Post date: [November 12, 2025, 2:57pm UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825/5 "2025-11-12T14:57:14Z")

</div>

Ok. Thanks for the link. Apparently, others have identified this as well. That post also states: “The latest LTS Julia 1.10.10 shows this at start-up with IntervalSets 0.7.12. IntervalSets 0.7.11 seems to be fine.”

Is there a way to force installation of IntervalSets 0.7.11 instead of 0.7.12? i.e., is there a way to force installation of a specific version of a package?

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [November 12, 2025, 3:09pm UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825/6 "2025-11-12T15:09:13Z")

</div>

> [@Mini4Ever](#):
>
> is there a way to force installation of a specific version of a package?

```julia
] add IntervalSets@0.7.11
```

---

<div class="post-metadata">

### Author: ![Mini4Ever](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mini4ever/32/217363_2.png) [@Mini4Ever](https://discourse.julialang.org/u/Mini4Ever)
#### Post date: [November 12, 2025, 3:15pm UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825/7 "2025-11-12T15:15:17Z")

</div>

Found a workaround 🙂

```julia-auto
import Pkg
Pkg.add(Pkg.PackageSpec(;name="IntervalSets", version="0.7.11"))
Pkg.add("DelimitedFiles")
Pkg.add("CairoMakie")
Pkg.add("LaTeXStrings")
Pkg.add("Statistics")
Pkg.add("DifferentialEquations")
Pkg.add("Distributions")
Pkg.add("YAML")
Pkg.add("Dates")
Pkg.add("DataFrames")
Pkg.add("ArgParse")
Pkg.add("CSV")
Pkg.precompile()

```

---

<div class="post-metadata">

### Author: ![juliohm](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juliohm/32/215266_2.png) [@juliohm](https://discourse.julialang.org/u/juliohm)
#### Post date: [November 12, 2025, 3:30pm UTC](https://discourse.julialang.org/t/cyclic-dependencies-in-julia-packages-how-to-solve/133825/8 "2025-11-12T15:30:01Z")

</div>

Notice you don’t need the `PackageSpec`:

```julia
Pkg.add(name="IntervalSets", version="0.7.11")

```
