This release is consistent with our semantic versioning guarantee. It comes packed with many new features, bug fixes, and performance improvements. This version of CVXPY supports Python 3.9 through 3.13. While working on the next release, we continue to officially support CVXPY 1.5.
Default reshape order warning
CVXPY's default order for array manipulation atoms such as reshape, vec and flatten, is Fortran ('F'). In this release CVXPY raises a warning when no explicit order is specified.
In version 1.7, we plan to raise an error if the order is not specified. Finally, in version 1.8, we will switch the default order from ('F') to ('C') to match NumPy's behavior.
Dropping ECOS dependency
In version 1.5, we changed our default solver from ECOS to Clarabel and announced that we would be removing ECOS as a dependency in 1.6. Despite some regressions in certain DQCP tests, we are moving forward with dropping ECOS in this release. If you are experiencing any issues with Clarabel we encourage you to try using SCS or add ECOS as a dependency to your project.
Features and bug fixes
- Added Python 3.13 support and dropped Python 3.8 support
- New HiGHS solver interface
- New atom: cvar
- New atom: cumprod
- New atom: quantum_rel_entr
- New atom: quantum_cond_entr
- New atom: concatenate
- Support for N-dimensional variables and expressions for the following operations:
- axis atoms like min, max and sum
- indexing
- elementwise operations
- Sparsity attribute for variables
- New website and documentation theme based on [Sphinx Immaterial](https://jbms.github.io/sphinx-immaterial/)
- Ability to pass multiple solvers as argument to .solve()
- Performance improvement for sum_largest and cumsum
- Performance improvement for integer and boolean variables
- Improving string representation of special index
Summary
This new release totaled 80 PRs from 24 users, 14 of which are first time contributors :).
* StefRe made their first contribution in https://github.com/cvxpy/cvxpy/pull/2436
* cjerdonek made their first contribution in https://github.com/cvxpy/cvxpy/pull/2454
* timkpaine made their first contribution in https://github.com/cvxpy/cvxpy/pull/2452
* sven-oxionics made their first contribution in https://github.com/cvxpy/cvxpy/pull/2461
* nikkujensen made their first contribution in https://github.com/cvxpy/cvxpy/pull/2469
* alexandercarruthers made their first contribution in https://github.com/cvxpy/cvxpy/pull/2490
* oriyalperin made their first contribution in https://github.com/cvxpy/cvxpy/pull/2450
* GaetanLepage made their first contribution in https://github.com/cvxpy/cvxpy/pull/2508
* jonathanberthias made their first contribution in https://github.com/cvxpy/cvxpy/pull/2542
* matthieubulte made their first contribution in https://github.com/cvxpy/cvxpy/pull/2549
* simonbowly made their first contribution in https://github.com/cvxpy/cvxpy/pull/2541
* davidppineiro made their first contribution in https://github.com/cvxpy/cvxpy/pull/2552
* UweGensheimer made their first contribution in https://github.com/cvxpy/cvxpy/pull/2580
* andresliszt made their first contribution in https://github.com/cvxpy/cvxpy/pull/2597
The list below details all contributions made throughout this new release. Thank you all for your incredible work!
- alexandercarruthers | 2490
- andresliszt | 2597, 2615 (concatenate atom)
- aryamanjeendgar | 2606, 2621
- bkurtz | 2585, 2590 (CI refactor and stdist publishing)
- carlosgmartin | 2608
- chasilvester | 2586
- cjerdonek | 2454
- davidppineiro | 2552 (cvar atom)
- dependabot[bot] | 2443, 2444, 2448, 2455, 2456, 2463, 2468, 2476, 2477
- GaetanLepage | 2508
- jonathanberthias | 2527, 2542
- matthieubulte | 2549
- nikkujensen | 2469
- oriyalperin | 2450
- phschiele | 2481, 2482
- PTNobel | 2538, 2624
- rluce | 2484
- simonbowly | 2541
- sven-oxionics | 2461
- syanga | 2462
- timkpaine | 2452
- Transurgeon | 2392, 2457, 2473, 2475, 2479, 2487, 2488, 2494, 2496, 2500, 2501, 2509, 2524, 2525, 2529, 2532, 2535, 2543, 2546, 2556, 2560, 2561, 2562, 2563, 2564, 2570, 2577, 2578, 2579, 2581, 2582, 2589, 2592, 2593, 2595, 2596, 2601, 2602, 2614, 2616, 2617, 2622
- UweGensheimer | 2580, 2609 (HiGHS interface)
- wujianjack | 2489
- SteveDiamond | many many code reviews