Contributing to WirePlumber

Coding style

WirePlumber uses the GNOME C Coding Style with K&R brace placement and 2-space indentation, similar to GStreamer’s Coding Style. When in doubt, just follow the example of the existing code.

WirePlumber ships with a editorconfig file. If your code editor / IDE supports this, it should automatically set up the indentation settings.

Important

When submitting changes for review, please ensure that the coding style of the changes respects the coding style of the project.

Tests

See Testing

Running in gdb / valgrind / etc…

The Makefile included with WirePlumber supports the gdb and valgrind targets. So, instead of make run you can do make gdb or make valgrind to do some debugging.

You can also run in any other wrapper by setting the DBG variable on make run. For example:

$ make run DBG="strace"

You may also use wp-uninstalled.sh directly as a wrapper to set up the environment and then execute any command. For example:

$ ./wp-uninstalled.sh gdb --args wpctl status

Merge requests

In order to submit changes to the project, you should create a merge request. To do this,

  1. fork the project on https://gitlab.freedesktop.org/pipewire/wireplumber

  2. clone the forked project on your computer

  3. make changes in a new git branch

  4. rebase your changes on top of the latest master of the main repository

  5. push that branch on the forked repository

  6. follow the link shown by git push to create the merge request (or alternatively, visit your forked repository on gitlab and create it from there)

Important

While creating the merge request, it is important to enable the allow commits from members who can merge to the target branch option so that maintainers are able to rebase your branch, since WirePlumber uses a fast-forward merge policy.

For more detailed information, check out gitlab’s manual on merge requests