.. _contributing:

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 <https://github.com/cvxgrp/scs/issues>`_
* Improve the documentation (the website or in the code)
* Add more :ref:`examples` to the docs
* Improve the test coverage
* Improve the :ref:`Anderson acceleration <acceleration>` stability
* Improve the :ref:`data equilibration <equilibration>`
* Improve the :ref:`heuristic re-scaling <updating_scale>`
* Determine how to select the :code:`TAU_FACTOR` :ref:`term <scaling>`
* Implement a :ref:`GPU direct linear system solver <gpu_indirect>`
* Add other new :ref:`linear system solvers <new_linear_solver>`
* Refactor the :ref:`linear solvers <linear_solver>` to only compile a single binary with all solvers
* Add :ref:`interfaces for other languages <interfaces>` (or improve the current interfaces)

If you are interested in helping out, please start by opening a `GitHub issue
<https://github.com/cvxgrp/scs/issues>`_ so we can track progress and ensure
that our priorities align.
