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_report
has been added which significantly improves the performance of querying the sensitivity summary of an LP.lp_objective_perturbation_range
andlp_rhs_perturbation_range
are deprecated. - Dual warm-starts are now supported with
set_dual_start_value
anddual_start_value
. -
∈
(\in<tab>
) can now be used in macros instead of=
orin
. - Use
haskey(model::Model, key::Symbol)
to check if a namekey
is registered in a model. - Added
unregister(model::Model, key::Symbol)
to unregister a namekey
frommodel
. - Added
callback_node_status
for use in callbacks. - Added
print_bridge_graph
to 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
StackOverflowError
that occurred whenSparseAxisArray
s 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
/examples
have now been moved to/docs/src/examples
and 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!