# Where do all the packages come from?

**URL:** <https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135>\
**Category:** General Usage\
**Created:** [July 15, 2020, 4:24pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135 "2020-07-15T16:24:06Z")\
**Posts on this page:** 8\
**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:** [July 15, 2020, 4:24pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135/1 "2020-07-15T16:24:06Z")

</div>

Today I was testing one of my packages with the nightly Julia. I noticed that the list of packages during “update” was several dozen entries long. I don’t know how it got so long: I’m pretty sure that most of these packages are not used directly in mine. How do I find out the chain of dependencies that pulls in all of these packages? Is it possible to simply name a package to get a list of packages which depend on it in the current environment?

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [July 15, 2020, 4:31pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135/2 "2020-07-15T16:31:30Z")

</div>

Easiest way: the [dependencies tab (here’s Plots.jl, for example)](https://juliahub.com/ui/Packages/Plots/ld3vC/1.5.4?t=1) on JuliaHub. Of course, that only works for registered packages.

---

<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:** [July 15, 2020, 4:45pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135/3 "2020-07-15T16:45:09Z")

</div>

Thank you Matt. That is a way, but not one to look forward to. I’d have to repeat this dozens of times, form intersections, …

I wonder if this functionality could be somehow provided in `Pkg`? @kristoffer.carlsson?

---

<div class="post-metadata">

**Author:** ![mbauman](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mbauman/32/31082_2.png) [@mbauman](https://discourse.julialang.org/u/mbauman)\
**Post date:** [July 15, 2020, 4:53pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135/4 "2020-07-15T16:53:01Z")

</div>

I guess what you really want it the other direction? Given every package in your Manifest, figure out which package(s) in the Project demanded its installation?

---

<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:** [July 15, 2020, 4:58pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135/5 "2020-07-15T16:58:02Z")

</div>

It is really a proactive approach to the resolution of possible failure of a package. Let’s say one of the packages does not install. Am I stuck, or can I prune the packages so that the failing package is no longer required, and I can get my own package up and running? The place to start is to figure out the chain of dependencies.

---

<div class="post-metadata">

**Author:** ![yurivish](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yurivish/32/307_2.png) [@yurivish](https://discourse.julialang.org/u/yurivish)\
**Post date:** [July 15, 2020, 6:21pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135/6 "2020-07-15T18:21:27Z")

</div>

Here’s a related issue for surfacing this data through a JuliaHub API:

[https://github.com/JuliaComputing/JuliaHub/issues/4](https://github.com/JuliaComputing/JuliaHub/issues/4)

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [July 15, 2020, 7:52pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135/7 "2020-07-15T19:52:53Z")

</div>

> [@PetrKryslUCSD](#):
>
> How do I find out the chain of dependencies that pulls in all of these packages?

[implement why, showing why a package is in the manifest by KristofferC · Pull Request #1810 · JuliaLang/Pkg.jl · GitHub](https://github.com/JuliaLang/Pkg.jl/pull/1810) does something like that.

---

<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:** [July 15, 2020, 8:07pm UTC](https://discourse.julialang.org/t/where-do-all-the-packages-come-from/43135/8 "2020-07-15T20:07:07Z")

</div>

Fantastic! Thanks.
