# Package manager: what are "explicit requirements"?

**URL:** <https://discourse.julialang.org/t/package-manager-what-are-explicit-requirements/18616>\
**Category:** General Usage\
**Tags:** pkg\
**Created:** [December 13, 2018, 12:16am UTC](https://discourse.julialang.org/t/package-manager-what-are-explicit-requirements/18616 "2018-12-13T00:16:40Z")\
**Posts on this page:** 1\
**Showing post:** 4

<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:** [April 22, 2019, 5:07pm UTC](https://discourse.julialang.org/t/package-manager-what-are-explicit-requirements/18616/4 "2019-04-22T17:07:48Z")

</div>

I’m having similar issues with package requirements. This time it’s StatsBase that causes issues. I also find the message  
`restricted to versions 0.30.0 by an explicit requirement, leaving only versions 0.30.0` kind of cryptic. Where does this explicit requirement come from and how can I work around the problem. I have not myself set it, so it would be nice if the error message could give me some more pointers. I have tried `] up` and the error persists. The full error message is

```julia
ERROR: Unsatisfiable requirements detected for package StatsBase [2913bbd2]:
 StatsBase [2913bbd2] log:
 ├─possible versions are: [0.1.0, 0.2.0-0.2.1, 0.2.3-0.2.10, 0.3.0-0.3.13, 0.4.0-0.4.4, 0.5.0-0.5.3, 0.6.0-0.6.16, 0.7.0-0.7.4, 0.8.0-0.8.3, 0.9.0, 0.10.0, 0.11.0-0.11.1, 0.12.0, 0.13.0-0.13.1, 0.14.0-0.14.1, 0.15.0, 0.16.0-0.16.1, 0.17.0, 0.18.0, 0.19.0-0.19.5, 0.20.0-0.20.1, 0.22.0, 0.23.0-0.23.1, 0.24.0, 0.25.0, 0.26.0, 0.27.0, 0.28.0-0.28.1, 0.29.0, 0.30.0] or uninstalled
 ├─restricted to versions 0.30.0 by an explicit requirement, leaving only versions 0.30.0
 └─restricted by compatibility requirements with StatsPlots [f3b207a7] to versions: [0.1.0, 0.2.0-0.2.1, 0.2.3-0.2.10, 0.3.0-0.3.13, 0.4.0-0.4.4, 0.5.0-0.5.3, 0.6.0-0.6.16, 0.7.0-0.7.4, 0.8.0-0.8.3, 0.9.0, 0.10.0, 0.11.0-0.11.1, 0.12.0, 0.13.0-0.13.1, 0.14.0-0.14.1, 0.15.0, 0.16.0-0.16.1, 0.17.0, 0.18.0, 0.19.0-0.19.5, 0.20.0-0.20.1, 0.22.0, 0.23.0-0.23.1, 0.24.0, 0.25.0, 0.26.0, 0.27.0, 0.28.0-0.28.1, 0.29.0] — no versions left
   └─StatsPlots [f3b207a7] log:
     ├─possible versions are: 0.10.0-0.10.2 or uninstalled
     └─restricted to versions * by an explicit requirement, leaving only versions 0.10.0-0.10.2

```

My workaround that works locally, but not on travis, was

1. `rm StatsBase`
2. `rm Distributions`
3. `add StatsPlots`
4. `add Distributions`
5. `add StatsBase`  
which resulted in

```julia
(LowLevelParticleFilters) pkg> st
Project LowLevelParticleFilters v0.1.0
    Status `~/.julia/dev/LowLevelParticleFilters/Project.toml`
  [31c24e10] + Distributions v0.18.0
  [50d2b5c4] + Lazy v0.13.2
  [90014a1f] + PDMats v0.9.6
  [d96e819e] + Parameters v0.10.3
  [90137ffa] + StaticArrays v0.10.3
  [2913bbd2] + StatsBase v0.29.0
  [f3b207a7] + StatsPlots v0.10.2
  [6310b701] + Yeppp v0.4.0
  [37e2e46d] + LinearAlgebra 
  [9a3f8284] + Random 
  [10745b16] + Statistics 

```

It would be very nice to know that the explicit requirement comes from me doing `add StatsBase` (which added v0.30.0) before I added the other packages (one of which required \<= v0.29.0), and that this workaround existed.

---

_[View the full topic](https://discourse.julialang.org/t/package-manager-what-are-explicit-requirements/18616)._
