I’d like to give an update on JuMP’s plans for Julia 0.7. This supersedes the recent discussions:
First, the good news. JuMP
master (which uses MathOptInterface and will become JuMP 0.19, read more here) is now passing tests on Julia 0.7. Julia 0.7 has lots cool features that we’ve barely scratched the surface of.
The bad news is that this took more work than I expected, so we have to revise our estimation of the effort needed to provide a 0.7-compatible release of JuMP 0.18 (a.k.a. the last major release of JuMP on top of MathProgBase). The update took two days of work, and there’s still substantial TODOs in areas like broadcasting and linear algebra operations which saw big changes in Julia 0.7. In addition, we also still have the relatively straightforward task of addressing deprecation warnings which are present in JuMP
master. A lot of the changes for 0.7 could be backported to JuMP 0.18, but it’s not 1-1 given how much has changed in JuMP.
While we were previously requesting help from the community to update JuMP 0.18 for Julia 0.7, it’s perhaps not realistic to expect someone outside the core team to wade through all of these changes. At the same time, the core team is furiously pushing forward with JuMP 0.19 and there’s currently nobody strongly motivated to update JuMP 0.18 for Julia 0.7. We will still review PRs towards this end, but be warned that it’s a substantial amount of dirty work.
Our current recommendations for users are as follows:
If you want a stable JuMP environment, continue to use JuMP 0.18 on Julia 0.6. We will maintain JuMP 0.18 for Julia 0.6 and make bug fixes as necessary. We will release JuMP 0.19 (when it’s ready) to be compatible with both Julia 0.6 and 0.7, which provides an upgrade path to first update JuMP 0.18 to JuMP 0.19 and then update Julia 0.6 to 0.7.
For adventurous early adopters, you are welcome to try out JuMP/MathOptInterface (i.e., the
master branch) on either Julia 0.6 or Julia 0.7. It’s rough around the edges and still missing some features, but the basics are working. We have a growing list of solvers that are compatible with MathOptInterface. To get started, see Juan Pablo’s tutorial at JuliaCon tomorrow (materials) and my slides from JuMP-dev about a month ago.
We are developing the solver wrappers like Cbc.jl to support (1) Julia 0.6, (2) Julia 0.7, (3) MathProgBase, and (4) MathOptInterface all on the same branch. (The MathProgBase package, unlike JuMP 0.18, is already compatible with Julia 0.7.) Many solver packages already have tagged versions supporting MathOptInterface.
We welcome PRs addressing Julia 0.7 deprecation warnings, but they must maintain support for Julia 0.6 by using the
Compat package when appropriate.
As always, we’re available at the JuMP-dev channel for developer chat.