Wednesday, June 05, 2013

Announcing a Code of Conduct for use by the Python community

On 19 April, 2013, members of the Python Software Foundation voted to approve a Code of Conduct for use by the Python community. That code is now available on our website at http://www.python.org/psf/codeofconduct/. The content is included below:


The Python community is made up of members from around the globe with a diverse set of skills, personalities, and experiences. It is through these differences that our community experiences great successes and continued growth. When you're working with members of the community, we encourage you to follow these guidelines which help steer our interactions and strive to keep Python a positive, successful, and growing community. 
A member of the Python community is: 
Open 
Members of the community are open to collaboration, whether it's on PEPs, patches, problems, or otherwise. We're receptive to constructive comment and criticism, as the experiences and skill sets of other members contribute to the whole of our efforts. We're accepting of all who wish to take part in our activities, fostering an environment where anyone can participate and everyone can make a difference. 
Considerate
Members of the community are considerate of their peers -- other Python users. We're thoughtful when addressing the efforts of others, keeping in mind that often times the labor was completed simply for the good of the community. We're attentive in our communications, whether in person or online, and we're tactful when approaching differing views. 
Respectful 
Members of the community are respectful. We're respectful of others, their positions, their skills, their commitments, and their efforts. We're respectful of the volunteer efforts that permeate the Python community. We're respectful of the processes set forth in the community, and we work within them. When we disagree, we are courteous in raising our issues. 
Overall, we're good to each other. We contribute to this community not because we have to, but because we want to. If we remember that, these guidelines will come naturally.


What follows is text similar to the justification which was sent to our voting members, which serves as an introduction for why the Foundation wants to promote a code, along with details of why the code is written how it is, and how this code can be used.


Why implement a Code of Conduct?


The Python language is just over 20 years old, and the Python Software Foundation is just over 10 years old. Overall, the Python community as we know it today, is fairly young. While the community has grown nicely over the years, we’re at a great point where we can see growth in a number of areas if we take care to be explicitly welcoming.

Python generally is a welcoming place. When it comes to code, developers are more than happy to work with anyone who is willing to take the time to contribute. When it comes to user groups, leaders are happy to have anyone who is willing to show up. When it comes to conferences, organizers are happy to receive talks from anyone willing to submit.

When it comes to those willing to jump into these areas of the community, we’re unbalanced and not seeing the true spectrum of the greater community. It’ll take time, but we can advance towards a more diverse representation, one that we see throughout the rest of the community being increasingly populated by women, students, and with the popularity of pocket-sized computers, children will soon be in the ranks. We think we can do this is in part by ensuring a consistent and healthy environment for those wanting to be a part of it.


What this Code of Conduct is


This Code of Conduct, or CoC, presents a set of traits that members of our community value and uphold. The traits are taken from the existing behaviors that we have experienced throughout our work around the community. These are traits that help get work done, help members feel included, and help Python succeed.

Python got to where it is by being open, and it’ll continue to prosper by remaining open. Being explicit about the many aspects of our openness will encourage participation and use by more people.

Python has experienced everything up through fanatical uptake, often attributed to the kindness and consideration of the community. It’s a home away from home for some. It got us this far and ensuring we remain as such will benefit everyone involved, old or new.

Python and just about everything associated with it runs thanks to the efforts of volunteers. In most cases, the same volunteers have been in their roles for years, thanks to a community that respects the time, effort, and contribution of all involved. We want to see those same contributors forge on while also growing more to join them. Python depends on this.


What this Code of Conduct is not


This CoC makes no attempt to tell a person what not to do. It’s not intended to be a checklist to make sure one is a good community member. It’s not a document of minimum standards, and it’s not a way to keep people out. No specific incident prompted the creation of this CoC.

This CoC should not be seen as something negative, and it’s not trying to change anything. Without this CoC, the Python community would continue on as it has since its inception. However, we think it’s time to be explicit in ensuring that everyone has a place in this community, and that is what the CoC is for.


Application of this Code of Conduct


The PSF supports and advocates for the use of the CoC throughout the community, but without adoption by specific areas, the CoC is merely a document that the Foundation is supportive of. The way it’s useful is that an area of the community can adopt the CoC and use it as a guideline for participation. It could be adopted by mailing lists, IRC channels, the bug tracker, user groups, sprints, and more.

For example, a mailing list could say that their membership should adhere to the CoC. Doing so sets an open, considerate, and respectful tone for the mailing list participants. It signals to everyone from first-timers to list veterans that the list is open to their ideas, is considerate of the efforts put forth, and will respectfully discuss the list’s topics. If that mailing list feels it is appropriate, they could choose to enact relevant policy around following the CoC. Sometimes a heated discussion may cross the line, so perhaps they ask particular parties to step back and observe for a bit to bring the discussion back on track.

The first application of the CoC is by us, the Python Software Foundation. Our members are expected to uphold the CoC when using our mailing list, representing our foundation, and representing the Python community.

As of yesterday, the python-ideas mailing list administrators announced that members of that list should adhere to the CoC. They call for people not following the code to be made aware of what they’re doing, or to do so privately via the administrators. By letting them know, they can hopefully work on their actions and make for a better environment moving forward. They also state a policy that people repeatedly going against the code could be removed. As administrator Brett Cannon stated in his announcement of the CoC adoption, he recalled only one instance when removal would have been appropriate in the history of the list throughout its 6.5 year history. What the adoption hopefully signals is that newcomers and veterans alike should feel that they can jump right in to a welcoming group and share their latest ideas with the Python development community.


Where does the code live?


http://python.org/psf/codeofconduct/ is where you can find the CoC on the Python website.

The code itself lives at http://hg.python.org/coc/, with the initial revision pushed as changeset 689163936c9d.


This looks familiar...


If you’re familiar with the codes of conduct for the Ubuntu and Fedora projects, the “considerate” and “respectful” points exist in both of them, along with many other codes. When this CoC was written, it started off on paper with a big list of traits, which was eventually trimmed down to a small handful. After reading many other codes and similar documents, it was trimmed down further into the three traits we have today: open, considerate, and respectful. From there, original text was written in support of the traits.

Another familiarity may be with the PyCon Code of Conduct and the PSF’s tie to PyCon, but that’s only similar in that it’s also called a Code of Conduct. That’s an entirely different document, written for use at an in-person conference.

Can we make changes to the code in the future?


Yes. Changes can be proposed as resolutions placed before the PSF’s Board of Directors, who may then vote on it. As was the case with the CoC itself, the board voted to approve that the wider membership would vote on the implementation, so depending on the change, that could also be the case.