pypi / cvxpy
cvxpy
What changed in cvxpy 1, from its official release notes, upgrade guides and advisories. Sources checked 2026-11-13.
3 breaking25 new APIs and options2 performance9 behavior and defaults9 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initcvxpy 148 changes
Breaking changes 3
Sparse or diagonal variables with pos/neg attributes are now rejected.
NumPy versions below 2.0 are no longer supported.
Python 3.10 is no longer supported; CVXPY 1.8 supports Python 3.11 through 3.14.
New APIs and options 25
A new solver interface is available for PDCS.
Pass nlp=True to use Disciplined Nonlinear Programming for a broader class of nonlinear problems.
The axis argument is now supported.
Zero-sized expressions are now supported.
Adds BOUNDED_VARIABLES support for Xpress solvers.
Specify canon_backend="COO" when solving a DPP problem to use the new backend, which can handle a very large number of parameters.
Adds a new solver interface for COSMO.
Adds the AND atom for logical boolean operations on boolean expressions.
Adds the NOT atom for logical boolean operations on boolean expressions.
Adds the OR atom for logical boolean operations on boolean expressions.
Adds the XOR atom for logical boolean operations on boolean expressions.
Adds einsum as a new atom.
The approx parameter determines whether geo_mean is canonicalized using many SOCs or one power cone.
The approx parameter determines whether inv_prod is canonicalized using many SOCs or one power cone.
Adds a new solver interface for KNITRO.
Adds a new solver interface for MOREAU.
Adds support for ND cumsum.
Adds support for ND matmul.
Adds num_iters to Gurobi conic solver solution info.
The approx parameter determines whether pnorm is canonicalized using many SOCs or one power cone.
The approx parameter determines whether power is canonicalized using many SOCs or one power cone.
Adds a new solver interface for QPALM.
Adds solving chain context.
Adds stack as a new atom.
Adds a new Moreau Interface.
Performance 2
Uses LDL decomposition instead of eigh in decomp_quad.
Uses a balanced tree for PowConeND to PowCone3D decomposition.
Behavior and default changes 9
Exponentiation now works when a is a positive constant, using canonicalization via exp(x * log(a)).
N-D and tuple-axis support is generalized across AxisAtom canonicalizers, including max, norm_inf, log_sum_exp, and cummax.
Parameter values may now be positive or negative infinity.
A parametric PSD matrix is now DPP-compliant on solvers with native quadratic objective support, enabling efficient re-solves when only its value changes.
Sparse Cholesky now uses QDLDL.
Bounds can use parameter expressions and sparse bound arrays when the variable is sparse; many solvers now natively use provided bounds.
Adds support for DPP with complex expressions.
HiGHS is now CVXPY's default mixed-integer linear programming solver.
Unifies the QP interface into the quadratic conic pathway.
Fixes and other changes 9
Fixes negative axis sums in the Python backends.
Ensures backward() sets param.gradient to a zero ndarray rather than a float when the gradient is zero.
Fixes a KeyError when a log-param is not in dparams.
Fixes scalar canonicalization in DGP so it promotes x instead of p.
Prevents quad_form canonicalization from silently dropping the M1 term when P is indefinite.
Fixes shape inference for N-D shapes containing -1.
Updates the Xpress solver interfaces for compatibility with version 9.8.
Fixes cvxpy-base dependencies.
Fixes an IndexError with transformed parameters in parametric reshape.