Releases: jonathanberthias/cvxpy-gurobi
v1.1.0
What's Changed
- Add support for
quad_form
by @jonathanberthias in #60 - Add prettier pre-commit hook by @jonathanberthias in #61
- Update dependency numpy to v2.1.2 by @renovate in #62
- Update peter-evans/create-pull-request action to v7 by @renovate in #65
- Avoid testing on
gurobipy
10 since the license expired by @jonathanberthias in #68 - A simple behavior for cvxpy.Parameter by @senhalil in #67
- Update dependency numpy to v2.1.3 by @renovate in #69
- Update dependency cvxpy-base to v1.6.0 by @renovate in #70
- Update dependency gurobipy to v12 by @renovate in #71
- Update changelog for 1.1.0 by @jonathanberthias in #72
New Contributors
Full Changelog: v1.0.0...v1.1.0
v1.0.0
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
andvstack
atoms are translated into their
gurobipy
counterparts, available from Gurobi 11 (#43, #44).
Fixed
- The
axis
argument tocp.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
betweencvxpy
andgurobipy
(#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
- Add contributing guidelines by @jonathanberthias in #22
- Create Gurobi variables during translation by @jonathanberthias in #24
- Support
abs
generalized expressions by @jonathanberthias in #27 - Update fixtures for CVXPY v1.5.3 and NumPy v2 by @jonathanberthias in #28
- Fix
abs
for 1d scalar case by @jonathanberthias in #30 - Add support for
min
andmax
atoms by @jonathanberthias in #31 - Add support for
minimum
andmaximum
by @jonathanberthias in #34 - Support norm1 atom by @jonathanberthias in #35
- Add support for
norm2
by @jonathanberthias in #36 - Add support for
norm_inf
by @jonathanberthias in #37 - Forward axis in sum atom by @jonathanberthias in #39
- Move
Translater
to its own file by @jonathanberthias in #41 - Support
reshape
atom by @jonathanberthias in #42 - Support
hstack
andvstack
atoms by @jonathanberthias in #43 - Stack is not available on
gurobipy<11
by @jonathanberthias in #44 - Fix
minimum
andmaximum
with non-variable expressions by @jonathanberthias in #45 - Fix handling of sum of scalar expression by @jonathanberthias in #48
- Ensure all test problems are bounded and feasible by @jonathanberthias in #50
- Ensure
minimum
/maximum
arguments are scalars by @jonathanberthias in #51 - Add tests for infeasible and unbounded problems by @jonathanberthias in #53
- Improve usage of hatch environments by @jonathanberthias in #55
- Add lower bounds to dependencies and test them by @jonathanberthias in #56
- Reset ID counter in between test groups by @jonathanberthias in #57
- Fix
minimum
/maximum
with a scalar argument by @jonathanberthias in #58 - Prepare for v1.0 release by @jonathanberthias in #59
Full Changelog: v0.1.0...v1.0.0
v0.1.0
This is the first release of cvxpy-gurobi
!
The core idea of the package is in place and the solver API
is not expected to change. However, only basic expressions
and constraints are easily manageable and many internal changes
will be required to add support for expressions which cannot
be translated in a straightforward way, such as cp.abs
that
requires gurobipy
's GenExpr
.
In this release, the following elements are already covered:
AddExpression
Constant
DivExpression
index
(indexing with integers)MulExpression
(multiplication by a constant)multiply
(element-wise multiplication)NegExpression
power
(only ifp
is 2)Promote
(broadcasting)quad_over_lin
(sum_squares
)special_index
(indexing with arrays)Sum
Variable
(duh)
What's Changed
- Fix copyright date and owner by @jonathanberthias in #1
- Initial check-in by @jonathanberthias in #2
- Run tests in GitHub Actions by @jonathanberthias in #3
- Limit to
numpy<2
in tests by @jonathanberthias in #5 - Remove outdated snapshot file by @jonathanberthias in #4
- Add wokflow to sync Ruff settings by @jonathanberthias in #6
- chore: sync Ruff settings by @github-actions in #7
- Add lint step to CI by @jonathanberthias in #8
- Use hatch test for testing by @jonathanberthias in #9
- Update snapshots to CVXPY 1.5 by @jonathanberthias in #10
- Support kwargs in problem.solve by @jonathanberthias in #11
- Fill in solver_stats and compilation_time by @jonathanberthias in #12
- Name snapshots according to feature group by @jonathanberthias in #13
- Reset constraints ids between test groups by @jonathanberthias in #14
- Add support for expression indexing by @jonathanberthias in #15
- Add release workflow by @jonathanberthias in #16
- Add missing permission to CD workflow by @jonathanberthias in #17
- Remove local version specifier by @jonathanberthias in #18
- Remove
translate
,abs
andone_minus_pos
by @jonathanberthias in #19 - Remove kwargs on solver registration by @jonathanberthias in #20
- Prepare for initial release by @jonathanberthias in #21
New Contributors
- @jonathanberthias made their first contribution in #1
- @github-actions made their first contribution in #7
Full Changelog: https://github.com/jonathanberthias/cvxpy-gurobi/commits/v0.1.0