Adding a contributing document.

This commit is contained in:
Daniel Lemire 2020-01-25 12:32:15 -05:00
parent 3488c49d0a
commit 1cdf5581f3
1 changed files with 23 additions and 0 deletions

23
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,23 @@
The simdjson library is an open project written in C++. Contributions are invited. Contributors agree to the project's license.
We have an extensive list of issues, and contributions toward any of these issues is invited. Contributions can take the form of code samples, better documentation or design ideas.
In particular, the following contributions are invited:
- The library is focused on performance. Well-documented performance optimization are invited.
- Fixes to known or newly discovered bugs are always welcome. Typically, a bug fix should come with a test demonstrating that the bug has been fixed.
- The simdjson library is advanced software and maintanability and flexibility are always a concern. Specific contributions to improve maintanability and flexibility are invited.
We discourage the following types of contributions:
- Code refactoring. We all have our preferences as to how code should be written, but unnecessary refactoring can waste time and introduce new bugs. If you believe that refactoring is needed, you first must explain how it helps in concrete terms. Does it improve the performance?
- Applications of new language features for their own sake. Using advanced C++ language constructs is actually a negative as it may reduce portability (to old compilers, old standard libraries and systems) and reduce accessibility (to programmers that have not kept up), so it must be offsetted by clear gains like performance or maintainability. When in doubt, avoid advanced C++ features (beyond C++11).
- Style formatting. In general, please abstain from reformatting code just to make it look prettier. Though code formatting is important, it can also be a waste of time if several contributors try to tweak the code base toward their own preference. Please do not introduce unneeded white-space changes.
In short, most code changes should either bring new features or better performance. We want to avoid unmotivated code changes.
We will not tolerate bullying, bigotery or intimidation.