JuMP v0.19 has been released


We are thrilled to announce the release of JuMP v0.19. Work on this release started nearly two years ago at the first JuMP-dev meetup.

As introduced in an earlier post and at the second JuMP-dev meetup, JuMP has undergone a major refactoring to replace its solver interface from MathProgBase (MPB) to the new MathOptInterface (MOI), receiving many new features and improvements along the way.

While MPB had three different interfaces: linear/quadratic, conic and nonlinear, MOI is completely generic and extensible by design:

MOI offers more flexibility in specifying an optimization problem than MPB, so there might be a large gap between what a solver natively supports and what is required to implement the interface. For this reason, MOI includes several utilities that can lift a solver with restricted functionality to a fully functional MOI object.

These MOI utilities are automatically used by JuMP when needed. In order to be interfaced directly with the solver without any MOI facilities in-between, we have introduced a direct mode. In direct mode, no model cache nor constraint or variable names are stored in the JuMP model. All operations are directly managed by the solver. In this mode, JuMP and MOI constitute a thin wrapper on top of the solver API. One benefit of direct mode is that it reduces the number of copies of a model kept in memory.

See the NEWS for a detailed list of changes between JuMP v0.18 and JuMP v0.19 as well as the list of known regressions from v0.18 that will be addressed in future releases.

We would like to acknowledge the following major contributors to the 0.19 release, including solver wrappers and supporting infrastructure:

Thanks to Iain Dunning for performance and testing infrastructure improvements.

We also thank all the other contributors who submitted patches, reported bugs, or provided feedback.

At JuMP-dev in Santiago next month, Miles will present the roadmap for JuMP 1.0. Stay tuned!

Stop Julia at certain optimiality gap and return decision variables
JuMP: Catch error if solver stops early due to network error or running out of memory ?
pinned #2


Link to docs seems broken: http://www.juliaopt.org/JuMP.jl/0.19/.


The docs are fixed and available at http://www.juliaopt.org/JuMP.jl/v0.19.0/.


I’ve been eagerly awaiting this release! Huge congrats and thanks to all the contributors.

The timing is also excellent because next week the startup I work at is going to start using JuMP in quasi-production :slight_smile:


I can’t find in docs anything about (common?) interface to warmstarting. Is it supported/planned, or should I resolve to optimizer specific code?


We forgot to list these in the docs (https://github.com/JuliaOpt/JuMP.jl/issues/1871):

help?> start_value
search: start_value set_start_value


  Return the start value (MOI attribute VariablePrimalStart) of the variable
  v. See also set_start_value.

help?> set_start_value
search: set_start_value

  set_start_value(variable::VariableRef, value::Number)

  Set the start value (MOI attribute VariablePrimalStart) of the variable v to



maybe adding warmstart keyword to docstrings would help the future users