diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md new file mode 100644 index 0000000..847d886 --- /dev/null +++ b/CONTRIBUTION.md @@ -0,0 +1,56 @@ +Contribution +============ + +- [Code guidelines](#code-guidelines) +- [Feature request](#feature-request) +- [Development](#development) + +[cpp core guideline]: https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines + +[google python style guide]: https://github.com/google/styleguide/blob/gh-pages/pyguide.md + +[clean code]: https://medium.com/mindorks/how-to-write-clean-code-lessons-learnt-from-the-clean-code-robert-c-martin-9ffc7aef870c + +[meaningful variable names]: https://medium.com/coding-skills/clean-code-101-meaningful-names-and-functions-bf450456d90c + +[commit message template]: .github/.gitmessage_template + +## Code guidelines + +* Follow the C++ Core Guidelines [cpp core guideline] +* Try to follow PEP guidelines and [google python style guide] +* Try to follow the SOLID principles of [clean code] +* Use [meaningful variable names] +* For most important commits use [commit message template] + +## Feature request + +1. Open issue with full feature description + +2. Wait for response from core team + +## Development + +1. Open an issue + +2. Create new branch and code there + +3. Commit your work using [commit message template] + +4. Be sure that you are not behind the master, if so, rebase your branch + +5. Make a pull request to master branch with meaningful description and sign the CLA which is part of the PR checks + +6. Wait for review + +7. Apply / argue the code review comments + +8. Clean up the comment history if needed + +9. Push the changes again + +10. Repeat steps 4-10 until convergence + +Side note: **DO NOT USE** `git merge master` or `git pull master` to align your +branch with master, use `git rebase master` for it! +