CVXPY is an open-source Python-embedded modeling language for convex optimization problems. It lets you express your problem in a natural way that follows the math, rather than in the restrictive standard form required by solvers.
CVXPY will be a participating sub-organization in NumFOCUS's application for Google Summer of Code 2026. For more information about this application see:
All GSoC-related issues and pull requests must disclose AI usage.
If AI tools were used, end the issue or PR with a sentence beginning:
AI assistance was used for ...
If no AI tools were used at all, end with the sentence:
No AI tools were used in this contribution.
Submissions that omit a disclosure may be closed without review.
Short description:
This project has two parts:
The goal of these checks is to ensure that the constraints of the original problem are solved to the expected tolerance from the user. Since CVXPY transforms your problem, it can sometimes be confusing to users if the solver reports a different tolerance.
- optimality conditions checks which will be a continuation of CVXPY's GSoC 2023 project by Aryaman Jeendgar.
The optimality conditions checks portion of the project will be to understand the previous work, integrate it completely into CVXPY, and extend it to support DNLP.
The contributor will conduct a full review of CVXPY's canonicalization and the deliverables from the GSoC 2023 project. Then, as time permits, they will add new post-solver functionality to CVXPY.
For the feasibility checks, the contributor must add:
- tests that cover many edge cases
- proper warning messages and handling of solver options
- documentation
For the optimality checks, the contributor must add:
- complete test coverage for typical convex problems involving various cones
- dual variable support for DNLP
- complete test coverage for atoms in DNLP
- developer documentation on verifying the optimality conditions
- Knowledge of mathematical optimization, in particular optimality conditions
- Basic knowledge of Python and CVXPY
- Basic knowledge of NLP solvers such as IPOPT
- Some knowledge of DNLP canonicalization can be helpful.
- 350 hours (Large)
- William Zhang
- Daniel Cederberg
- Parth Nobel