# Root package in the tree of outdated packages

**URL:** <https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997>\
**Category:** General Usage\
**Tags:** package\
**Created:** [November 20, 2025, 2:10am UTC](https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997 "2025-11-20T02:10:30Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 20, 2025, 2:10am UTC](https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997/1 "2025-11-20T02:10:30Z")

</div>

How do I find the one package that holds everything back?

```julia-auto
(examples) pkg> status --outdated -m
Status `C:\Users\pkonl\Documents\zzWIP\FinEtoolsDeforLinear.jl\examples\Manifest.toml`
⌅ [ec485272] ArnoldiMethod v0.2.0 (<v0.4.0): VibrationGEPHelpers
⌅ [7d9fca2a] Arpack v0.5.3 (<v0.5.4): FinEtoolsDeforLinear, VibrationGEPHelpers
⌅ [4fba245c] ArrayInterface v3.1.32 (<v7.22.0): CloseOpenIntervals, LayoutPointers, LoopVectorization, Polyester, RecursiveArrayTools, StrideArraysCore, VectorizationBase      
⌅ [2a0fbf3d] CPUSummary v0.1.30 (<v0.2.7): LoopVectorization, Polyester, PolyesterWeave, VectorizationBase
⌃ [fb6a15b2] CloseOpenIntervals v0.1.3 (<v0.1.13)
⌅ [ffbed154] DocStringExtensions v0.8.6 (<v0.9.5): LoopVectorization, RecursiveArrayTools
⌅ [29a986be] FastLapackInterface v1.2.9 (<v2.1.0): LinearSolve
⌅ [f6369f11] ForwardDiff v0.10.39 (<v1.3.0): LoopVectorization, SIMDDualNumbers
⌅ [46192b85] GPUArraysCore v0.1.6 (<v0.2.0): KrylovKit, LinearSolve
⌅ [682c06a0] JSON v0.21.4 (<v1.3.0): AssetRegistry, DataDrop, JSExpr, PlotlyBase, PlotlyJS, PlotlyKaleido, WebIO
⌅ [ef3ab10e] KLU v0.4.1 (<v0.6.0): LinearSolve
⌅ [ba0b0d4f] Krylov v0.9.10 (<v0.10.2): LinearSolve
⌅ [0b1a1467] KrylovKit v0.6.1 (<v0.10.2): LinearSolve, VibrationGEPHelpers
⌃ [10f19ff3] LayoutPointers v0.1.8 (<v0.1.17)
⌃ [7ed4a6bd] LinearSolve v1.34.1 (<v3.47.0)
⌃ [bdcacae8] LoopVectorization v0.12.101 (<v0.12.173)
⌅ [f517fe37] Polyester v0.5.5 (<v0.7.18): ThreadedSparseCSR
⌅ [1d0040c9] PolyesterWeave v0.1.13 (<v0.2.2): LoopVectorization, Polyester
⌅ [aea7be01] PrecompileTools v1.2.1 (<v1.3.3): julia
⌅ [731186ca] RecursiveArrayTools v2.17.2 (<v3.39.0): SciMLBase
⌃ [f2c3362d] RecursiveFactorization v0.2.22 (<v0.2.26)
⌅ [0bca4576] SciMLBase v1.81.0 (<v2.127.0): LinearSolve
⌃ [c0aeaf25] SciMLOperators v0.1.21 (<v1.12.0)
⌅ [aedffcd0] Static v0.3.3 (<v1.3.1): ArrayInterface, CPUSummary, CloseOpenIntervals, LayoutPointers, LoopVectorization, Polyester, PolyesterWeave, StrideArraysCore, TriangularSolve, VectorizationBase
⌅ [7792a7ef] StrideArraysCore v0.2.19 (<v0.5.8): Polyester
⌅ [8290d209] ThreadingUtilities v0.4.7 (<v0.5.5): LoopVectorization, Polyester
⌅ [d5829a12] TriangularSolve v0.1.21 (<v0.2.1): RecursiveFactorization
⌃ [3d5dd08c] VectorizationBase v0.21.33 (<v0.21.72)
⌅ [68821587] Arpack_jll v3.5.1+1 (<v3.9.1+2): Arpack
⌅ [02c8fc9c] XML2_jll v2.13.9+0 (<v2.15.1+0): Hwloc_jll

```

I can see which packages are held back, but I don’t see hints as to how to unblock that.  
Is there a magical incantation?  
Thanks!

```julia-auto
julia> versioninfo()
Julia Version 1.11.6
Commit 9615af0f26 (2025-07-09 12:58 UTC)
Build Info:
  Official https://julialang.org/ release
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 12 × 12th Gen Intel(R) Core(TM) i7-1265U
  WORD_SIZE: 64
  LLVM: libLLVM-16.0.6 (ORCJIT, alderlake)
Threads: 1 default, 0 interactive, 1 GC (on 12 virtual cores)
Environment:
  JULIA_DEPOT_PATH = C:/Users/pkonl/VSCode_Julia_portable/assets/.julia-1.11.6-depot

```

---

<div class="post-metadata">

**Author:** ![technocrat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/technocrat/32/220947_2.png) [@technocrat](https://discourse.julialang.org/u/technocrat)\
**Post date:** [November 20, 2025, 2:54am UTC](https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997/2 "2025-11-20T02:54:38Z")

</div>

Try `Pkg.precompile()` to see if you get more informative error message or `Pkg.update(some_package)` to see if that does?

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 20, 2025, 3:07am UTC](https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997/3 "2025-11-20T03:07:21Z")

</div>

I was hoping there was something better than trial and error… 🙂

---

<div class="post-metadata">

**Author:** ![technocrat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/technocrat/32/220947_2.png) [@technocrat](https://discourse.julialang.org/u/technocrat)\
**Post date:** [November 20, 2025, 3:21am UTC](https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997/4 "2025-11-20T03:21:46Z")

</div>

I feel your pain. You could try a quartering search, I guess, to narrow it down, but that’s probably just wishful thinking. I did find a better way to check interdependencies, tho’.

```julia-auto
julia> Pkg.why("GDAL")
  ArchGDAL → GDAL
  GDAL
  GeoDataFrames → ArchGDAL → GDAL
  JuliaMapping → ArchGDAL → GDAL
  JuliaMapping → GeoDataFrames → ArchGDAL → GDAL
  Tyler → ArchGDAL → GDAL

```

---

<div class="post-metadata">

**Author:** ![nhz2](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nhz2/32/44428_2.png) [@nhz2](https://discourse.julialang.org/u/nhz2)\
**Post date:** [November 20, 2025, 3:25am UTC](https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997/5 "2025-11-20T03:25:30Z")

</div>

Marking packages as deprecated should help with this.

See [Add deprecation notice to QuantumCliffordPlots by Krastanov · Pull Request #141098 · JuliaRegistries/General · GitHub](https://github.com/JuliaRegistries/General/pull/141098) as an example for how to mark packages as deprecated.

Here one issue is that [ThreadedSparseCSR.jl/Project.toml at main · BacAmorim/ThreadedSparseCSR.jl · GitHub](https://github.com/BacAmorim/ThreadedSparseCSR.jl/blob/main/Project.toml) is stuck on Polyester 0.5, maybe ThreadedSparseCSR.jl should be marked as deprecated, or someone can take over as a maintainer?

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 20, 2025, 1:45pm UTC](https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997/6 "2025-11-20T13:45:43Z")

</div>

I bet [ThreadedSparseCSR.jl](https://juliaregistries.github.io/General/packages/redirect_to_repo/ThreadedSparseCSR) is it! Thanks for noticing this, @nhz2 !  
Edit: At the moment I fixed this particular problem with a fork.

---

<div class="post-metadata">

**Author:** ![PetrKryslUCSD](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/petrkryslucsd/32/215825_2.png) [@PetrKryslUCSD](https://discourse.julialang.org/u/PetrKryslUCSD)\
**Post date:** [November 20, 2025, 4:08pm UTC](https://discourse.julialang.org/t/root-package-in-the-tree-of-outdated-packages/133997/7 "2025-11-20T16:08:32Z")

</div>

I don’t think the package should be marked as deprecated: I brought it up to date in my fork simply by updating the compatibility section in the project.

The functionality that it provides is worth the effort:

 ![image](https://global.discourse-cdn.com/julialang/original/3X/2/b/2b696bb7a1242eeaadca834cfedf930f2c45031f.png)  
The above on Win 11 Surface Pro 9 w/ 10 threads.  
Thanks to @Bruno_Amorim !
