Unsatisfiable requirements without any compat added?

Can’t figure out why this generates an error.

I want to add the packages Lux and EMpht to the same environment, and it does not work. Here I have a clean temp env, Lux is first installed and then I try to add EMpht.

What confuses me is that in the Project.toml of EMpht I can’t see any compat bounds on any dependency. The error says that Distributions is restricted to a lower version by EMpht (why?), though that still seems to be fine for the SpecialFunctions version. It is first further down that Distributions create a stricter requirement, though unclear why. It says look at the log above, so I assume it is from EMpht though I don’t really understand why it comes there?

Ran this in in julia 1.7.3

(jl_2yZdHo) pkg> add EMpht
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package SpecialFunctions [276daf66]:
 SpecialFunctions [276daf66] log:
 ├─possible versions are: 0.7.0-2.1.7 or uninstalled
 ├─restricted by compatibility requirements with Distributions [31c24e10] to versions: 0.7.0-2.1.7
 │ └─Distributions [31c24e10] log:
 │   ├─possible versions are: 0.16.0-0.25.66 or uninstalled
 │   ├─restricted to versions * by an explicit requirement, leaving only versions 0.16.0-0.25.66
 │   └─restricted by compatibility requirements with EMpht [0ca9fa26] to versions: 0.16.0-0.23.12
 │     └─EMpht [0ca9fa26] log:
 │       ├─possible versions are: 0.1.0 or uninstalled
 │       └─restricted to versions * by an explicit requirement, leaving only versions 0.1.0
 ├─restricted by compatibility requirements with Zygote [e88e6eb3] to versions: 0.10.0-2.1.7
 │ └─Zygote [e88e6eb3] log:
 │   ├─possible versions are: 0.1.0-0.6.43 or uninstalled
 │   ├─restricted by compatibility requirements with Lux [b2108857] to versions: 0.6.0-0.6.43
 │   │ └─Lux [b2108857] log:
 │   │   ├─possible versions are: 0.3.0-0.4.16 or uninstalled
 │   │   └─restricted to versions * by an explicit requirement, leaving only versions 0.3.0-0.4.16
 │   └─restricted by compatibility requirements with ChainRulesCore [d360d2e6] to versions: [0.1.0-0.6.5, 0.6.18-0.6.43] or uninstalled, leaving only versions: [0.6.0-0.6.5, 0.6.18-0.6.43]
 │     └─ChainRulesCore [d360d2e6] log:
 │       ├─possible versions are: 0.1.0-1.15.3 or uninstalled
 │       └─restricted by compatibility requirements with Lux [b2108857] to versions: 1.0.0-1.15.3
 │         └─Lux [b2108857] log: see above
 ├─restricted by compatibility requirements with Distributions [31c24e10] to versions: 0.7.0-0.10.3, leaving only versions: 0.10.0-0.10.3
 │ └─Distributions [31c24e10] log: see above
 └─restricted by compatibility requirements with CUDA [052768ef] to versions: 1.3.0-2.1.7 — no versions left
   └─CUDA [052768ef] log:
     ├─possible versions are: 0.1.0-3.12.0 or uninstalled
     ├─restricted by julia compatibility requirements to versions: [2.3.0, 2.5.0-3.12.0] or uninstalled
     ├─restricted by compatibility requirements with Lux [b2108857] to versions: 3.0.0-3.12.0
     │ └─Lux [b2108857] log: see above
     ├─restricted by compatibility requirements with NNlibCUDA [a00861dc] to versions: 3.3.1-3.12.0
     │ └─NNlibCUDA [a00861dc] log:
     │   ├─possible versions are: 0.1.0-0.2.4 or uninstalled
     │   └─restricted by compatibility requirements with Lux [b2108857] to versions: 0.2.0-0.2.4
     │     └─Lux [b2108857] log: see above
     └─restricted by compatibility requirements with LLVM [929cbde3] to versions: 3.3.3-3.12.0 or uninstalled, leaving only versions: 3.3.3-3.12.0
       └─LLVM [929cbde3] log:
         ├─possible versions are: 0.9.0-4.14.0 or uninstalled
         ├─restricted by julia compatibility requirements to versions: 4.0.0-4.14.0 or uninstalled
         └─restricted by compatibility requirements with CUDA [052768ef] to versions: 4.0.0-4.14.0
           └─CUDA [052768ef] log: see above

A package may have a different compat bound in the General registry than it has in its Project.toml file. Before compat bounds were required, some packages were registered without bounds, bounds may have been added in the registry after the package was registered.

2 Likes