# Decoding conflict in requirements

**URL:** <https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471>\
**Category:** General Usage\
**Created:** [January 19, 2018, 12:02pm UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471 "2018-01-19T12:02:27Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [January 19, 2018, 12:02pm UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/1 "2018-01-19T12:02:27Z")

</div>

May someone help me decode the following conflict in requirements, or point me to a reference?

```julia
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.

```

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [January 19, 2018, 12:09pm UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/2 "2018-01-19T12:09:26Z")

</div>

NLSolve.jl master just did a major breaking change

[https://github.com/JuliaNLSolvers/NLsolve.jl/issues/110](https://github.com/JuliaNLSolvers/NLsolve.jl/issues/110)

and so no package is really compatible with it yet.

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [January 19, 2018, 12:11pm UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/3 "2018-01-19T12:11:02Z")

</div>

So no number of package sacrifices will make Optim checkout?

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [January 19, 2018, 12:17pm UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/4 "2018-01-19T12:17:30Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [January 19, 2018, 12:21pm UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/5 "2018-01-19T12:21:58Z")

</div>

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 😄.

---

<div class="post-metadata">

**Author:** ![pkofod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pkofod/32/2179_2.png) [@pkofod](https://discourse.julialang.org/u/pkofod)\
**Post date:** [January 19, 2018, 12:54pm UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/6 "2018-01-19T12:54:05Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![pkofod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pkofod/32/2179_2.png) [@pkofod](https://discourse.julialang.org/u/pkofod)\
**Post date:** [January 19, 2018, 12:57pm UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/7 "2018-01-19T12:57:53Z")

</div>

> [@ChrisRackauckas](#):
>
> ASAP

I’ll see if the README is up to date, and then I’ll just do the breaking tag now.

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [January 20, 2018, 2:01am UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/8 "2018-01-20T02:01:54Z")

</div>

```julia
julia> Pkg.status()
85 required packages:
 - ASTInterpreter2 0.1.1
 - AmplNLWriter 0.4.0
 - ArrayFire 0.1.0+ master
 - BenchmarkTools 0.2.3
 - Blink 0.6.0
 - CPLEX 0.3.0
 - CUDAdrv 0.6.1
 - CUDArt 0.4.1
 - CUDNN 0.4.0
 - CVXOPT 0.2.0
 - Calendar 0.4.3
 - Cbc 0.3.2
 - Clang 0.3.0
 - Clp 0.3.1
 - CoinOptServices 0.2.0
 - ComposeDiff 0.0.2
 - Convex 0.5.0
 - CxxWrap 0.5.0
 - DataFrames 0.11.4+ master
 - DifferentialEquations 3.1.0
 - DocStringExtensions 0.4.3
 - DynMultiply 0.0.1
 - Einsum 0.1.0+ master
 - EllipticFEM 0.0.2
 - Escher 0.3.3
 - Espresso 0.4.0
 - FiniteElementDiffEq 0.4.0
 - FixedSizeArrays 0.2.5
 - Flux 0.4.0
 - GLPK 0.4.2
 - GLPKMathProgInterface 0.3.4
 - GLVisualize 0.6.1+ master
 - GPUArrays 0.2.1
 - GR 0.25.0+ master
 - Glob 1.1.1
 - GraphLayout 0.3.1
 - GraphPlot 0.2.0
 - Graphs 0.9.0
 - Highlights 0.2.1
 - IJulia 1.6.2
 - ImageMagick 0.5.0
 - Interact 0.6.3 master (dirty)
 - Ipopt 0.2.6
 - JuMP 0.18.0
 - JuliaFEM 0.3.5
 - LLVM 0.5.1
 - Lint 0.5.0+ master
 - MAT 0.4.0+ master
 - MatrixMarket 0.2.0
 - Memoize 0.2.0
 - Meshes 0.2.0
 - Missings 0.2.4
 - Mocha 0.3.0
 - Munkres 0.1.1
 - NLopt 0.3.6
 - NetworkViz 0.0.2
 - Nulls 0.1.2
 - ParallelAccelerator 0.3.2
 - Pardiso 0.3.1
 - Patchwork 0.4.0
 - PkgDev 0.1.6
 - Plotly 0.1.1
 - PlotlyJS 0.8.3
 - Plots 0.15.0
 - ProfileView 0.3.0
 - PyCall 1.15.0
 - PyPlot 2.3.2+ master
 - Revise 0.1.1
 - RobustShortestPath 0.2.3
 - Rsvg 0.1.0
 - SCS 0.3.3
 - StrPack 0.2.0
 - StructJuMP 0.0.1
 - Suppressor 0.0.5+ master
 - SymEngine 0.3.0
 - SymPy 0.6.0
 - ThreeJS 0.3.0
 - TikzGraphs 0.5.1
 - TimerOutputs 0.3.1
 - UnicodePlots 0.2.6
 - ValidatedNumerics 0.9.0
 - WinRPM 0.3.1
 - Winston 0.13.1
 - WriteVTK 0.6.1
 - ZMQ 0.5.1
243 additional packages:
 - AMD 0.1.0
 - AbaqusReader 0.1.0
 - AbstractFFTs 0.2.1
 - AbstractNumbers 0.1.1
 - AdjacentFloats 0.0.6
 - AlgebraicDiffEq 0.1.0
 - ArgParse 0.5.0
 - ArrayIteration 0.0.0- master (unregistered, dirty)
 - ArrayViews 0.6.4
 - AsterReader 0.1.0
 - AutoHashEquals 0.2.0
 - AxisAlgorithms 0.2.0
 - AxisArrays 0.2.0
 - BandedMatrices 0.3.1
 - BaseTestNext 0.2.2
 - BinDeps 0.8.5
 - BinaryProvider 0.1.3
 - Blosc 0.3.0
 - BoundaryValueDiffEq 0.3.0
 - BranchAndBound 0.0.0- master (unregistered)
 - BufferedStreams 0.3.3
 - CRlibm 0.5.0
 - CSSUtil 0.0.0- master (unregistered)
 - CUDAapi 0.2.1
 - Cairo 0.4.0
 - Calculus 0.2.2
 - CatIndices 0.1.0
 - CategoricalArrays 0.3.3
 - ChunkedArrays 0.1.1
 - CodecZlib 0.4.2
 - Codecs 0.4.0
 - ColorBrewer 0.3.1
 - ColorTypes 0.6.6
 - ColorVectorSpace 0.5.2
 - Colors 0.8.2
 - CommonSubexpressions 0.0.1
 - Compat 0.46.0
 - CompilerTools 0.3.1
 - Compose 0.5.4
 - ComputationalResources 0.2.0
 - Conda 0.7.1
 - Contour 0.4.0
 - CoordinateTransformations 0.4.1
 - Crayons 0.4.1
 - CustomUnitRanges 0.1.0
 - DataFlow 0.3.0
 - DataStreams 0.3.4
 - DataStructures 0.7.4
 - Dates 0.4.4
 - DebuggerFramework 0.1.2
 - DelayDiffEq 1.12.0
 - DiffBase 0.3.2
 - DiffEqBase 2.10.2
 - DiffEqBiological 0.3.0
 - DiffEqCallbacks 0.8.0
 - DiffEqDevTools 0.11.3
 - DiffEqDiffTools 0.2.1
 - DiffEqFinancial 0.3.0
 - DiffEqJump 0.7.0
 - DiffEqMonteCarlo 0.9.1
 - DiffEqNoiseProcess 0.8.0
 - DiffEqPDEBase 0.3.5
 - DiffEqParamEstim 0.7.2
 - DiffEqPhysics 0.3.0
 - DiffEqSensitivity 0.5.1
 - DiffEqUncertainty 0.0.1
 - DiffResults 0.0.3
 - DiffRules 0.0.2
 - DimensionalPlotRecipes 0.0.2
 - Discretizers 2.1.0
 - Distances 0.5.0
 - DistributedArrays 0.4.0
 - Distributions 0.15.0
 - DocOpt 0.3.0
 - DualNumbers 0.3.0
 - EllipsisNotation 0.3.0
 - ErrorfreeArithmetic 0.0.3
 - FEMBase 0.0.1
 - FEMBasis 0.1.4
 - FEMQuad 0.1.0
 - FFTViews 0.1.0
 - FFTW 0.0.4
 - FastRounding 0.0.5
 - FileIO 0.6.1
 - FinEtools 0.0.0- master (unregistered)
 - FixedPointNumbers 0.4.3
 - Fontconfig 0.1.1
 - Formatting 0.3.0
 - ForwardDiff 0.7.0
 - FreeType 1.3.0
 - FreeTypeAbstraction 0.1.0
 - FunctionWrappers 0.1.0
 - FunctionalCollections 0.3.2
 - GLAbstraction 0.6.1
 - GLFW 1.5.0
 - GLWindow 0.7.1
 - GenericSVD 0.1.0
 - GeometryTypes 0.4.4
 - Graphics 0.2.0
 - Gtk 0.13.1
 - GtkReactive 0.4.0
 - HDF5 0.8.8
 - Hiccup 0.1.1
 - HttpCommon 0.3.0
 - HttpParser 0.3.0
 - HttpServer 0.2.0
 - ICU 0.4.4
 - IdentityRanges 0.1.0
 - ImageAxes 0.4.0
 - ImageCore 0.5.0
 - ImageFiltering 0.2.3
 - ImageMetadata 0.4.0
 - ImageMorphology 0.0.2
 - ImageTransformations 0.4.1
 - Images 0.12.0
 - IncompleteSelectedInversion 0.0.0- master (unregistered)
 - IndirectArrays 0.3.0
 - IniFile 0.3.1
 - InteractNext 0.0.0- master (unregistered)
 - Interpolations 0.7.3
 - IntervalArithmetic 0.11.0
 - IntervalConstraintProgramming 0.7.0
 - IntervalContractors 0.1.0
 - IntervalRootFinding 0.1.1
 - IntervalSets 0.1.1
 - IterTools 0.2.0
 - IterativeSolvers 0.4.2+ master
 - Iterators 0.3.1
 - JLD 0.8.3
 - JSON 0.16.4
 - JuAFEM 0.0.0- old (unregistered, dirty)
 - Juno 0.3.2
 - Krylov 0.0.0- master (unregistered)
 - LDL 0.0.0- master (unregistered)
 - LLDL 0.0.0- master (unregistered)
 - LaTeXStrings 0.3.0
 - Lazy 0.12.0
 - LearnBase 0.1.6
 - LegacyStrings 0.3.0
 - LibExpat 0.4.1
 - Libz 0.2.4
 - LightGraphs 0.11.1
 - LightXML 0.5.0
 - LineSearches 3.2.3
 - LinearMaps 1.0.4
 - LinearOperators 0.3.1
 - Logging 0.3.1
 - LossFunctions 0.2.0
 - LsqFit 0.3.0
 - MPI 0.6.0
 - MacroTools 0.4.0
 - Makie 0.0.0- master (unregistered)
 - MappedArrays 0.0.7
 - Markdown 0.3.0
 - Matcha 0.1.1
 - MathProgBase 0.7.0
 - MbedTLS 0.5.4
 - Measures 0.1.0
 - Media 0.3.0
 - Memento 0.5.1
 - MeshIO 0.1.1
 - Meshing 0.2.0
 - ModernGL 0.2.1
 - MuladdMacro 0.0.2
 - MultiScaleArrays 0.5.0
 - Mustache 0.3.0
 - Mux 0.2.3
 - NLSolversBase 3.1.0
 - NNlib 0.2.1
 - NaNMath 0.3.0
 - NamedTuples 4.0.0
 - Nullables 0.0.3
 - Observables 0.0.2 master
 - OffsetArrays 0.4.2
 - Optim 0.11.0 master
 - OptimBase 0.1.0
 - OrdinaryDiffEq 2.36.0
 - PDMats 0.8.0
 - PETSc 0.0.0- master (unregistered)
 - PGFPlots 2.2.2 master
 - Packing 0.1.0
 - PaddedViews 0.2.0
 - ParameterizedFunctions 2.3.1
 - Parameters 0.8.1
 - PenaltyFunctions 0.0.2
 - PlotThemes 0.2.0
 - PlotUtils 0.4.4
 - PositiveFactorizations 0.1.0
 - Primes 0.2.0
 - PyGen 0.0.0- master (unregistered)
 - QuadGK 0.2.0
 - Quaternions 0.3.0
 - RandomNumbers 0.1.1
 - RangeArrays 0.2.0
 - Ratios 0.2.0
 - Reactive 0.6.0
 - RecipesBase 0.2.3
 - RecursiveArrayTools 0.14.3
 - Reexport 0.1.0
 - Requests 0.5.1
 - Requires 0.4.3
 - ResettableStacks 0.3.0
 - ResumableFunctions 0.1.10+ master
 - ReverseDiffSparse 0.8.1
 - Rmath 0.3.1
 - Roots 0.5.0
 - Rotations 0.6.1
 - RoundingIntegers 0.0.3
 - SHA 0.5.3
 - SIMD 0.2.0
 - SIUnits 0.1.0
 - ShowItLikeYouBuildIt 0.2.0
 - Showoff 0.1.1
 - SignedDistanceFields 0.2.0
 - SimpleTraits 0.5.1
 - SortingAlgorithms 0.2.0
 - SpecialFunctions 0.3.8
 - StaticArrays 0.6.6
 - StatsBase 0.19.5
 - StatsFuns 0.5.0
 - SteadyStateDiffEq 0.1.0
 - StochasticDiffEq 2.23.3
 - Sugar 0.4.3
 - Sundials 1.0.0
 - Syslogs 0.0.1
 - Tensors 0.7.3
 - TexExtensions 0.1.0
 - TextWrap 0.2.0
 - TikzPictures 1.2.0
 - TiledIteration 0.1.0
 - Tk 0.5.2
 - TranscodingStreams 0.4.1
 - URIParser 0.3.0
 - UnicodeFun 0.1.0
 - VTKDataIO 0.0.0- master (unregistered)
 - VTKDataTypes 0.0.0- master (unregistered)
 - VectorizationUtils 0.0.0- master (unregistered, dirty)
 - VectorizedRoutines 0.0.2
 - Vue 0.0.0- master (unregistered)
 - WeakRefStrings 0.4.1
 - WebIO 0.0.0- master (unregistered)
 - WebSockets 0.4.0
 - WoodburyMatrices 0.2.2

```

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [January 20, 2018, 2:43am UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/9 "2018-01-20T02:43:51Z")

</div>

When I do `git pull` and `git checkout master` in the Optim directory, then I try running `using Optim`, I get the following:

```julia
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.

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [January 20, 2018, 2:47am UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/10 "2018-01-20T02:47:40Z")

</div>

> [@mohamed82008](#):
>
> TwiceDifferentiableHV not defined

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.

---

<div class="post-metadata">

**Author:** ![pkofod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pkofod/32/2179_2.png) [@pkofod](https://discourse.julialang.org/u/pkofod)\
**Post date:** [January 20, 2018, 9:36am UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/11 "2018-01-20T09:36:57Z")

</div>

This is because you also need to manually check out NLSolversBase.

Hopefully this is sorted out soon, but there are quite a few things in NLsolve that should be changed/removed properly. I’ll tag as soon as I can.

---

<div class="post-metadata">

**Author:** ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)\
**Post date:** [January 20, 2018, 10:16am UTC](https://discourse.julialang.org/t/decoding-conflict-in-requirements/8471/12 "2018-01-20T10:16:54Z")

</div>

> [@pkofod](#):
>
> This is because you also need to manually check out NLSolversBase.

Perfect, now it works! Thanks a lot!
