|
| 1 | +# Contribution guidelines |
| 2 | + |
| 3 | +First off, thanks for taking the time to contribute! |
| 4 | + |
| 5 | +The following is a set of guidelines for contributing to this project. |
| 6 | +These are not set in stone, but following these guidelines closely is usually |
| 7 | +considered good practice. Use your best judgment, and feel free to propose |
| 8 | +changes to this document in a pull request. |
| 9 | + |
| 10 | +## Using GitHub to implement features and fix bugs |
| 11 | + |
| 12 | +If you want to help out with one of our bugs or implement a new feature, here |
| 13 | +are some suggestions for success. The basic process looks like this: |
| 14 | + |
| 15 | +1. Fork the repository. |
| 16 | +2. Clone your fork to your development machine. |
| 17 | +3. Create your issue branch. |
| 18 | +4. Implement your feature or fix the bug and push the results to your fork. |
| 19 | +5. Send us a pull request. |
| 20 | + |
| 21 | +You can find more info about [creating a fork](https://help.github.com/articles/fork-a-repo/) |
| 22 | +and [pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/) |
| 23 | +in the GitHub help articles. Our maintainers will review your pull request as |
| 24 | +soon as we can. |
| 25 | + |
| 26 | +## What makes a good pull request? |
| 27 | + |
| 28 | +To summarize: |
| 29 | + |
| 30 | +* Address only one issue with a single pull request. |
| 31 | +* For new functionality, have a conversation with the maintainers before putting |
| 32 | + in too much work. Opening an issue is a good way to start the conversation. |
| 33 | +* Finally, small pull requests are preferred. That way we can find time to |
| 34 | + review them between work, and family, and watching videos of cute cats jumping |
| 35 | + into cardboard boxes on the internet. |
| 36 | + |
| 37 | +## Styleguides |
| 38 | + |
| 39 | +### Git Commit Messages |
| 40 | + |
| 41 | +* Use the present tense ("Add feature" not "Added feature"). |
| 42 | +* Use the imperative mood ("Move cursor to..." not "Moves cursor to..."). |
| 43 | +* Limit all lines of the commit message to 65 characters or less. |
| 44 | + * Exception: When a line contains a URLs that is too long to fit into the |
| 45 | + character limit, do not add a line break after 65 characters. |
| 46 | +* URLs (e. g. for linking to information about a vulnerability in a dependency) |
| 47 | + should be enclose in angle brackets, e. g. `<https://example.com/>`. |
| 48 | +* For multi-line commit messages: |
| 49 | + * Write the summary on the first line. |
| 50 | + * Leave the second line empty. |
| 51 | + * Then follow up with a more detailed explanation of the changes. |
| 52 | +* When only changing documentation, include `[ci skip]` on a separate line in |
| 53 | + the commit message. |
| 54 | + |
| 55 | +### Code Styleguide |
| 56 | + |
| 57 | +* Try to limit lines to 80 characters. |
| 58 | +* Use spaces (not tabs) for indentation, two spaces per indentation level. |
| 59 | +* Try to follow best practices and guidelines for modern C++ (i. e. C++11 and |
| 60 | + later). If in doubt, consult the C++ Core Guidelines at |
| 61 | + <https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines>. |
0 commit comments