# JuMP v0.20 has been released

**URL:** <https://discourse.julialang.org/t/jump-v0-20-has-been-released/28221>\
**Category:** Optimization (Mathematical)\
**Created:** [August 30, 2019, 8:33pm UTC](https://discourse.julialang.org/t/jump-v0-20-has-been-released/28221 "2019-08-30T20:33:19Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![blegat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/blegat/32/217090_2.png) [@blegat](https://discourse.julialang.org/u/blegat)\
**Post date:** [August 30, 2019, 8:33pm UTC](https://discourse.julialang.org/t/jump-v0-20-has-been-released/28221/1 "2019-08-30T20:33:20Z")

</div>

We are pleased to announce the release of JuMP v0.20 and MathOptInterface (MOI) v0.9. This release is an incremental improvement over JuMP v0.19, with the majority of breaking changes affecting only solver developers. We support a number of new features that build on top of the extensible design of MOI.

Highlights from the [JuMP 0.20 release notes](https://github.com/JuliaOpt/JuMP.jl/blob/master/NEWS.md#version-0200-aug-24-2019):

- [LP sensitivity summary functions](http://www.juliaopt.org/JuMP.jl/v0.20.0/solutions/#Sensitivity-analysis-for-LP-1)
- Additional functions for:
  - Setting and querying coefficients in constraints
  - Setting and querying the new MOI attributes listed below

- Improved error messages
- Performance improvements

Highlights from the [MOI 0.9 release notes](https://github.com/JuliaOpt/MathOptInterface.jl/blob/master/NEWS.md):

- New sets were added for modeling new constraints: [IndicatorSet](https://www.juliaopt.org/MathOptInterface.jl/v0.9.1/apireference/#MathOptInterface.IndicatorSet), NormOneCone and NormInfinityCone.
- New attributes were added to enhance solver independent control over solvers: [DualObjectiveValue](https://www.juliaopt.org/MathOptInterface.jl/v0.9.1/apireference/#MathOptInterface.DualObjectiveValue), [RawParameter](https://www.juliaopt.org/MathOptInterface.jl/v0.9.1/apireference/#MathOptInterface.RawParameter), [RawStatusString](https://www.juliaopt.org/MathOptInterface.jl/v0.9.1/apireference/#MathOptInterface.RawStatusString), [SolveTime](https://www.juliaopt.org/MathOptInterface.jl/v0.9.1/apireference/#MathOptInterface.SolveTime), [Silent](https://www.juliaopt.org/MathOptInterface.jl/v0.9.1/apireference/#MathOptInterface.Silent), and [TimeLimitSec](https://www.juliaopt.org/MathOptInterface.jl/v0.9.1/apireference/#MathOptInterface.TimeLimitSec).
- [Bridges](https://www.juliaopt.org/MathOptInterface.jl/stable/apimanual/#Automatic-reformulation-1) have matured to a point where solver wrappers don’t have to implement any transformation and can directly map the solver interface into MOI without the need of doing any extra work. This allowed us to get rid of the intermediate layers [LQOI](https://github.com/JuliaOpt/LinQuadOptInterface.jl) and [SDOI](https://github.com/JuliaOpt/SemidefiniteOptInterface.jl) which were carrying out such transformations.

Updating solver wrappers for a new release of MOI is a large effort that requires coordination over 20+ packages. Most, but not all, solver interfaces have already been updated to support MOI 0.9. See [here](https://github.com/JuliaOpt/MathOptInterface.jl/issues/736) to track progress. Notably, the GLPK, Gurobi, Xpress, CPLEX have been or are currently being rewritten from scratch in order to reduce technical debt and remove the dependency on the intermediate LQOI package.

**Note** : Until all solver wrappers have a compatible release, expect to see Pkg reporting version incompatibilities.

We thank all the contributors to the release!

---

<div class="post-metadata">

**Author:** ![miles.lubin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/miles.lubin/32/279_2.png) [@miles.lubin](https://discourse.julialang.org/u/miles.lubin)\
**Post date:** [August 30, 2019, 8:49pm UTC](https://discourse.julialang.org/t/jump-v0-20-has-been-released/28221/2 "2019-08-30T20:49:40Z")

</div>



---

<div class="post-metadata">

**Author:** ![pierre-haessig](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pierre-haessig/32/217129_2.png) [@pierre-haessig](https://discourse.julialang.org/u/pierre-haessig)\
**Post date:** [September 9, 2019, 3:01pm UTC](https://discourse.julialang.org/t/jump-v0-20-has-been-released/28221/3 "2019-09-09T15:01:08Z")

</div>

Sorry for the noise, but is it related to the incompatible dependencies that when I try to update from 0.19.2, I’m not getting version 0.20 ? I’m on Julia 1.2.0, and here is my package status output:

```julia
  [c52e3926] Atom v0.10.1
  [f6369f11] ForwardDiff v0.10.3
  [60bf3e95] GLPK v0.10.0
  [7073ff75] IJulia v1.20.0
  [4076af6c] JuMP v0.19.2
  [e5e0dc1b] Juno v0.7.2
  [b8f27783] MathOptInterface v0.8.4
  [429524aa] Optim v0.19.2
  [d330b81b] PyPlot v2.8.2
  [37e2e3b7] ReverseDiff v0.3.1
  [295af30f] Revise v2.1.10

```

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [September 9, 2019, 3:08pm UTC](https://discourse.julialang.org/t/jump-v0-20-has-been-released/28221/4 "2019-09-09T15:08:12Z")

</div>

Try `free MathOptInterface`. It needs to update to `0.9`.

---

<div class="post-metadata">

**Author:** ![pierre-haessig](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pierre-haessig/32/217129_2.png) [@pierre-haessig](https://discourse.julialang.org/u/pierre-haessig)\
**Post date:** [September 9, 2019, 3:20pm UTC](https://discourse.julialang.org/t/jump-v0-20-has-been-released/28221/5 "2019-09-09T15:20:19Z")

</div>

> [@odow](#):
>
> Try `free MathOptInterface` . It needs to update to `0.9` .

Indeed, thanks!

```julia
  Updating `~/.julia/environments/v1.2/Project.toml`
  [60bf3e95] ↑ GLPK v0.10.0 ⇒ v0.11.3
  [4076af6c] ↑ JuMP v0.19.2 ⇒ v0.20.0
  [b8f27783] ↑ MathOptInterface v0.8.4 ⇒ v0.9.2
  Updating `~/.julia/environments/v1.2/Manifest.toml`
  [6e4b80f9] + BenchmarkTools v0.4.3
  [60bf3e95] ↑ GLPK v0.10.0 ⇒ v0.11.3
  [4076af6c] ↑ JuMP v0.19.2 ⇒ v0.20.0
  [f8899e07] - LinQuadOptInterface v0.6.0
  [b8f27783] ↑ MathOptInterface v0.8.4 ⇒ v0.9.2

```

It’s a bit silly, I installed MOI because I thought it was needed to check the [termination status of JuMP](http://www.juliaopt.org/JuMP.jl/stable/solutions/#Termination-statuses-1), before realizing that `MOI.OPTIMAL` was already available! (the “recommended workflow” is a bit hidden [further down the page](http://www.juliaopt.org/JuMP.jl/stable/solutions/#Obtaining-solutions-1)…)

---

<div class="post-metadata">

**Author:** ![odow](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/odow/32/28685_2.png) [@odow](https://discourse.julialang.org/u/odow)\
**Post date:** [September 9, 2019, 3:49pm UTC](https://discourse.julialang.org/t/jump-v0-20-has-been-released/28221/6 "2019-09-09T15:49:54Z")

</div>

Great you got it working. Pull requests to improve the documentation are welcomed.
