<!-- go/cmark -->
<!--* freshness: {owner: 'hta' reviewed: '2021-01-01'} *-->

# Contributors Code of Conduct

Google and the WebRTC team are committed to preserving and fostering a diverse, welcoming and open
community. The WebRTC project is open to contributors from all  walks of life and should be a
harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender
identity and expression, level of experience, nationality, personal appearance, race, religion, or
sexual identity and orientation.

## Scope
This Code of Conduct applies to our repos and organizations, mailing lists, blog content, and any
other WebRTC-supported communication group, as well as any private communication initiated in the
context of these spaces.

## Standards
Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit
permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Responsibilities

You are empowered to politely engage when you feel that you or others are disrespected. The person
making you feel uncomfortable may not be aware of what they are doing - politely bringing their
behavior to their attention is encouraged.

If you are uncomfortable speaking up, or feel that your concerns are not being duly considered, you
can email community@webrtc.org to request involvement from a community manager. All concerns shared
with community managers will be kept confidential. While all reports will be taken seriously, the
WebRTC community managers may not act on complaints that they feel are not violations of this code
of conduct.

## Enforcement

Consequences for failing to comply with this policy may include, at the sole discretion of the
WebRTC community managers:

* a request for an apology;
* a private or public warning or reprimand;
* a temporary ban from the mailing list, blog, WebRTC repository or organization, or other
WebRTC-supported communication group, including loss of committer status;
* a permanent ban from any of the above, or from all current and future WebRTC-supported or
Google-supported communities, including loss of committer status.

Participants warned to stop any harassing behavior are expected to comply immediately; failure to do
so will result in an escalation of consequences.

The decisions of the WebRTC community managers may be appealed via community-appeals@webrtc.org.

## Acknowledgements

This Code of Conduct is based on Contributor Covenant, version 1.4,
available [here](http://contributor-covenant.org/version/1/4) and [Chromium](https://chromium.googlesource.com/chromium/src/+/main/CODE_OF_CONDUCT.md)

## License

This Code of Conduct is available for reuse under the Creative Commons Zero (CC0) license.
