# Contribution Guidelines ## A note for contributors Thank you for your contribution! Please make sure you tick the box labelled `Allow commits from members who can merge to the target branch`. This allows us to make minor edits ourselves, and then automatically rebase and merge your changes. PulseAudio is currently maintained by three volunteer developers in their free time (probably amounting to less than one full time developer), which is not really enough, given the project size and scope. For this reason bug reports and patch submissions are sometimes handled very slowly. For non-trivial patches, we meet biweekly on IRC to discuss and prioritise outstanding MRs. If you haven't heard from us a few days after you create the MR, please take a look at [the patch status page](https://www.freedesktop.org/wiki/Software/PulseAudio/PatchStatus/). If you don't see your MR in that list either, please don't hesitate to drop a comment pinging us, and we'll try to at least respond and make sure your request is tracked on that list. ## Coding Style Please take a look at the [coding style documentation](https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/Developer/CodingStyle/) on our wiki. ## Commit messages We follow the standard git commit message format of a summary on the first line (<=50 characters for preference, <=72 characters otherwise), followed by a new line, followed by a detailed commit message. An additional line at the end may link to an issue being fixed by this MR. The first line is usually a short description of "what" your commit does, and the rest of the message describes the "why", along with any additional information that readers might need to understand the rationale for the change. If in doubt, more verbose is better than less. If you need to describe the "how" of the commit, that is usually best documented along with the code itself. Commit messages are prefixed with the subsystem being affected. Your best bet to figure out what is appropriate is to look at previous commit messages. An example: ``` sink: Reduce chat sink priority Some gaming sound cards have custom profiles with analog-game and analog-chat mappings that exist simultaneously. The game sink should have higher priority than the chat sink, but currently there's no way to affect the sink priorities from the profile-set configuration (the mapping priority is not propagated to the sink priority). I first thought about adding the mapping priority to the sink priority, but that could mess up the prioritization system in pa_device_init_priority(). I ended up checking for the intended roles property to reduce the chat sink priority. I also reduced the iec958 priority so that the chat and iec958 sinks don't end up with the same priority. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/818 ```