oxfordcontrol / Clarabel.jl

Clarabel.jl: Interior-point solver for convex conic optimisation problems in Julia.
Apache License 2.0
179 stars 16 forks source link

Unable to install Clarabel with Julia/JuMP #107

Closed LaurentLessard closed 1 year ago

LaurentLessard commented 1 year ago

I just installed Julia v1.8.3 with JuMP v1.5.0, and I'm eager to try out Clarabel. Unfortunately, I can't seem to install it, and the package manager appears to complain about compatibility with other solvers? I just ran pkg> update so all my installed packages are current. Here is the error message from the package manager.

   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package COSMO [1e616198]:
 COSMO [1e616198] log:
 ├─possible versions are: 0.3.0-0.8.6 or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions 0.3.0-0.8.6
 ├─restricted by compatibility requirements with QDLDL [bfc457fd] to versions: 0.3.0-0.4.1 or uninstalled, leaving only versions: 0.3.0-0.4.1
 │ └─QDLDL [bfc457fd] log:
 │   ├─possible versions are: 0.1.3-0.3.0 or uninstalled
 │   └─restricted by compatibility requirements with Clarabel [61c947e1] to versions: 0.3.0
 │     └─Clarabel [61c947e1] log:
 │       ├─possible versions are: 0.1.0-0.3.0 or uninstalled
 │       ├─restricted to versions * by an explicit requirement, leaving only versions 0.1.0-0.3.0
 │       └─restricted by compatibility requirements with JuMP [4076af6c] to versions: 0.1.1-0.3.0 or uninstalled, leaving only versions: 0.1.1-0.3.0
 │         └─JuMP [4076af6c] log:
 │           ├─possible versions are: 0.18.3-1.5.0 or uninstalled
 │           ├─restricted to versions * by an explicit requirement, leaving only versions 0.18.3-1.5.0
 │           └─restricted by compatibility requirements with Pajarito [2f354839] to versions: [0.18.3-0.18.6, 1.0.0-1.5.0]
 │             └─Pajarito [2f354839] log:
 │               ├─possible versions are: 0.6.1-0.8.0 or uninstalled
 │               └─restricted to versions * by an explicit requirement, leaving only versions 0.6.1-0.8.0
 └─restricted by compatibility requirements with MathOptInterface [b8f27783] to versions: 0.8.4-0.8.6 or uninstalled — no versions left
   └─MathOptInterface [b8f27783] log:
     ├─possible versions are: 0.5.0-1.11.0 or uninstalled
     ├─restricted to versions * by an explicit requirement, leaving only versions 0.5.0-1.11.0
     ├─restricted by compatibility requirements with Cbc [9961bab8] to versions: [0.6.0-0.6.4, 0.8.0-0.8.4, 0.9.1-1.11.0]
     │ └─Cbc [9961bab8] log:
     │   ├─possible versions are: 0.4.0-1.0.3 or uninstalled
     │   ├─restricted to versions * by an explicit requirement, leaving only versions 0.4.0-1.0.3
     │   └─restricted by compatibility requirements with MathOptInterface [b8f27783] to versions: 0.4.4-1.0.3 or uninstalled, leaving only versions: 0.4.4-1.0.3
     │     └─MathOptInterface [b8f27783] log: see above
     ├─restricted by compatibility requirements with OSQP [ab2f91bb] to versions: [0.5.0-0.6.4, 0.8.0-0.8.4, 0.9.1-0.9.22, 0.10.3-1.11.0], leaving only versions: [0.6.0-0.6.4, 0.8.0-0.8.4, 0.9.1-0.9.22, 0.10.3-1.11.0]
     │ └─OSQP [ab2f91bb] log:
     │   ├─possible versions are: 0.1.8-0.8.0 or uninstalled
     │   ├─restricted to versions * by an explicit requirement, leaving only versions 0.1.8-0.8.0
     │   └─restricted by compatibility requirements with MathOptInterface [b8f27783] to versions: 0.5.1-0.8.0 or uninstalled, leaving only versions: 0.5.1-0.8.0
     │     └─MathOptInterface [b8f27783] log: see above
     ├─restricted by compatibility requirements with COSMO [1e616198] to versions: [0.8.0-0.8.4, 0.9.1-0.9.22, 0.10.7-1.11.0]
     │ └─COSMO [1e616198] log: see above
     ├─restricted by compatibility requirements with MadNLP [2621e9c9] to versions: [0.9.0-0.9.22, 0.10.5-0.10.8, 1.0.0-1.11.0], leaving only versions: [0.9.1-0.9.22, 0.10.7-0.10.8, 1.0.0-1.11.0]
     │ └─MadNLP [2621e9c9] log:
     │   ├─possible versions are: 0.1.0-0.5.1 or uninstalled
     │   ├─restricted to versions * by an explicit requirement, leaving only versions 0.1.0-0.5.1
     │   └─restricted by compatibility requirements with JuMP [4076af6c] to versions: 0.2.0-0.5.1 or uninstalled, leaving only versions: 0.2.0-0.5.1
     │     └─JuMP [4076af6c] log: see above
     └─restricted by compatibility requirements with Clarabel [61c947e1] to versions: 1.1.0-1.11.0
       └─Clarabel [61c947e1] log: see above
goulart-paul commented 1 year ago

I think that this is an issue with the versioning for the QDLDL linear solver that is shared between Clarabel and COSMO, since COSMO might still specify an older release than the Clarabel code.

If you are willing, could you temporarily uninstall / disable COSMO and see if that resolves it for you?

We will make a fix for this regardless - obviously not good form since I am a maintainer for all of these! - but would be good to be sure check if there are other compatibility issues there.

LaurentLessard commented 1 year ago

Thanks for the quick response! Yes, I can confirm that once I uninstall COSMO, and run pkg> update, I can now update `QDLDL to v0.3.0 and Clarabel installs and runs. It seems COSMO and Clarabel cannot coexist because they require different versions of QDLDL.

Something I noticed during the installation of Clarabel: it also installed DataFrames and PrettyTables, but older versions of these packages. So I suspect that anybody that uses more recent versions of these packages might also encounter problems installing Clarabel.

goulart-paul commented 1 year ago

Thank you. We will look into it and issue a fix, probably as a v0.3.1. We also have a v0.4 coming but that might wait until January.

migarstka commented 1 year ago

Should be fixed now!