Libav is a friendly and community-driven effort to provide its users with a set of portable, functional and high-performance libraries for dealing with multimedia formats of all sorts.
The project tries to be as non-hierarchical as possible. Every contributor must abide by a well defined set of rules, no matter which role they take.
If possible, conflicts should be avoided or, otherwise, resolved.
Even if the project is non-hierarchical, it is possible to define specific roles within it. Roles do not really give additional power but additional responsibilities.
Anybody who reviews patches, writes patches, helps triaging bugs, writes documentation, helps people solve their problems, or keeps our infrastructure running is considered a contributor.
It does not matter how much you contribute. Any help is welcome.
A reviewer is supposed to read the new patches and prevent mistakes (silly, tiny or huge) to land in the master branch.
Because of our workflow, spending time reading other people patches is quite common.
People with specific expertise might get nagged to give their opinion more often than others, but everybody might spot something that looks wrong and probably is.
Sometimes the issues reported do not have enough information to start investigating them, sometimes the developers might be too busy to check again if old issues still apply or they are independently solved.
Bug wrangling involves making sure reported issues have all the needed information to start fixing the problem and checking if old issues are still valid or had been fixed already.
Committers are the people who push code to the main repository after it has been reviewed.
Being a committer requires you to take newly submitted patches, make sure they work as expected either locally or pushing them through our continuous integration system and possibly fix minor issues like typos.
Patches from a committer go through the normal review process as well.
This infrastructure needs constant maintaining and improving.
Most of it comes from people devoting their time and (beside few exceptions) their own hardware, definitely this role requires a huge amount of dedication.
The project strives to provide a pleasant environment for everybody.
Every contributor is considered a member of the team, regardless if they are a newcomer or a long time member. Nobody has special rights or prerogatives.
Well defined rules have been adopted since the founding of the project to ensure fairness.
The project has a simple contribution workflow:
It aims to make sure that the code quality stays consistently high and everybody is aware of the changes hitting the master repository.
In order to foster a friendly and cooperative atmosphere where technical collaboration can flourish we expect all members of the Libav community to be
Plus, we expect everybody to not
While we hope to keep disciplinary action to a minimum, repeated violations of this policy will result in offenders getting temporarily or permanently removed from our communication channels.
Personal conflicts shall be assisted by mediators. When a conflict between two (or more) people arises and threatens to spiral downwards, anybody may ask for a mediator to step in. The role of the mediator is to pull the fighters apart, calm them down, listen to each side and try to restore and aid civil communication towards a resolution.
If reasonable communication fails, a mediator can ask for people to be moderated on the mailing lists so that mails arrive with a delay and combatants have a chance to calm down. Suitable mediator candidates should be calm, level-headed, respected and more or less neutral in the topic at hand. Being uncontroversial as a person and being a good communicator is a plus.