Installing ReinforcementLearning.jl downgrades Flux.jl

HI,

I’m trying to install both Flux.jl and ReinforcementLearning.jl, but I noticed that when I first install Flux.jl I get v0.13.15 but once I add ReinforcementLearning.jl (v0.10.2) Flux.jl gets downgraded to v0.13.4. Is there any way around this? I’m just starting to learn how to use these packages, so I would really like to get the latest package versions mostly to be able to follow the documentation.

If try to add Flux@0.13.15 I get the following

(grokking-drl) pkg> add Flux@0.13.15
    Updating registry at `~/.julia/registries/JuliaPOMDP`
    Updating git-repo `https://github.com/JuliaPOMDP/Registry`
    Updating registry at `~/.julia/registries/General.toml`
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package CUDA [052768ef]:
 CUDA [052768ef] log:
 ├─possible versions are: 0.1.0-4.1.4 or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions 0.1.0-4.1.4
 ├─restricted by compatibility requirements with Flux [587475ba] to versions: 3.0.0-4.1.4
 │ └─Flux [587475ba] log:
 │   ├─possible versions are: 0.4.1-0.13.15 or uninstalled
 │   └─restricted to versions 0.13.15 by an explicit requirement, leaving only versions 0.13.15
 ├─restricted by compatibility requirements with LLVM [929cbde3] to versions: 3.3.3-4.1.4 or uninstalled, leaving only versions: 3.3.3-4.1.4
 │ └─LLVM [929cbde3] log:
 │   ├─possible versions are: 0.9.0-5.0.0 or uninstalled
 │   ├─restricted to versions * by an explicit requirement, leaving only versions 0.9.0-5.0.0
 │   ├─restricted by compatibility requirements with CUDA [052768ef] to versions: 3.0.0-5.0.0
 │   │ └─CUDA [052768ef] log: see above
 │   └─restricted by julia compatibility requirements to versions: 4.0.0-5.0.0 or uninstalled, leaving only versions: 4.0.0-5.0.0
 ├─restricted by compatibility requirements with ReinforcementLearningZoo [d607f57d] to versions: 3.0.0-3.13.1, leaving only versions: 3.3.3-3.13.1
 │ └─ReinforcementLearningZoo [d607f57d] log:
 │   ├─possible versions are: 0.1.0-0.6.0 or uninstalled
 │   ├─restricted by compatibility requirements with Flux [587475ba] to versions: 0.5.12-0.6.0 or uninstalled
 │   │ └─Flux [587475ba] log: see above
 │   └─restricted by compatibility requirements with ReinforcementLearning [158674fc] to versions: [0.1.0-0.1.7, 0.2.1-0.5.12], leaving only versions: 0.5.12
 │     └─ReinforcementLearning [158674fc] log:
 │       ├─possible versions are: 0.2.0-0.10.2 or uninstalled
 │       ├─restricted to versions * by an explicit requirement, leaving only versions 0.2.0-0.10.2
 │       ├─restricted by compatibility requirements with Flux [587475ba] to versions: 0.4.0-0.10.2 or uninstalled, leaving only versions: 0.4.0-0.10.2
 │       │ └─Flux [587475ba] log: see above
 │       └─restricted by compatibility requirements with ReinforcementLearningZoo [d607f57d] to versions: [0.2.0-0.3.0, 0.10.0-0.10.2] or uninstalled, leaving only versions: 0.10.0-0.10.2
 │         └─ReinforcementLearningZoo [d607f57d] log: see above
 ├─restricted by compatibility requirements with NNlibCUDA [a00861dc] to versions: 3.11.0-4.1.4, leaving only versions: 3.11.0-3.13.1
 │ └─NNlibCUDA [a00861dc] log:
 │   ├─possible versions are: 0.1.0-0.2.7 or uninstalled
 │   └─restricted by compatibility requirements with Flux [587475ba] to versions: 0.2.6-0.2.7
 │     └─Flux [587475ba] log: see above
 └─restricted by compatibility requirements with cuDNN [02a925ec] to versions: 4.0.0-4.1.4 — no versions left
   └─cuDNN [02a925ec] log:
     ├─possible versions are: 1.0.0-1.0.2 or uninstalled

Thank you!
Karim

1 Like

Intercomparability of packages in your environment is required.

However, it looks like the core problem here may be solvable by the maintainers? It appears that ReinforcementLearningZoo is holding back CUDA which messes with all the other packages. The repo says it’s been archived since 2021, so it might be possible for ReinforcementLearning.jl to drop it as a dependency.

If there isn’t one already, it would be worth filing an issue with them.

Edit: looking a little deeper, per this issue they are in the midst of a refactor so getting versions lined up might be a low priority, but I don’t see an issue open about this, so no harm opening one!

1 Like

Thank you, for digging into this issue. I will go ahead an file a bug. In the meantime, I’ve decided to use PyCall and use the environment I want from the Python gym package.

3 Likes