|
| 1 | +# Contribution guidelines |
| 2 | + |
| 3 | +Any contribution must preserve |
| 4 | +quality, |
| 5 | +maintainability, and |
| 6 | +usability of this project. |
| 7 | + |
| 8 | +To ensure this, you must: |
| 9 | + |
| 10 | +- Write a good description: |
| 11 | + Provide your personal motivation for changes you propose. |
| 12 | + Your description should aim to be like the documentation: |
| 13 | + comprehensible, concise, and complete. |
| 14 | +- Respect the values: |
| 15 | + Changes must adhere to the goals set out in the README, i.e. they must preserve |
| 16 | + correctness, performance, and simplicity of the code. |
| 17 | +- Keep it minimal: |
| 18 | + Changes must be minimal to allow others to verify them in reasonable time. |
| 19 | + The likelihood of a contribution being accepted is inversely proportional to its size. |
| 20 | +- Take your time: |
| 21 | + Achieving high quality takes time. |
| 22 | + As a rough guideline, |
| 23 | + writing new content takes me about 10 to 100 times longer than reading it. |
| 24 | + The ratio for your changes should be roughly in the same order of magnitude. |
| 25 | +- Document: Document user-observable changes in `docs/`. |
| 26 | +- Test: |
| 27 | + Add unit or shell tests to the documentation if they might interest users. |
| 28 | + Include more exotic tests in the test suites of the respective crates. |
| 29 | +- Benchmark: |
| 30 | + Benchmark performance-critical changes and provide |
| 31 | + results as well as instructions how to reproduce them. |
| 32 | + |
| 33 | +You must not: |
| 34 | + |
| 35 | +- Duplicate code: |
| 36 | + Code duplication is a serious problem for long-term project maintenance. |
| 37 | + Use existing project infrastructure wherever possible, and do not copy-paste. |
| 38 | +- Add dependencies: |
| 39 | + Dependencies take effort to maintain, in particular to validate and to update. |
| 40 | + Therefore, new dependencies may only be added in exceptional cases. |
| 41 | + All dependencies must be compatible with the spirit of this project and |
| 42 | + add significant value to it. |
| 43 | +- Include machine-generated content: |
| 44 | + All contributed content, such as description, code, and documentation, |
| 45 | + must be human-written by the contributor, to ensure its quality. |
| 46 | + |
| 47 | +Thank you for respecting these guidelines! |
| 48 | +I am looking forward to your contributions. |
0 commit comments