CONTRIBUTING.md revision 14299
1Thank you for your interest in this project! Please refer to the following
2sections on how to contribute code and bug reports.
3
4### Reporting bugs
5
6At the moment, this project is run in the spare time of a single person
7([Wenzel Jakob](http://rgl.epfl.ch/people/wjakob)) with very limited resources
8for issue tracker tickets. Thus, before submitting a question or bug report,
9please take a moment of your time and ensure that your issue isn't already
10discussed in the project documentation provided at
11[http://pybind11.readthedocs.org/en/latest](http://pybind11.readthedocs.org/en/latest).
12
13Assuming that you have identified a previously unknown problem or an important
14question, it's essential that you submit a self-contained and minimal piece of
15code that reproduces the problem. In other words: no external dependencies,
16isolate the function(s) that cause breakage, submit matched and complete C++
17and Python snippets that can be easily compiled and run on my end.
18
19## Pull requests
20Contributions are submitted, reviewed, and accepted using Github pull requests.
21Please refer to [this
22article](https://help.github.com/articles/using-pull-requests) for details and
23adhere to the following rules to make the process as smooth as possible:
24
25* Make a new branch for every feature you're working on.
26* Make small and clean pull requests that are easy to review but make sure they
27  do add value by themselves.
28* Add tests for any new functionality and run the test suite (``make pytest``)
29  to ensure that no existing features break.
30* Please run ``flake8`` and ``tools/check-style.sh`` to check your code matches
31  the project style. (Note that ``check-style.sh`` requires ``gawk``.)
32* This project has a strong focus on providing general solutions using a
33  minimal amount of code, thus small pull requests are greatly preferred.
34
35### Licensing of contributions
36
37pybind11 is provided under a BSD-style license that can be found in the
38``LICENSE`` file. By using, distributing, or contributing to this project, you
39agree to the terms and conditions of this license.
40
41You are under no obligation whatsoever to provide any bug fixes, patches, or
42upgrades to the features, functionality or performance of the source code
43("Enhancements") to anyone; however, if you choose to make your Enhancements
44available either publicly, or directly to the author of this software, without
45imposing a separate written license agreement for such Enhancements, then you
46hereby grant the following license: a non-exclusive, royalty-free perpetual
47license to install, use, modify, prepare derivative works, incorporate into
48other computer software, distribute, and sublicense such enhancements or
49derivative works thereof, in binary and source code form.
50