Skip to content

v1.2.0

Compare
Choose a tag to compare
@rileyjmurray rileyjmurray released this 10 Mar 08:07
· 322 commits to master since this release

CVXPY 1.2

This release marks a big milestone in CVXPY's development. It's the first time we've incremented the minor version number since releasing CVXPY 1.1 in June 2020. Since then we've added many new features and improved CVXPY's efficiency in important ways. A summary of those changes -- including many which were released with little fanfare between CVXPY 1.1.1 and 1.1.18 -- can be found on cvxpy.org. Changes specific to CVXPY 1.2 include:

  • Four new and improved "atoms" for use in optimization modeling: xexp, partial_trace, partial_transpose, and kron. The latter three atoms significantly expand CVXPY's modeling capabilities for matrix representations of tensor products; they'll be especially useful for quantum information applications.
  • Two new interfaces to numerical solvers. CVXPY can now interface with Google OR Tools to call GLOP and PDLP.
  • Support for Python versions 3.7 to 3.10.

We've also grown in ways that can't be seen from changes to source code alone. We've adopted open governance principles, become a NumFOCUS affiliated project, and -- starting this week -- we're adopting semantic versioning.

Semantic versioning

Our adoption of semantic versioning will fundamentally change the way we approach CVXPY's maintenance and development. The most observable change is that new features will only be released in major or minor releases, as opposed to patch releases. Since CVXPY receives new feature contributions on a regular basis, that means you can expect minor releases from us much more often: multiple times per year instead of once in two years. It also means we'll support multiple minor-release series at any given time. Right now we provide bugfix support for CVXPY 1.1 and 1.2. Once CVXPY 1.3 comes out later this year, we'll provide bugfix support for CVXPY 1.1, 1.2, and 1.3.

While this approach creates more work for day-to-day maintenance, it has two major benefits:

  1. It gives us space to heavily refactor CVXPY's back-end for improved efficiency in the future. This will be important for CVXPY users who want to scale their convex optimization workflows to larger and more sophisticated problems.

  2. It makes it easier for us to publicly recognize and encourage CVXPY's many volunteer contributors. This is crucial for the long-term health of CVXPY as an open-source software project.

Our adoption of semantic versioning is an ongoing process. Stay tuned for announcements on our Discord server, website, or Twitter for more information.

Who made this possible?

CVXPY 1.2.0 includes contributions from 15 people across more than 25 pull requests. In no particular order, those contributors are

Among those listed above, we would like to call special attention to @phschiele, @Michael-git96, and @dcajasn -- each of whom has made contributions to CVXPY prior to version 1.1.18. Those recurring contributions are instrumental to CVXPY's success.

On behalf of the CVXPY project maintainers,
Riley Murray
CC: @akshayka @SteveDiamond, @bstellato