Root package in the tree of outdated packages

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

(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> 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

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

I was hoping there was something better than trial and error… :slight_smile:

1 Like

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> Pkg.why("GDAL")
  ArchGDAL → GDAL
  GDAL
  GeoDataFrames → ArchGDAL → GDAL
  JuliaMapping → ArchGDAL → GDAL
  JuliaMapping → GeoDataFrames → ArchGDAL → GDAL
  Tyler → ArchGDAL → GDAL
1 Like

Marking packages as deprecated should help with this.

See Add deprecation notice to QuantumCliffordPlots by Krastanov · Pull Request #141098 · JuliaRegistries/General · GitHub 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 is stuck on Polyester 0.5, maybe ThreadedSparseCSR.jl should be marked as deprecated, or someone can take over as a maintainer?

I bet ThreadedSparseCSR.jl is it! Thanks for noticing this, @nhz2 !