2017-04-07 11:09:13 +02:00
Contributing
============
Quick Links for Contributing
----------------------------
2021-05-02 02:46:54 +02:00
- Compiling and building OBS Studio:
https://github.com/obsproject/obs-studio/wiki/Install-Instructions
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- Our bug tracker:
https://github.com/obsproject/obs-studio/issues
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- Discord Server: https://obsproject.com/discord
2018-12-06 18:17:27 +01:00
2021-05-02 02:46:54 +02:00
- Development chat: #development on the Discord server (see above)
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- Development forum:
https://obsproject.com/forum/list/general-development.21/
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- Developer/API Documentation:
https://obsproject.com/docs
2017-12-14 19:48:22 +01:00
2021-05-02 02:46:54 +02:00
- To contribute language translations, do not make pull requests.
Instead, use crowdin. Read here for more information:
2023-05-23 13:30:11 +02:00
https://github.com/obsproject/obs-studio/wiki/How-To-Contribute-Translations-For-OBS
2017-04-07 11:09:13 +02:00
2021-11-22 15:29:39 +01:00
- To add a new service to OBS Studio please see the service submission guidelines:
https://github.com/obsproject/obs-studio/wiki/Service-Submission-Guidelines
2023-02-20 21:55:07 +01:00
General Guidelines
------------------
- The OBS Project uses English as a common language. Please ensure that any
submissions have at least machine-translated English descriptions and titles.
- Templates for Pull Requests and Issues must be properly filled out. Failure
to do so may result in your PR or Issue being closed. The templates request
the bare minimum amount of information required for us to process them.
- Contributors to the OBS Project are expected to abide by the OBS Project Code of Conduct: https://github.com/obsproject/obs-studio/blob/master/COC.rst
2017-04-07 11:09:13 +02:00
Coding Guidelines
-----------------
2021-05-02 02:46:54 +02:00
- OBS Studio uses kernel normal form (linux variant), for more
information, please read here:
https://github.com/torvalds/linux/blob/master/Documentation/process/coding-style.rst
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- Avoid trailing spaces. To view trailing spaces before making a
commit, use "git diff" on your changes. If colors are enabled for
git in the command prompt, it will show you any whitespace issues
marked with red.
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- Tabs for indentation, spaces for alignment. Tabs are treated as 8
columns wide.
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- 80 columns max
2017-04-07 11:09:13 +02:00
2023-02-20 21:55:07 +01:00
- Comments and names of variables/functions/etc. must be in English
2023-08-06 11:58:08 +02:00
- Formatting scripts (mac0S/Linux only) are available `here <./build-aux> `__
2018-07-25 11:00:44 +02:00
Commit Guidelines
-----------------
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- OBS Studio uses the 50/72 standard for commits. 50 characters max
for the title (excluding module prefix), an empty line, and then a
full description of the commit, wrapped to 72 columns max. See this
link for more information: http://chris.beams.io/posts/git-commit/
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- Make sure commit titles are always in present tense, and are not
followed by punctuation.
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
- Prefix each commit's titles with the module name, followed by a colon
and a space (unless modifying a file in the base directory). After
that, the first word should be capitalized.
2019-04-13 08:17:01 +02:00
2021-05-02 02:46:54 +02:00
So for example, if you are modifying the obs-ffmpeg plugin::
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
obs-ffmpeg: Fix bug with audio output
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
Or for libobs::
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
libobs: Fix source not displaying
2017-04-07 11:09:13 +02:00
2021-05-02 02:46:54 +02:00
Note: When modifying cmake modules, just prefix with "cmake".
2019-04-13 08:17:01 +02:00
2021-05-02 02:46:54 +02:00
- If you still need examples, please view the commit history.
2021-08-04 03:14:53 +02:00
2023-02-20 21:55:07 +01:00
- Commit titles and descriptions must be in English
2023-02-19 23:15:17 +01:00
AI/Machine Learning Policy
--------------------------
AI/machine learning systems such as those based on the GPT family (Copilot,
ChatGPT, etc.) are prone to generating plausible-sounding, but wrong code that
makes incorrect assumptions about OBS internals or APIs it interfaces with.
This means code generated by such systems will require human review and is
likely to require human intervention. If the submitter is unable to undertake
that work themselves due to a lack of understanding of the OBS codebase and/or
programming, the submission has a high likelihood of being invalid.
Such invalid submissions end up taking maintainers' time to review and respond
away from legitimate submissions.
Additionally, such systems have been demonstrated to reproduce code contained
in the training data, which may have been originally published under a license
that would prohibit its inclusion in OBS.
Because of the above concerns, we have opted to take the following policy
towards submissions with regard to the use of these AI tools:
- Submissions created largely or entirely by AI systems are not allowed.
- The use of GitHub Copilot and other assistive AI technologies is heavily
discouraged.
- Low-effort or incorrect submissions that are determined to have been
generated by, or created with aid of such systems may lead to a ban from
contributing to the repository or project as a whole.