Thanks for your interest in contributing to this project and for taking the time to read this guide.
Taken from http://libvirt.org/governance.html with minor adjustments.
The open source community covers people from a wide variety of countries, backgrounds and positions. This global diversity is a great strength for this project, but can also lead to communication issues, which may in turn cause unhappiness. To maximise happiness of the project community taken as a whole, all members (whether users, contributors or committers) are expected to abide by the project's code of conduct. At a high level the code can be summarized as "be excellent to each other". Expanding on this:
Be respectful: disagreements between people are to be expected and are usually the sign of healthy debate and engagement. Disagreements can lead to frustration and even anger for some members. Turning to personal insults, intimidation or threatening behaviour does not improve the situation. Participants should thus take care to ensure all communications / interactions stay professional at all times.
Be considerate: remember that the community has members with a diverse background many of whom have English as a second language. What might appear impolite, may simply be a result of a lack of knowledge of the English language. Bear in mind that actions will have an impact on other community members and the project as a whole, so take potential consequences into account before pursuing a course of action.
Be forgiving: humans are fallible and as such prone to make mistakes and inexplicably change their positions at times. Don't assume that other members are acting with malicious intent. Be prepared to forgive people who make mistakes and assist each other in learning from them. Playing a blame game doesn't help anyone.
- Before reporting an issue make sure you search first if anybody has already reported a similar issue and whether or not it has been fixed.
- Make sure your issue report sufficiently details the problem.
- Include code samples reproducing the issue.
- Please do not derail or troll issues. Keep the discussion on topic and respect the Code of conduct.
- If you want to tackle any open issue, make sure you let people know you are working on it.
- Please be generous describing your changes.
- Please provide tests along your changes.
- Please follow the coding style seen throughout the project's existing code.
- Keep pull requets small so core developers can review them quickly.
- Unlike other projects, we are not going to nitpick your contributions. If your pull request is correct, we are going to merge and address the small details by ourselves. There is no point on delaying contributions due to little and unimportant details.