This is a guide for people interested in contributing to my open source projects. It is based on popular work flows in the community, and my personal opinions.
This guide was created by Felix Geisendörfer and is licensed under the CC BY-SA 3.0 license. You are encouraged to fork this repository and make adjustments according to your own preferences. Pull requests will also be considered.
If you report a bug, please try to:
- Perform a web / GitHub search to avoid creating a duplicate ticket.
- Include enough information to reproduce the problem.
- Mention the exact version of the project causing you problems, as well as any related software and versions (such as operating system, browser, etc.).
- Test against the latest version of the project (and if possible also the master branch) to see if the problem has already been fixed.
Once you have tried the above, create a GitHub issue notify me of your bug report.
Depending on the nature and urgency of your question, pick one of the following channels for it:
- Search the web for it, you've done that already, right?
- Project Mailing List (if existing)
- Project IRC Channel (if existing)
- StackOverflow (I may not check there myself)
- GitHub Issues
Do not email me directly, unless you want to inquiry about commercial support or have a very good reason. I do not have enough time to provide personal support for free.
If you want to contribute code, please try to:
- Follow the same coding style as used in the project. Pay attention to the usage of tabs, spaces, newlines and brackets. Try to copy the aesthetics the best you can.
- Add an automated test that verifies your change. Look at the existing test suite to get an idea for the kind of tests I like. If you do not provide a test, explain why.
- Write good commit messages, explain what your patch does, and why it is needed.
- Keep it simple: Any patch that changes a lot of code or is difficult to understand should be discussed before you put in the effort.
Once you have tried the above, create a GitHub pull request to notify me of your changes.
You are using stuff I made available to you for free, so try to be nice.