v1.3.0
CVXPY 1.3
This release marks our first minor release since the introduction of semantic versioning in March 2022. It comes packed with many new features, bug fixes, and performance improvements. This version of CVXPY supports Python 3.7 through 3.11, and is our first release that supports Python 3.11. While working on the next release, we continue to officially support CVXPY 1.2 and 1.3, and will backport important bug fixes to 1.1, if feasible.
New features
- New atoms:
dotsort
tr_inv
von_neumann_entr
perspective
- Support for native quadratic forms (
x.T @ P @ x
) - New solver interfaces:
COPT
,SDPA
,Clarabel
,proxqp
- A new SciPy-based backend
- New constraints:
FiniteSet
RelEntrConeQuad
OpRelEntrConeQuad
- ... and many more!
Other big developments
- The new OpRelEntrConeQuad constraint class is the first major piece of our effort to improve support for quantum information modeling (GSOC project)
- Continuous performance benchmarking (GSOC project)
API changes
Moving forward, the public API of CVXPY is considered to be everything that is importable directly from the cvxpy
namespace. We plan to introduce a cvxpy.experimental
namespace for features in development where the API has not yet been fixed. It is explicitly not a part of our API whether atoms are implemented by functions or classes, e.g. we do not consider replacing cvxpy.power
, which is currently a class, with a function to be a breaking change or replacing cp.quad_form
which is a function to become a class to be a breaking change. Code of the form cvxpy.power(a, b)
is guaranteed to remain working.
Community
We were thrilled to see the CVXPY community grow since our last release. In GitHub issues and the increasingly utilized GitHub discussions, we saw a lot of great reports and questions. Reaching almost 1000 members, the CVXPY Discord has become a great place to ask questions and get quick help. It was great to meet some of you at SciPy 2022 and ICCOPT 2022.
Planned projects
A major upcoming project is an overhaul of the web documentation, making it more modern, structured, and interactive. For this, we received a NumFOCUS Small Development Grant and are currently looking for a web developer to help us with the implementation. Email us at cvxpydevs@gmail.com if interested.
Contributors
This release would not have been possible without the contributions of many
CVXPY users and developers. Across 30 contributors and 95 PRs, we would like to
thank the following people for their contributions to this release (in alphabetical order):
- @aryamanjeendgar | #1740, #1789, #1833, #1875, #1899
- @BehrouzSohrabi | #1966
- @Brown2345 | #1754
- @chrisyeh96 | #1814, #1861, #1862
- @dcajasn | #1897
- @ericlux | #1869, #1867
- @fabinsch | #1882, #1894
- @goulart-paul | #1888
- @h-vetinari | conda-forge PR #75
- @imcjp | #1822
- @JiaxinWang-thu | #1720
- @jlchen0 | #1986
- @joycebrum | #1892, #1927
- @KerimovEmil | #1871
- @merraksh | #1935
- @michael-123123 | #1793
- @mkoeppe | #1707, #1705, #1719, #1727
- @mlubin | #1859, #1872
- @parthb83 | #1768, #1810, #1798
- @phschiele | #1748, #1783, #1725, #1792, #1804, #1803, #1838, #1839, #1846, #1851, #1874, #1852, #1887, #1893, #1896, #1922, #1931, #1840, #1933, #1937, #1936, #1929, #1979
- @piiq | #1951
- @r-barnes | #1693
- @rileyjmurray | #1733, #1736, #1738, #1866, #1977, #1976, #1978, #1984, #1987
- @rluce | #1962
- @roberthuisman | #1854
- @SteveDiamond | #1689, #1757, #1761, #1794, #1802, #1807, #1796, #1818, #1820, #1829, #1835, #1844, #1856, #1880, #1885, #1886, #1877, #1898, #1909
- @tasseff | #1830
- @usamamuneeb | #1769
- @wujianjack | #1836
- @yasirroni | #1744, #1745, #1756
Special thanks to @michaels0m for numerous discussions about the new backend.