.. _code_of_conduct:

Code of Conduct
===============

The QEMU community is made up of a mixture of professionals and
volunteers from all over the world. Diversity is one of our strengths,
but it can also lead to communication issues and unhappiness.
To that end, we have a few ground rules that we ask people to adhere to.

* Be welcoming. We are committed to making participation in this project
  a harassment-free experience for everyone, regardless of level of
  experience, gender, gender identity and expression, sexual orientation,
  disability, personal appearance, body size, race, ethnicity, age, religion,
  or nationality.

* Be respectful. Not all of us will agree all the time.  Disagreements, both
  social and technical, happen all the time and the QEMU community is no
  exception. When we disagree, we try to understand why.  It is important that
  we resolve disagreements and differing views constructively.  Members of the
  QEMU community should be respectful when dealing with other contributors as
  well as with people outside the QEMU community and with users of QEMU.

Harassment and other exclusionary behavior are not acceptable. A community
where people feel uncomfortable or threatened is neither welcoming nor
respectful.  Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery

* Personal attacks

* Trolling or insulting/derogatory comments

* Public or private harassment

* Publishing other's private information, such as physical or electronic
  addresses, without explicit permission

This isn't an exhaustive list of things that you can't do. Rather, take
it in the spirit in which it's intended: a guide to make it easier to
be excellent to each other.

This code of conduct applies to all spaces managed by the QEMU project.
This includes IRC, the mailing lists, the issue tracker, community
events, and any other forums created by the project team which the
community uses for communication. This code of conduct also applies
outside these spaces, when an individual acts as a representative or a
member of the project or its community.

By adopting this code of conduct, project maintainers commit themselves
to fairly and consistently applying these principles to every aspect of
managing this project.  If you believe someone is violating the code of
conduct, please read the :ref:`conflict-resolution` document for
information about how to proceed.

Sources
-------

This document is based on the `Fedora Code of Conduct
<http://web.archive.org/web/20210429132536/https://docs.fedoraproject.org/en-US/project/code-of-conduct/>`__
(as of April 2021) and the `Contributor Covenant version 1.3.0
<https://www.contributor-covenant.org/version/1/3/0/code-of-conduct/>`__.
