May someone help me decode the following conflict in requirements, or point me to a reference?
julia> Pkg.checkout("Optim")
INFO: Checking out Optim master...
INFO: Pulling Optim latest master...
WARNING: julia is fixed at 0.6.2 conflicting with requirement for ResumableFunctions: [0.7.0,∞)
ERROR: Unsatisfiable requirements detected for package NLSolversBase:
├─version range [4.0.0,∞) required by package Optim, whose only allowed version is 0.12.0+:
│ └─version 0.12.0+ set by fixed requirement (package is checked out, dirty or pinned)
├─version range [3.0.0,∞) required by package LineSearches, whose allowed version range is [3.2.0,∞):
│ ├─version range [3.2.0,∞) required by package Optim, whose only allowed version is 0.12.0+:
│ │ └─[see above for Optim backtrace]
│ └─version range [0.0.0-,∞) required by package NLsolve, whose allowed version range is [0.7.3,∞):
│ ├─version range [0.7.3,∞) required by package FiniteElementDiffEq, whose allowed version range is [0.0.0-,∞):
│ │ └─version range [0.0.0-,∞) set by an explicit requirement
│ └─version range [0.7.3,∞) required by package OrdinaryDiffEq, whose allowed version range is [0.0.0,∞):
│ └─version range [0.0.0,∞) required by package DifferentialEquations, whose allowed version range is [0.0.0-,∞):
│ └─version range [0.0.0-,∞) set by an explicit requirement
└─version range [0.0.1,4.0.0) required by package NLsolve, whose allowed version range is [0.7.3,∞):
└─[see above for NLsolve backtrace]
The intersection of the requirements is empty.
If I understand correctly, NLsolve requires NLSolversBase of version \in [0.0.1, 4.0.0) but Optim requires NLSolversBase of version \in [4.0.0,\infty) which is causing the conflict. Did I read this right?
You’d have to directly ask @pkofod about this. It’s a huge breaking change to the underlying syntax and until it’s released, compatibility is only known on a day-by-day basis by talking directly to the person who made the change. IMO, I would wait on this one a bit, and push @pkofod to put in the upper bounds / release ASAP .
I think a full Pkg.status(), however long it is, would help, but I think @ChrisRackauckas is correct that you need to remove anything that has to do with NLsolve to check out Optim.
You can (I’m not sure if it’s recommended though) circumvent this by just doing a git checkout in the Optim folder.
When I do git pull and git checkout master in the Optim directory, then I try running using Optim, I get the following:
julia> using Optim
INFO: Recompiling stale cache file C:\Users\user\.julia\lib\v0.6\Optim.ji for module Optim.
WARNING: Method definition transpose(ForwardDiff.Dual{T, V, N} where N where V<:Real) in module ForwardDiff at C:\Users\user\.julia\v0.6\ForwardDiff\src\dual.jl:317 overwritten at C:\Users\user\.julia\v0.6\ForwardDiff\src\dual.jl:163.
ERROR: LoadError: LoadError: UndefVarError: TwiceDifferentiableHV not defined
Stacktrace:
[1] include_from_node1(::String) at .\loading.jl:576
[2] include(::String) at .\sysimg.jl:14
[3] include_from_node1(::String) at .\loading.jl:576
[4] include(::String) at .\sysimg.jl:14
[5] anonymous at .\<missing>:2
while loading C:\Users\user\.julia\v0.6\Optim\src\multivariate/solvers/second_order/krylov_trust_region.jl, in expression starting on line 92
while loading C:\Users\user\.julia\v0.6\Optim\src\Optim.jl, in expression starting on line 95
ERROR: Failed to precompile Optim to C:\Users\user\.julia\lib\v0.6\Optim.ji.
Stacktrace:
[1] compilecache(::String) at .\loading.jl:710
[2] _require(::Symbol) at .\loading.jl:463
[3] require(::Symbol) at .\loading.jl:405
If you think this should be discussed on an issue instead, please let me know.
That’s probably part of the new NLSolversBase.jl that goes with the NLsolve.jl update. If you weren’t following it all, it’s probably much easier to wait a day for the tag.