Contribution guidelines

How you can help

If you would like to help the project, you can:

  • help with testing

    Try to use Roc command-line tools or PulseAudio modules and report bugs or suggest improvements.

  • help with research

    Discover how does Roc perform on different conditions and configurations and share the results. What latency and service quality does it provide in different cases, what parameter combinations are optimal, and so on.

  • help with porting

    We’d be happy to meet developers who can help with maintaining ports for non-Linux *nix systems, macOS, Android, Windows, and other platforms.

  • contribute code

    Roc has quite a long and pretty interesting roadmap and a backlog with issues of varying difficulty. Read the documentation, choose a task, and submit pull requests!

Choosing a task

Want to contribute code? Great! Here is how you can choose a task.


It is highly recommended to leave a comment on GitHub or throw a mail to the mailing list before starting working on an issue to ensure that nobody is already working on it.

  • “help wanted” tag

    Look for issues marked with the “help wanted” tag. This tag means that this is an important and awaited task but we have no human resources for it yet, and it is still in the backlog.

  • “easy hacks” tag

    Look for issues that are additionally marked with the “easy hacks” tag. This tag means that the solution is expected to be straightforward even if you are new to the project.

  • backlog column

    Look for issues in the “Backlog” column in the project board. Issues that are not marked as “help wanted” are probably not very good for you if you’re new to the project, but you can take your chances if you would like to.

  • project roadmap

    Look for unimplemented features in the long-term project roadmap. If there is no issue for a feature yet, it means that nobody had thought through it yet. You are suggested to open an issue for discussion in this case.

  • suggest your own

    Of course, you’re also welcome to open an issue and suggest a feature that is not in our backlog and roadmap.

Working on a patch

If you have chosen a task and are ready to work on it, the following documentation is your friend:

  • project internals

    See Internals section for a high-level overview.

    See also more low-level Doxygen-generated documentation.

  • coding guidelines

    Please take a look at the Coding guidelines page. The guidelines are not hard to follow but some of them a specific.

  • version control

    Please also take a look at the Version control page for details on commits, branches, and pull requests.

  • asking questions

    Feel free to ask questions on our mailing list or Matrix chat. See Contacts page for details.

  • getting credits

    Feel free to add yourself to the Authors page when submitting a patch. It is updated from git log from time to time.