CONTRIBUTING 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. Contributing Information:
  2. - Our bug tracker is located at (currently linked to forum accounts):
  3. https://obsproject.com/mantis/
  4. - Development forums are currently located at:
  5. https://obsproject.com/forum/list/general-development.21/
  6. - Development IRC channel is primarily #obs-dev on QuakeNet
  7. - To contribute translations, see:
  8. https://obsproject.com/forum/threads/how-to-contribute-translations-for-obs.16327/
  9. Contributing Guidelines:
  10. - Code and commits will be reviewed. Reviews will be blunt and honest, and
  11. your change probably won't go through the first time, or may be outright
  12. rejected. It may require many revisions before changes are finally
  13. accepted.
  14. - If you want to avoid doing a lot of work only to have it rejected, discuss
  15. what you want to change it in the main channels/forums/mailing lists before
  16. actually working on it. Open source requires thick skin. Please don't be
  17. discouraged if your changes don't go through, learn from it and get better.
  18. - Coding style is Linux-style KNF (kernel normal form). This means K&R, 80
  19. columns max, preferable maximum function length of approximately 42 lines, 8
  20. character width tabs, lower_case_names, etc. I chose this for the sake of
  21. the project. Don't argue about it, just do it. It takes no time to do.
  22. See https://www.kernel.org/doc/Documentation/CodingStyle for a general
  23. guideline (though not necessarily a rulebook, for example we allow the use
  24. of boolean return values instead of ints for failure).
  25. NOTE: C++ is an exception to the lower_case_only rule, CamelCase is
  26. encouraged (though not required) to distinguish it from C code. Just a
  27. personal and subjective stylistic thing on my part.
  28. - Commits are not just changes to code; they should also be treated as
  29. annotation to code. For that reason, do not put unrelated changes in a
  30. single commit. Separate out different changes in to different commits, and
  31. make separate pull requests for unrelated changes. Commits should be
  32. formatted with the 50/72 standard, and should be descriptive and concise.
  33. See http://chris.beams.io/posts/git-commit/ for a summary of how to make
  34. good commit messages.
  35. - Core code is C only (unless there's an operating system specific thing that
  36. absolutely requires another language).
  37. - Modules and UI may use C, C++, or Objective-C (for apple), though please try
  38. to use C unless an API you're using requires C++ or Objective-C (such as
  39. windows COM classes, or apple Objective-C APIs).
  40. - If you don't quite know what to work on and just want to help, the bug
  41. tracker has a list of things that need to be worked on.
  42. - Try to respect the wishes of the author(s)/maintainer(s). A good maintainer
  43. will always listen, and will often ask others on the project for their
  44. opinions, but don't expect things to be completely democratic.
  45. - Do not use dependencies for the sake of convenience. There's enough
  46. dependencies as it is. Use them only if you absolutely have to depend on
  47. them.