1Contributing
2========================================================================================
3
4Thank you for your interest in this project! Please refer to the following sections on
5how to contribute code and bug reports.
6
7Reporting bugs
8----------------------------------------------------------------------------------------
9
10At the moment, this project is run in the spare time of a single person
11(`Wenzel Jakob <http://rgl.epfl.ch/people/wjakob>`_) with very limited resources for
12issue tracker tickets. Thus, before submitting a question or bug report, please take a
13moment of your time and ensure that your issue isn't already discussed in the project
14documentation elsewhere on this site.
15
16Feature requests are generally closed unless they come with a pull request
17that implements the desired functionality.
18
19Assuming that you have identified a previously unknown problem or an important question,
20it's essential that you submit a self-contained and minimal piece of code that
21reproduces the problem. In other words: no external dependencies, isolate the
22function(s) that cause breakage, submit matched and complete C++ or Python snippets
23(depending on how you are using NanoGUI) that can be easily compiled and run on my end.
24
25Pull requests
26----------------------------------------------------------------------------------------
27Contributions are submitted, reviewed, and accepted using Github pull requests. Please
28refer to `this article <https://help.github.com/articles/using-pull-requests>`_ for
29details and adhere to the following rules to make the process as smooth as possible:
30
31- Make a new branch for every feature you're working on.
32- Make small and clean pull requests that are easy to review but make sure they do add
33  value by themselves.
34- Make sure you have tested any new functionality (e.g. if you made a new Widget).
35- This project has a strong focus on providing general solutions using a minimal amount
36  of code, thus small pull requests are greatly preferred.
37- Read the remainder of this document, adhering to the bindings and documentation
38  requirements.
39- If making a purely documentation PR, please prefix the commit with ``[docs]``
40
41  - E.g. ``[docs] Adding documentation for class X.``
42
43
44Specific activities for contributions
45----------------------------------------------------------------------------------------
46
47For a list of specific parts of nanogui which would benefit from outside contributions,
48refer to the bottom part of `this page <https://github.com/wjakob/nanogui/blob/master/docs/contributing.rst>`_.
49