diff --git a/docs/contribution_guide.md b/docs/contribution_guide.md new file mode 100644 index 0000000..67aacba --- /dev/null +++ b/docs/contribution_guide.md @@ -0,0 +1,45 @@ +# Contribution guide + +We really appreciate contribution and would love to see you joining the project :) +But please read this document carefully before starting contribution. +We probably won't accept most PRs that don't align with the following guidelines. + +## Issue before PR + +Please only implement features that have an open issue or open an issue before starting to work on a feature. +By that you don't waste time on a feature, that maybe won't be accepted and we can understand your code more easily. + +## Use rustfmt + +Please format your code with rustfmt (`cargo fmt`) before committing it. +By that there won't be any additional commits needed just to align the code with the rust style conventions. + +## Update docs + +Please keep the docs up to date, when you change anything relevant to the documentation (API, etc.). + +## 1 feature 1 commit + +Keeping commits limited to one feature makes it way easier to understand them and increases the probability that the +commit will be accepted. + +## commit message convention + +Please keep your commit messages in the following style: + +``` +type(scope): change + +notes +``` + +A commits type can be one of the following: + +- **feat**: feature +- **fix**: bugfix +- **refactor**: nothing new added but code restructured, etc +- **docs**: documentation changes + +The commit scope is kinda free, but it's a good idea to use scopes, that have been used before. +Scopes can be nested like this: `scope >> subscope >> subscope`. +If the commit affects multiple scopes, you can set multiple scopes like this: `scope // scope`. \ No newline at end of file