jump-dev / SCS.jl

A Julia interface for the SCS conic programming solver
https://github.com/cvxgrp/scs
Other
81 stars 27 forks source link

does not allow current version of MKL_jll #274

Closed JeffreySarnoff closed 11 months ago

JeffreySarnoff commented 1 year ago

In almost new directory (added Ipopt first):

pkg> add SCS
...
pkg> status --outdated -m
⌅ [856f044c] MKL_jll v2022.2.0+0 (<v2023.1.0+0): SCS_MKL_jll
odow commented 1 year ago

Blocked by https://github.com/JuliaPackaging/Yggdrasil/pull/6766. We have to be very careful with this one. It's a known issue.

JeffreySarnoff commented 1 year ago

Thank you for the informative, very prompt responses.

odow commented 1 year ago

very prompt responses

My secret is that it's 2pm in New Zealand :smile:

kalmarek commented 1 year ago

@odow I don't quite understand why this is still happening:

$ JULIA_DEPOT_PATH=/tmp/julia_tmp_depot julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.9.1 (2023-06-07)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(@v1.9) pkg> add SCS_MKL_jll
    Updating registry at `/tmp/julia_tmp_depot/registries/General.toml`
   Resolving package versions...
   Installed IntelOpenMP_jll ─ v2023.1.0+0
   Installed SCS_MKL_jll ───── v3.2.3+1
   Installed MKL_jll ───────── v2022.2.0+0
   Installed Preferences ───── v1.4.0
   Installed JLLWrappers ───── v1.4.1
  Downloaded artifact: IntelOpenMP
  Downloaded artifact: SCS_MKL
    Updating `/tmp/julia_tmp_depot/environments/v1.9/Project.toml`
  [3f2553a9] + SCS_MKL_jll v3.2.3+1
    Updating `/tmp/julia_tmp_depot/environments/v1.9/Manifest.toml`
  [692b3bcd] + JLLWrappers v1.4.1
  [21216c6a] + Preferences v1.4.0
  [1d5cc7b8] + IntelOpenMP_jll v2023.1.0+0
⌅ [856f044c] + MKL_jll v2022.2.0+0
  [3f2553a9] + SCS_MKL_jll v3.2.3+1
  [0dad84c5] + ArgTools v1.1.1
  [56f22d72] + Artifacts
  [2a0f44e3] + Base64
  [ade2ca70] + Dates
  [f43a241f] + Downloads v1.6.0
  [7b1f6079] + FileWatching
  [b77e0a4c] + InteractiveUtils
  [4af54fe1] + LazyArtifacts
  [b27032c2] + LibCURL v0.6.3
  [76f85450] + LibGit2
  [8f399da3] + Libdl
  [56ddb016] + Logging
  [d6f4376e] + Markdown
  [ca575930] + NetworkOptions v1.2.0
  [44cfe95a] + Pkg v1.9.0
  [de0858da] + Printf
  [3fa0cd96] + REPL
  [9a3f8284] + Random
  [ea8e919c] + SHA v0.7.0
  [9e88b42a] + Serialization
  [6462fe0b] + Sockets
  [fa267f1f] + TOML v1.0.3
  [a4e569a6] + Tar v1.10.0
  [cf7118a7] + UUIDs
  [4ec0a83e] + Unicode
  [deac9b47] + LibCURL_jll v7.84.0+0
  [29816b5a] + LibSSH2_jll v1.10.2+0
  [c8ffd9c3] + MbedTLS_jll v2.28.2+0
  [14a3606d] + MozillaCACerts_jll v2022.10.11
  [83775a58] + Zlib_jll v1.2.13+0
  [8e850ede] + nghttp2_jll v1.48.0+0
  [3f19e933] + p7zip_jll v17.4.0+0
        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
  8 dependencies successfully precompiled in 2 seconds

(@v1.9) pkg> add MKL_jll@2023
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package SCS_MKL_jll [3f2553a9]:
 SCS_MKL_jll [3f2553a9] log:
 ├─possible versions are: 3.2.1-3.2.3 or uninstalled
 ├─restricted to versions * by an explicit requirement, leaving only versions: 3.2.1-3.2.3
 └─restricted by compatibility requirements with MKL_jll [856f044c] to versions: uninstalled — no versions left
   └─MKL_jll [856f044c] log:
     ├─possible versions are: 2019.0.117-2023.1.0 or uninstalled
     └─restricted to versions 2023 by an explicit requirement, leaving only versions: 2023.1.0
odow commented 1 year ago

Releasing that version didn't update the compat in the registry: https://github.com/JuliaRegistries/General/blob/f6a8f2f6c67541c797cd0bdfd8d03b65d67dc3e1/jll/S/SCS_MKL_jll/Compat.toml#L8-L9

I guess we did need to bump the version

kalmarek commented 1 year ago

oh well;

After thinking maybe what Mose suggested is a better option:

Then users workflow would look like

Pkg.add("SCS")
Pkg.add("SCS_MKL_jll")
import SCS_MKL_jll
using SCS

This way it's the role of SCS_MKL_jll to take care of its deps, not of the user. What do you think?

odow commented 1 year ago

This will require us to release SCS 2.0, but that's okay.

odow commented 1 year ago

We could also just edit the general registry

odow commented 12 months ago

See https://github.com/JuliaPackaging/Yggdrasil/pull/7665

We'd change Requires to SCS_GPU_jll and SCS_MKL_jll, and we'd drop support for 3.2.3 and earlier. This likely requires a 2.0 release of SCS, but I'm okay with that.

odow commented 11 months ago

Closed by #286