# Solving "restricted by julia compatibility requirements to versions: uninstalled — no versions left"

**URL:** <https://discourse.julialang.org/t/solving-restricted-by-julia-compatibility-requirements-to-versions-uninstalled-no-versions-left/29068>\
**Category:** New to Julia\
**Created:** [September 23, 2019, 11:14am UTC](https://discourse.julialang.org/t/solving-restricted-by-julia-compatibility-requirements-to-versions-uninstalled-no-versions-left/29068 "2019-09-23T11:14:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![blaiseli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blaiseli/32/10332_2.png) [@blaiseli](https://discourse.julialang.org/u/blaiseli)\
**Post date:** [September 23, 2019, 11:14am UTC](https://discourse.julialang.org/t/solving-restricted-by-julia-compatibility-requirements-to-versions-uninstalled-no-versions-left/29068/1 "2019-09-23T11:14:11Z")

</div>

I have an application that I’m able to install in a singularity container based on julia 1.2, but now, I would like to install it in a container based on julia 1.0.

I then had “Unsatisfiable requirements” issues for a package:

```julia
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package BioSymbols [3c28c6f8]:
 BioSymbols [3c28c6f8] log:
 ├─possible versions are: [1.0.0, 1.1.0-1.1.1, 1.2.0, 2.0.0-2.0.1, 3.0.0-3.0.1, 3.1.0, 4.0.0-4.0.1] or uninstalled
 ├─restricted to versions 4.0.1 by an explicit requirement, leaving only versions 4.0.1
 └─restricted by julia compatibility requirements to versions: [3.0.0-3.0.1, 3.1.0] or uninstalled — no versions left

```

From this “by an explicit requirement” piece of information, I guessed that this could have to do with the `REQUIRE` or `Manifest.toml` files.

(By the way, I fail to understand why this information got there, because I never explicitly asked for a specific version of any package whatsoever.)

To try to solve this issue, I decided to remove those files from the checked-out code, prior to install the package. Now I still have an “Unsatisfiable requirements” issue, but for another package:

```julia
+ rm -f Manifest.toml REQUIRE
+ /usr/local/julia/bin/julia --project=. --eval import Pkg; \
        Pkg.activate("."); Pkg.instantiate(); Pkg.build();
  Updating registry at `~/.julia/registries/BioJuliaRegistry`
  Updating git-repo `https://github.com/BioJulia/BioJuliaRegistry.git`
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package FASTX [c2308a5c]:
 FASTX [c2308a5c] log:
 ├─possible versions are: [1.0.0, 1.1.0] or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions [1.0.0, 1.1.0]
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left

```

Do I understand correctly the `*` as meaning that there is indeed no explicit requirements for that package?

Then, what is the meaning of the next line (`restricted by julia compatibility requirements to versions: uninstalled — no versions left`)?

I thought that maybe a REQUIRE file is needed, so I tried to see what happens when re-creating one, just specifying the julia version that is present in the container. This does not seem to change the error:

```julia
+ rm -f Manifest.toml REQUIRE
+ echo julia 1.0
+ /usr/local/julia/bin/julia --project=. --eval import Pkg; \
        Pkg.activate("."); Pkg.instantiate(); Pkg.build();
  Updating registry at `~/.julia/registries/BioJuliaRegistry`
  Updating git-repo `https://github.com/BioJulia/BioJuliaRegistry.git`
  Updating registry at `~/.julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
ERROR: Unsatisfiable requirements detected for package FASTX [c2308a5c]:
 FASTX [c2308a5c] log:
 ├─possible versions are: [1.0.0, 1.1.0] or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions [1.0.0, 1.1.0]
 └─restricted by julia compatibility requirements to versions: uninstalled — no versions left

```

Does it simply mean that the FASTX package is not compatible with julia 1.0?

---

<div class="post-metadata">

**Author:** ![blaiseli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blaiseli/32/10332_2.png) [@blaiseli](https://discourse.julialang.org/u/blaiseli)\
**Post date:** [September 25, 2019, 1:58pm UTC](https://discourse.julialang.org/t/solving-restricted-by-julia-compatibility-requirements-to-versions-uninstalled-no-versions-left/29068/2 "2019-09-25T13:58:03Z")

</div>

OK, I got [an answer at BioJulia](https://github.com/BioJulia/FASTX.jl/issues/12#issuecomment-534822513).

FASTX indeed needs julia 1.1 or above (but the `Project.toml` file specifies `julia = "1.1"` in the `[deps]` section, I would have expected `julia = ">= 1.1"`).

---

<div class="post-metadata">

**Author:** ![Mattriks](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mattriks/32/351_2.png) [@Mattriks](https://discourse.julialang.org/u/Mattriks)\
**Post date:** [September 25, 2019, 8:53pm UTC](https://discourse.julialang.org/t/solving-restricted-by-julia-compatibility-requirements-to-versions-uninstalled-no-versions-left/29068/3 "2019-09-25T20:53:08Z")

</div>

See Julia Pkg docs about [version specifiers](https://julialang.github.io/Pkg.jl/v1/compatibility/#Version-specifier-format-1)

---

<div class="post-metadata">

**Author:** ![blaiseli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blaiseli/32/10332_2.png) [@blaiseli](https://discourse.julialang.org/u/blaiseli)\
**Post date:** [September 26, 2019, 8:29am UTC](https://discourse.julialang.org/t/solving-restricted-by-julia-compatibility-requirements-to-versions-uninstalled-no-versions-left/29068/4 "2019-09-26T08:29:18Z")

</div>

Ah, OK, thanks.

I had seen this page previously, but not read carefully enough.

So if I get it correctly, per [https://semver.org/](https://semver.org/), `"1.1"` means from 1.1 (inclusive), until next major version (exclusive), because all minor version upgrades should be backwards compatible.
