JuMP 0.21.6 is released
releases ·We are happy to announce the release of JuMP 0.21.6. This should be a non-breaking release, please let us know if this isn’t the case by opening a GitHub issue or joining the developer chatroom.
A key feature of interest is that we have significantly revised our documentation, including examples that are now built in the documentation. We hope to make much more progress improving the documentation over the coming months, so if you have suggestions for how things could be improved, please reach out.
A summary of the changes are as follows:
- New features:
- Added support for skew symmetric variables via
@variable(model, X[1:2, 1:2] in SkewSymmetricMatrixSpace()). -
lp_sensitivity_reporthas been added which significantly improves the performance of querying the sensitivity summary of an LP.lp_objective_perturbation_rangeandlp_rhs_perturbation_rangeare deprecated. - Dual warm-starts are now supported with
set_dual_start_valueanddual_start_value. -
∈(\in<tab>) can now be used in macros instead of=orin. - Use
haskey(model::Model, key::Symbol)to check if a namekeyis registered in a model. - Added
unregister(model::Model, key::Symbol)to unregister a namekeyfrommodel. - Added
callback_node_statusfor use in callbacks. - Added
print_bridge_graphto visualize the bridging graph generated by MathOptInterface. - Improved error message for containers with duplicate indices.
- Added support for skew symmetric variables via
- Bug fixes:
- Various fixes to pass tests on Julia 1.6.
- Fixed a bug in the printing of nonlinear expressions in IJulia.
- Fixed a bug when nonlinear expressions are passed to user-defined functions.
- Some internal functions that were unintentionally exported are now no longer exported.
- Fixed a bug when relaxing a fixed binary variable.
- Fixed a
StackOverflowErrorthat occurred whenSparseAxisArrays had a large number of elements. - Removed an unnecessary type assertion in
list_of_constraint_types. - Fixed a bug when copying models with registered expressions.
- Documentation and general maintenance:
- The documentation has been significantly overhauled. It now has distinct
sections for the manual, API reference, and examples. The existing examples
in
/exampleshave now been moved to/docs/src/examplesand rewritten usingLiterate.jl, and they are now included in the documentation. - JuliaFormatter has been applied to most of the codebase. This will continue to roll out over time, as we fix upstream issues in the formatter, and will eventually become compulsory.
- The root cause of a large number of method invalidations has been resolved.
- We switched continuous integration from Travis and Appveyor to GitHub Actions.
- The documentation has been significantly overhauled. It now has distinct
sections for the manual, API reference, and examples. The existing examples
in
We also have a number of community contributors to thank, including @AKS1996, @andrewrosemberg, @Crghilardi, @dourouc05, @matbesancon, @MatthewStuber, @mikerouleau, @remi-garcia, @vtjeng, and @yashcodes.
For a full list of the merged pull requests and closed issues that contributed to this release, see the tag notes for JuMP v0.21.6.
This release knocks out a number of major items on our roadmap for JuMP 1.0. (We’re getting close!)
Stay tuned for more progress!