# How to tell which package is holding back which package

**URL:** <https://discourse.julialang.org/t/how-to-tell-which-package-is-holding-back-which-package/24827>\
**Category:** Internals & Design\
**Tags:** question, proposal\
**Created:** [June 1, 2019, 5:11am UTC](https://discourse.julialang.org/t/how-to-tell-which-package-is-holding-back-which-package/24827 "2019-06-01T05:11:54Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![baggepinnen](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/baggepinnen/32/693_2.png) [@baggepinnen](https://discourse.julialang.org/u/baggepinnen)\
**Post date:** [June 1, 2019, 8:10am UTC](https://discourse.julialang.org/t/how-to-tell-which-package-is-holding-back-which-package/24827/2 "2019-06-01T08:10:03Z")

</div>

I implemented something like that a while back that worked for Julia v0.6. It would have to be updated to work now, but here it is for inspiration

> [@How to find package preventing others from updating](https://discourse.julialang.org/t/how-to-find-package-preventing-others-from-updating/8235):
>
> While trying to upgrade a package I found that some other package held it back with an upper version bound. To track down the offending package, I found the following function useful function find\_holdback(held\_back\_package, recursive = 0, installed = collect(keys(Pkg.installed())), inset=0) @assert held\_back\_package ∈ installed "The package you are querying is not installed" for package in installed REQUIRE = Pkg.dir(package, "REQUIRE") isfile(REQUIRE) || continue …

---

_[View the full topic](https://discourse.julialang.org/t/how-to-tell-which-package-is-holding-back-which-package/24827)._
