Interpreting version compatibility error during package installation

I don’t understand the following version compatibility error during installation of ContinuumArrays.jl:

(@v1.7) pkg> add ContinuumArrays
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package OrthogonalPolynomialsQuasi [aa41a628]:
 OrthogonalPolynomialsQuasi [aa41a628] log:
 ├─possible versions are: 0.0.1-0.4.3 or uninstalled
 ├─restricted to versions * by ApproxFunBase [fbd15aa5], leaving only versions 0.0.1-0.4.3
...
 └─restricted by compatibility requirements with FillArrays [1a297f60] to versions: uninstalled — no versions left

The dependency tree in the error message complains that different versions of OrthogonalPolynomialsQuasi.jl are required by different packages, but the details of the tree don’t seem to support this complaint:

  • The available versions of OrthogonalPolynomialsQuasi.jl are 0.0.1-0.4.3.
  • OrthogonalPolynomialsQuasi.jl is restricted to versions * by ApproxFunBase.jl.
    • So, the OrthogonalPolynomialsQuasi.jl version is unrestricted by ApproxFunBase.jl.
  • OrthogonalPolynomialsQuasi.jl is uninstalled by FillArrays.jl.
    • So, the OrthogonalPolynomialsQuasi.jl version is practically unrestricted by FillArrays.jl???

In fact I am not sure what the last bullet point above means. FillArrays.jl does not require OrthogonalPolynomialsQuasi.jl as shown in its Project.toml, so it seems obvious that OrthogonalPolynomialsQuasi.jl is uninstalled by FillArrays.jl. Then why does FillArrays.jl even care about the version of OrthogonalPolynomialsQuasi.jl?

The full error message is here:

(@v1.7) pkg> add ContinuumArrays
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package OrthogonalPolynomialsQuasi [aa41a628]:
 OrthogonalPolynomialsQuasi [aa41a628] log:
 ├─possible versions are: 0.0.1-0.4.3 or uninstalled
 ├─restricted to versions * by ApproxFunBase [fbd15aa5], leaving only versions 0.0.1-0.4.3
 │ └─ApproxFunBase [fbd15aa5] log:
 │   ├─possible versions are: 0.4.0 or uninstalled
 │   ├─restricted to versions 0.3-0.5 by ApproxFunFourier [59844689], leaving only versions 0.4.0
 │   │ └─ApproxFunFourier [59844689] log:
 │   │   ├─possible versions are: 0.2.12 or uninstalled
 │   │   └─ApproxFunFourier [59844689] is fixed to version 0.2.12
 │   └─ApproxFunBase [fbd15aa5] is fixed to version 0.4.0
 └─restricted by compatibility requirements with FillArrays [1a297f60] to versions: uninstalled — no versions left
   └─FillArrays [1a297f60] log:
     ├─possible versions are: 0.2.0-0.12.7 or uninstalled
     └─restricted to versions 0.12 by ClassicalOrthogonalPolynomials [b30e2e7b], leaving only versions 0.12.0-0.12.7
       └─ClassicalOrthogonalPolynomials [b30e2e7b] log:
         ├─possible versions are: 0.5.1 or uninstalled
         ├─restricted to versions 0.5 by HarmonicOrthogonalPolynomials [e416a80e], leaving only versions 0.5.1
         │ └─HarmonicOrthogonalPolynomials [e416a80e] log:
         │   ├─possible versions are: 0.2.4 or uninstalled
         │   └─HarmonicOrthogonalPolynomials [e416a80e] is fixed to version 0.2.4
         └─ClassicalOrthogonalPolynomials [b30e2e7b] is fixed to version 0.5.1

I can’t make sense of the resolver log either and I’m not sure what in your environment causes this conflict to be triggered by adding Continuumarrays, but experimenting in a clean environment (>pkg activate --temp is your friend) one can see that Continuumarrays is unproblematic to add on its own and by trying different combinations of the packages in the log that the real problem is the combination of OrthogonalPolynomialsQuasi and ClassicalOrthogonalPolynomials, which turn out to have mutually exclusive compat on QuasiArrays. The README of OrthogonalPolynomialsQuasi indicates that it has been replaced by ClassicalOrthogonalPolynomials so my suggestion would be to find out what in your environment needs the outdated package.

Or possibly better, don’t try to put every package in the global environment but use different environments for each project you’re working on.

1 Like

The error message should be improved… Before fixing this could you give us the content of your .julia/environments/v1.7/Project.toml and .julia/environments/v1.7/Manifest.toml ?

Thanks! I was able to resolve the issue by creating a separate environment for this project.