Contributing
There are many ways you can contribute to SCS, and we welcome all help! Here are some ideas (of varying difficulty):
Answer an open GitHub issue
Improve the documentation (the website or in the code)
Add more Examples to the docs
Improve the test coverage
Improve the Anderson acceleration stability
Improve the data equilibration
Improve the heuristic re-scaling
Determine how to select the
TAU_FACTORtermAdd other new linear system solvers
Refactor the linear solvers to only compile a single binary with all solvers
Add interfaces for other languages (or improve the current interfaces)
If you are interested in helping out, please start by opening a GitHub issue so we can track progress and ensure that our priorities align.
Building the docs
The example pages show real solver output, which is generated at build time rather than committed, so it can never drift from the solver. Building the docs therefore runs the C and Python examples and needs their dependencies:
pip install sphinx sphinx-rtd-theme breathe docutils # the docs themselves
pip install scs numpy scipy cvxpy # to run the examples
cd docs/src && make docs
A C compiler and BLAS/LAPACK are also required, for the C example. Use
make example_outputs to regenerate just the captured output, and
DOCS_PYTHON=/path/to/venv/bin/python to point at a specific interpreter.
The one exception is examples/qp.m.out, which is committed: refreshing
it needs a MATLAB licence, so it is updated by hand.