Skip to content

Latest commit

 

History

History
96 lines (71 loc) · 3.11 KB

CONTRIBUTING.md

File metadata and controls

96 lines (71 loc) · 3.11 KB

How to contribute to UltraGrid

First, thanks to contribute to UltraGrid by using UltraGrid, reporting bugs, adding code or ideas. Further section contains basic informations how to contribute. Feel free to inform us if you need to contribute in a different way or extend this document.

Table of Contents

Resources

Reporting bugs

Prefered way to report a bug is to open an issue on GitHub. If not possible, you can also contact the development team directly with an e-mail.

Please look also at detailed instructions here here.

For general questions, ideas or remarks you are encountered to use the project's GitHub Discussions.

Feature requests

Feature requests can be submitted with the same channels as bugs.

Pull requests

Pull request should be issued as a single branch originating from repository master branch, preferably rebased to current version. If multiple features are created, multiple pull requests containing every single feature should be issued.

The pull request should represent a coherent unit, like a single feature added. More features should be separated to multiple pull request (of course if possible and eg. not firmly bound together).

The contained commits shouls present clearly what was changed. Ideally, if refactoring is done, it should not be mixed with functional changes in a single commit, similarly for the code movement.

Copyright and license

Code added to existing file must keep the license. Newly created files should be 3-clause BSD licensed.

Coding standards

TODO: incomplete

Style

Recommended style is modified LLVM clang-format style:

BasedOnStyle: LLVM
AlignArrayOfStructures: Left
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
AlignEscapedNewlines: DontAlign
AlwaysBreakAfterReturnType: TopLevelDefinitions
BreakBeforeBraces: Linux
Cpp11BracedListStyle: false
IndentWidth: 8
ReflowComments: true
SpaceAfterCStyleCast: true

The style is deduced from original rtp/rtp.{c,h} formatting and it is similar to Linux Kernel style (see here) without using tabs.

Naming conventions

Logged module name (MOD_NAME) should be lower-case.

Macros

It is recommended for the function-like macros to be typed upper-case.

Conclusion

Aside of what is enumerated above, we will be glad if you share with us your setup, photos or just ideas.