.. _code_of_conduct_interpretation:

Linux Kernel Contributor Covenant Code of Conduct Interpretation
================================================================

The :ref:`code_of_conduct` is a general document meant to
provide a set of rules for almost any open source community.  Every
open-source community is unique and the Linux kernel is no exception.
Because of this, this document describes how we in the Linux kernel
community will interpret it.  We also do not expect this interpretation
to be static over time, and will adjust it as needed.

The Linux kernel development effort is a very personal process compared
to "traditional" ways of developing software.  Your contributions and
ideas behind them will be carefully reviewed, often resulting in
critique and criticism.  The review will almost always require
improvements before the material can be included in the
kernel.  Know that this happens because everyone involved wants to see
the best possible solution for the overall success of Linux.  This
development process has been proven to create the most robust operating
system kernel ever, and we do not want to do anything to cause the
quality of submission and eventual result to ever decrease.

Maintainers
-----------

The Code of Conduct uses the term "maintainers" numerous times.  In the
kernel community, a "maintainer" is anyone who is responsible for a
subsystem, driver, or file, and is listed in the MAINTAINERS file in the
kernel source tree.

Responsibilities
----------------

The Code of Conduct mentions rights and responsibilities for
maintainers, and this needs some further clarifications.

First and foremost, it is a reasonable expectation to have maintainers
lead by example.

That being said, our community is vast and broad, and there is no new
requirement for maintainers to unilaterally handle how other people
behave in the parts of the community where they are active.  That
responsibility is upon all of us, and ultimately the Code of Conduct
documents final escalation paths in case of unresolved concerns
regarding conduct issues.

Maintainers should be willing to help when problems occur, and work with
others in the community when needed.  Do not be afraid to reach out to
the Technical Advisory Board (TAB) or other maintainers if you're
uncertain how to handle situations that come up.  It will not be
considered a violation report unless you want it to be.  If you are
uncertain about approaching the TAB or any other maintainers, please
reach out to our conflict mediator, Joanna Lee <jlee@linuxfoundation.org>.

In the end, "be kind to each other" is really what the end goal is for
everybody.  We know everyone is human and we all fail at times, but the
primary goal for all of us should be to work toward amicable resolutions
of problems.  Enforcement of the code of conduct will only be a last
resort option.

Our goal of creating a robust and technically advanced operating system
and the technical complexity involved naturally require expertise and
decision-making.

The required expertise varies depending on the area of contribution.  It
is determined mainly by context and technical complexity and only
secondary by the expectations of contributors and maintainers.

Both the expertise expectations and decision-making are subject to
discussion, but at the very end there is a basic necessity to be able to
make decisions in order to make progress.  This prerogative is in the
hands of maintainers and project's leadership and is expected to be used
in good faith.

As a consequence, setting expertise expectations, making decisions and
rejecting unsuitable contributions are not viewed as a violation of the
Code of Conduct.

While maintainers are in general welcoming to newcomers, their capacity
of helping contributors overcome the entry hurdles is limited, so they
have to set priorities.  This, also, is not to be seen as a violation of
the Code of Conduct.  The kernel community is aware of that and provides
entry level programs in various forms like kernelnewbies.org.

Scope
-----

The Linux kernel community primarily interacts on a set of public email
lists distributed around a number of different servers controlled by a
number of different companies or individuals.  All of these lists are
defined in the MAINTAINERS file in the kernel source tree.  Any emails
sent to those mailing lists are considered covered by the Code of
Conduct.

Developers who use the kernel.org bugzilla, and other subsystem bugzilla
or bug tracking tools should follow the guidelines of the Code of
Conduct.  The Linux kernel community does not have an "official" project
email address, or "official" social media address.  Any activity
performed using a kernel.org email account must follow the Code of
Conduct as published for kernel.org, just as any individual using a
corporate email account must follow the specific rules of that
corporation.

The Code of Conduct does not prohibit continuing to include names, email
addresses, and associated comments in mailing list messages, kernel
change log messages, or code comments.

Interaction in other forums is covered by whatever rules apply to said
forums and is in general not covered by the Code of Conduct.  Exceptions
may be considered for extreme circumstances.

Contributions submitted for the kernel should use appropriate language.
Content that already exists predating the Code of Conduct will not be
addressed now as a violation.  Inappropriate language can be seen as a
bug, though; such bugs will be fixed more quickly if any interested
parties submit patches to that effect.  Expressions that are currently
part of the user/kernel API, or reflect terminology used in published
standards or specifications, are not considered bugs.

Enforcement
-----------

The address listed in the Code of Conduct goes to the Code of Conduct
Committee.  The exact members receiving these emails at any given time
are listed at https://kernel.org/code-of-conduct.html.  Members can not
access reports made before they joined or after they have left the
committee.

The Code of Conduct Committee consists of volunteer community members
appointed by the TAB, as well as a professional mediator acting as a
neutral third party.  The processes the Code of Conduct committee will
use to address reports is varied and will depend on the individual
circumstance, however, this file serves as documentation for the
general process used.

Any member of the committee, including the mediator, can be contacted
directly if a reporter does not wish to include the full committee in a
complaint or concern.

The Code of Conduct Committee reviews the cases according to the
processes (see above) and consults with the TAB as needed and
appropriate, for instance to request and receive information about the
kernel community.

Any decisions regarding enforcement recommendations will be brought to
the TAB for implementation of enforcement with the relevant maintainers
if needed.  A decision by the Code of Conduct Committee can be overturned
by the TAB by a two-thirds vote.

At quarterly intervals, the Code of Conduct Committee and TAB will
provide a report summarizing the anonymised reports that the Code of
Conduct committee has received and their status, as well details of any
overridden decisions including complete and identifiable voting details.

Because how we interpret and enforce the Code of Conduct will evolve over
time, this document will be updated when necessary to reflect any
changes.

Enforcement for Unacceptable Behavior Code of Conduct Violations
----------------------------------------------------------------

The Code of Conduct committee works to ensure that our community continues
to be inclusive and fosters diverse discussions and viewpoints, and works
to improve those characteristics over time. A majority of the reports the
Code of Conduct Committee receives stem from incorrect understanding regarding
the development process and maintainers' roles, responsibilities, and their
right to make decisions on code acceptance. These are resolved through
clarification of the development process and the scope of the Code of Conduct.

Unacceptable behaviors could interrupt respectful collaboration for a short
period of time and negatively impact the health of the community longer term.
Unacceptable behaviors often get resolved when individuals acknowledge their
behavior and make amends for it in the setting the violation has taken place.

The Code of Conduct Committee receives reports about unacceptable behaviors
when they don't get resolved through community discussions. The Code of
Conduct committee takes measures to restore productive and respectful
collaboration when an unacceptable behavior has negatively impacted that
relationship.

The Code of Conduct Committee has the obligation to keep the reports and
reporters' information private. Reports could come from injured parties
and community members who are observers of unacceptable behaviors. The
Code of Conduct Committee has the responsibility to investigate and resolve
these reports, working with all involved parties.

The Code of Conduct Committee works with the individual to bring about
change in their understanding of the importance to repair the damage caused
by their behavior to the injured party and the long term negative impact
on the community.

The goal is to reach a resolution which is agreeable to all parties. If
working with the individual fails to bring about the desired outcome, the
Code of Conduct Committee will evaluate other measures such as seeking
public apology to repair the damage.

Seek public apology for the violation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The Code of Conduct Committee publicly calls out the behavior in the
setting in which the violation has taken place, seeking public apology
for the violation.

A public apology for the violation is the first step towards rebuilding
the trust. Trust is essential for the continued success and health of the
community which operates on trust and respect.

Remedial measures if there is no public apology for the violation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The Code of Conduct Committee determines the next course of action to restore
the healthy collaboration by recommending remedial measure(s) to the TAB for
approval.

- Ban violator from participating in the kernel development process for
  a period of up to a full kernel development cycle. The Code of Conduct
  Committee could require public apology as a condition for lifting the
  ban.

The scope of the ban for a period of time could include:

    a. denying patch contributions and pull requests
    b. pausing collaboration with the violator by ignoring their
       contributions and/or blocking their email account(s)
    c. restricting their ability to communicate via kernel.org platforms,
       such as mailing lists and social media sites

Once the TAB approves one or more of the measures outlined in the scope of
the ban by a two-thirds vote, the Code of Conduct Committee will enforce
the TAB approved measure(s) in collaboration with the community, maintainers,
sub-maintainers, and kernel.org administrators.

The Code of Conduct Committee is mindful of the negative impact of seeking
public apology and instituting ban could have on individuals. It is also
mindful of the longer term harm to the community that could result from
not taking action when such serious public violations occur.

The effectiveness of the remedial measure(s) approved by the TAB depends
on the trust and cooperation from the community, maintainers, sub-maintainers,
and kernel.org administrators in enforcing them.

The Code of Conduct Committee sincerely hopes that unacceptable behaviors
that require seeking public apologies continue to be exceedingly rare
occurrences in the future.
