Adding JuMP downgrades some packages in v0.6

package

#1
julia> Pkg.add("JuMP")
INFO: Downgrading DiffEqCallbacks: v0.2.0 => v0.1.1
INFO: Downgrading ForwardDiff: v0.5.0 => v0.4.2
INFO: Installing JuMP v0.17.1
INFO: Downgrading LineSearches: v2.2.0 => v0.1.5
INFO: Downgrading NLsolve: v0.10.1 => v0.9.1
INFO: Downgrading Optim: v0.9.2 => v0.7.8
INFO: Downgrading OrdinaryDiffEq: v2.8.0 => v2.4.0
INFO: Installing ReverseDiffSparse v0.7.3
INFO: Downgrading StochasticDiffEq: v2.6.0 => v2.2.1
INFO: Removing CommonSubexpressions v0.0.1
INFO: Removing RealInterface v0.0.2
INFO: Package database updated

I checked REQUIRE files of JuMP and ReverseDiffSparse. Both of them contain
ForwardDiff 0.3 0.5
but actually FowardDiff was downgraded from 0.5.0 to 0.4.2.

julia> versioninfo()
Julia Version 0.6.0
Commit 9036443 (2017-06-19 13:05 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, haswell)

julia> Pkg.status()
9 required packages:
 - DifferentialEquations         2.2.1
 - GLM                           0.7.0
 - Gurobi                        0.3.2
 - JuMP                          0.17.1
 - MathProgBase                  0.6.4
 - Plots                         0.12.0
 - PyPlot                        2.3.2
 - StatsModels                   0.0.2
 - TensorFlow                    0.6.4+             master
102 additional packages:
 - AlgebraicDiffEq               0.1.0
 - AutoHashEquals                0.1.1
 - BinDeps                       0.6.0
 - Blosc                         0.2.1
 - Calculus                      0.2.2
 - CategoricalArrays             0.1.6
 - ChunkedArrays                 0.1.1
 - ColorTypes                    0.5.1
 - Colors                        0.7.3
 - Combinatorics                 0.4.0
 - Compat                        0.26.0
 - Conda                         0.5.3
 - DataArrays                    0.5.3
 - DataFrames                    0.10.0
 - DataStreams                   0.1.3
 - DataStructures                0.5.3
 - DataTables                    0.0.3
 - DelayDiffEq                   0.4.0
 - DiffBase                      0.2.0
 - DiffEqBase                    1.12.0
 - DiffEqBiological              0.2.0
 - DiffEqCallbacks               0.1.1
 - DiffEqDevTools                0.9.0
 - DiffEqFinancial               0.2.0
 - DiffEqJump                    0.4.0
 - DiffEqMonteCarlo              0.7.0
 - DiffEqNoiseProcess            0.2.0
 - DiffEqPDEBase                 0.3.2
 - DiffEqParamEstim              0.5.0
 - DiffEqSensitivity             0.2.2
 - DiffEqUncertainty             0.0.1
 - DimensionalPlotRecipes        0.0.2
 - Distances                     0.4.1
 - Distributions                 0.13.0
 - EllipsisNotation              0.2.2
 - FileIO                        0.4.1
 - FiniteElementDiffEq           0.4.0
 - FixedPointNumbers             0.3.8
 - FixedSizeArrays               0.2.5
 - ForwardDiff                   0.4.2
 - GZip                          0.3.0
 - GenericSVD                    0.0.2
 - HDF5                          0.8.1
 - Hiccup                        0.1.1
 - IterativeSolvers              0.3.1
 - Iterators                     0.3.1
 - JLD                           0.6.11
 - JSON                          0.12.0
 - Juno                          0.3.0
 - LaTeXStrings                  0.2.1
 - LearnBase                     0.1.5
 - LegacyStrings                 0.2.2
 - LineSearches                  0.1.5
 - LinearMaps                    0.3.0
 - LossFunctions                 0.1.0
 - LsqFit                        0.3.0
 - MNIST                         0.0.2
 - MacroTools                    0.3.7
 - Measures                      0.1.0
 - Media                         0.3.0
 - MultiScaleArrays              0.3.0
 - NLSolversBase                 2.1.3
 - NLsolve                       0.9.1
 - NaNMath                       0.2.5
 - NullableArrays                0.1.1
 - Optim                         0.7.8
 - OptimBase                     0.1.0
 - OrdinaryDiffEq                2.4.0
 - PDMats                        0.7.0
 - ParameterizedFunctions        2.1.0
 - Parameters                    0.7.2
 - PlotThemes                    0.1.4
 - PlotUtils                     0.4.2
 - Polynomials                   0.1.5
 - PositiveFactorizations        0.0.4
 - ProtoBuf                      0.4.0
 - PyCall                        1.13.0
 - QuadGK                        0.1.2
 - RecipesBase                   0.2.0
 - RecursiveArrayTools           0.10.0
 - Reexport                      0.0.3
 - ResettableStacks              0.1.0
 - ReverseDiffSparse             0.7.3
 - Rmath                         0.1.7
 - Roots                         0.4.0
 - SHA                           0.3.3
 - Showoff                       0.1.1
 - SimpleTraits                  0.5.0
 - SortingAlgorithms             0.1.1
 - SpecialFunctions              0.1.1
 - StaticArrays                  0.5.1
 - StatsBase                     0.16.0
 - StatsFuns                     0.5.0
 - SteadyStateDiffEq             0.1.0
 - StochasticDiffEq              2.2.1
 - SugarBLAS                     0.0.3
 - Sundials                      0.12.0
 - SymEngine                     0.2.0
 - URIParser                     0.1.8
 - UnicodePlots                  0.2.4
 - VectorizedRoutines            0.0.2
 - WeakRefStrings                0.2.0

Maybe the previous Pkg issues have not completely solved.


#2

The requirement syntax ForwardDiff 0.3 0.5 requires a version V which is

0.3 <= V < 0.5

(which does not include the 0.5 endpoint). So ForwardDiff 0.5 does not satisfy that requirement, and ForwardDiff had to be downgraded to 0.4.2.