v2.0.0
New name!
The library has been renamed to cvxpy-translation! This was to reflect that we are now able to translate problems into SCIP models in addition to Gurobi models.
New interface: SCIP
Problems can be translated to pyscipopt.Model instances. The feature set is on par with Gurobi.
Breaking changes
- The top-level functions
solve,build_modelandregister_translation_solvernow require asolverargument that must be the solver name from CVXPY. The previous functions for Gurobi are still available by importing fromcvxpy_translation.gurobi. - Exceptions are now split between general exceptions defined in the top-level
cvxpy_translation, and solver specific exceptions available from the solver submodules,cvxpy_translation.gurobiandcvxpy_translation.scip. - Unhandled attributes set on
VariableandParameterwill now raise an error instead of being silently ignored (#185, #190) - Support for EOL Python 3.8 has been dropped (#179).
New features
- Support variable bounds (#184)
- Support CVXPY 1.7 (#165)
- Add support for
cp.conjwhich is used bycp.quad_formin CVXPY 1.7 (#165)
Bug fixes
- Scalar quadratic forms were incorrectly handled in CVXPY versions before 1.4.0, this now works as expected (#146)
- An unnecessary variable was generated when parameters appeared in a
cp.reshapeexpression (#182)
What's Changed
- Specify order for reshape atom by @jonathanberthias in #123
- Rename repo and move gurobi package to subfolder by @jonathanberthias in #125
- Enable some ruff rules for docstrings by @jonathanberthias in #128
- Make test case toggling future-proof by @jonathanberthias in #129
- Set up layout for SCIP by @jonathanberthias in #132
- Initial support for translation to SCIP model by @jonathanberthias in #133
- Enable scalar linear and quadratic test cases for SCIP by @jonathanberthias in #134
- Enable quad_form tests for SCIP by @jonathanberthias in #135
- Enable testing of attributes by @jonathanberthias in #136
- Fix reshape translation for SCIP by @jonathanberthias in #137
- Support sum with axis for SCIP by @jonathanberthias in #138
- Enable sum_scalar tests for SCIP by @jonathanberthias in #140
- Enable SCIP tests for matrix constraints by @jonathanberthias in #142
- Run all tests on failure by @jonathanberthias in #144
- Cleanup snapshot files' naming by @jonathanberthias in #145
- Fix support for quadratic matrix constraints by @jonathanberthias in #146
- Suport abs translation for SCIP by @jonathanberthias in #148
- Support exp/log with SCIP by @jonathanberthias in #150
- Enable indexing tests for SCIP by @jonathanberthias in #151
- Support
norm1atom with SCIP by @jonathanberthias in #152 - Handle norm2 with SCIP by @jonathanberthias in #153
- Support h- and v-stack with SCIP by @jonathanberthias in #154
- Support cp.min and cp.max with SCIP by @jonathanberthias in #155
- Support minimum and maximum with SCIP by @jonathanberthias in #157
- Support norminf with SCIP by @jonathanberthias in #159
- Use common exception hierarchy by @jonathanberthias in #160
- Add global interface that dispatches to the solvers by @jonathanberthias in #163
- Remove unused methods from SCIP implementation by @jonathanberthias in #164
- Write snapshots using CVXPY 1.7 by @jonathanberthias in #171
- Prevent insta from deleting all snapshots on startup by @jonathanberthias in #173
- Update README.md with SCIP by @jonathanberthias in #174
- Update changelog by @jonathanberthias in #175
- Drop support for Python 3.8 by @jonathanberthias in #179
- Remove auxilliary variable when reshaping parameters by @jonathanberthias in #182
- Prevent Renovate from updating oldest versions by @jonathanberthias in #183
- Add support for variable bounds by @jonathanberthias in #184
- Error on unsupported leaf attributes by @jonathanberthias in #188
- Add extras for cvxpy and cvxpy-base by @jonathanberthias in #189
- Error on partially boolean or integer variables by @jonathanberthias in #190
- Use GitHub environments when publishing package by @jonathanberthias in #191
- Prepare v2.0.0 release by @jonathanberthias in #192
- Exclude bots from autogenerated changelog by @jonathanberthias in #193
Full Changelog: v1.2.0...v2.0.0