Skip to content

1.0.0 - 2024-09-28

Latest
Compare
Choose a tag to compare
@jonathanberthias jonathanberthias released this 28 Sep 11:33
· 4 commits to main since this release
25b707a

v1.0 is out! The basic building blocks are in place, and cvxpy-gurobi can be used for solving real-world problems without fear of API breakage. That doesn't mean development is finished and new features won't be added, quite the contrary, but everything that has been done up to now will be supported in the future.

And now, the changes compared to the previous release.

Newly supported atoms

  • CVXPY atoms that have an equivalent generalized expression in
    gurobipy are correctly translated. This is done by adding auxilliary
    variables constrained to the value of the arguments of the atom to
    the problem:
  • reshape atoms are handled during translation (#42).
  • The hstack and vstack atoms are translated into their
    gurobipy counterparts, available from Gurobi 11 (#43, #44).

Fixed

  • The axis argument to cp.sum is no longer ignored (#39).
  • If a scalar expression is given to cp.sum, it no longer raises an error (#48).
  • The dual values should be more correct in cases where the sign is reversed
    between cvxpy and gurobipy (#50).

Dependencies

The numpy and scipy dependencies have lower bounds, set willingly
to fairly old versions (#56).

Testing

  • The library is tested in CI against the oldest supported versions and
    the latest releases (#56).
  • All test problems must be feasible and bounded to ensure they have a
    unique solution (#50).
  • Backfilling infeasible and unbounded problems is explicitly tested (#53).

Removed

The variable_map argument used when filling a Model was removed.
Instead, the variable map is handled by the Translater internally (#24).
In the future, there will be an official way to provide custom translations
which is not limited to variables.

What's Changed

Full Changelog: v0.1.0...v1.0.0