JuMP 0.21 is released
releases ·We are happy to announce the release of JuMP 0.21! Since the 0.20 release, 32 pull requests have been merged and 34 issues closed (listed here). The release is packed with new features and contains a couple of breaking changes. We’ll give only a quick summary of the changes here. See the release notes for more details. Here’s an incomplete list of new features:
- The return of support for solver-independent callbacks. Callback support had been dropped temporarily during the transition to MathOptInterface between JuMP 0.18 and 0.19.
- Reading from and writing a JuMP model to a file. Supported formats include CBF, LP, MathOptFormat, MPS, and SDPA.
- Better inference of container element types. For example,
@expression
can now be used to generate collections of quadratic expressions. (May break code that is sensitive to container types.) - Support for modeling complementarity and indicator constraints.
- Support for querying multiple solutions from a solver.
- Fast batch deletion of variables.
The most visible breaking change stems from a refactoring of how we handle
solver parameters. They are now treated more transparently through
MathOptInterface’s optimizer attribute mechanism rather than being passed
as constructor keyword arguments. The effect of this is that with_optimizer
has been replaced by optimizer_with_attributes
and set_optimizer_attribute
.
Follow the examples in the deprecation warnings as a guide to update existing
code.
This release knocks out a number of major items on our roadmap for JuMP 1.0. Stay tuned for more progress!