.. SPDX-License-Identifier: GPL-2.0

========================================
Linux Kernel Contribution Maturity Model
========================================


Background
==========

As a part of the 2021 Linux Kernel Maintainers’ Summit, there was a
`discussion <https://lwn.net/Articles/870581/>`_ about the challenges in
recruiting kernel maintainers as well as maintainer succession.  Some of
the conclusions from that discussion included that companies which are a
part of the Linux Kernel community need to allow engineers to be
maintainers as part of their job, so they can grow into becoming
respected leaders and eventually, kernel maintainers.  To support a
strong talent pipeline, developers should be allowed and encouraged to
take on upstream contributions such as reviewing other people’s patches,
refactoring kernel infrastructure, and writing documentation.

To that end, the Linux Foundation Technical Advisory Board (TAB)
proposes this Linux Kernel Contribution Maturity Model. These common
expectations for upstream community engagement aim to increase the
influence of individual developers, increase the collaboration of
organizations, and improve the overall health of the Linux Kernel
ecosystem.

The TAB urges organizations to continuously evaluate their Open Source
maturity model and commit to improvements to align with this model.  To
be effective, this evaluation should incorporate feedback from across
the organization, including management and developers at all seniority
levels.  In the spirit of Open Source, we encourage organizations to
publish their evaluations and plans to improve their engagement with the
upstream community.

Level 0
=======

* Software Engineers are not allowed to contribute patches to the Linux
  kernel.


Level 1
=======

* Software Engineers are allowed to contribute patches to the Linux
  kernel, either as part of their job responsibilities or on their own
  time.

Level 2
=======

* Software Engineers are expected to contribute to the Linux Kernel as
  part of their job responsibilities.
* Software Engineers will be supported to attend Linux-related
  conferences as a part of their job.
* A Software Engineer’s upstream code contributions will be considered
  in promotion and performance reviews.

Level 3
=======

* Software Engineers are expected to review patches (including patches
  authored by engineers from other companies) as part of their job
  responsibilities
* Contributing presentations or papers to Linux-related or academic
  conferences (such those organized by the Linux Foundation, Usenix,
  ACM, etc.), are considered part of an engineer’s work.
* A Software Engineer’s community contributions will be considered in
  promotion and performance reviews.
* Organizations will regularly report metrics of their open source
  contributions and track these metrics over time.  These metrics may be
  published only internally within the organization, or at the
  organization’s discretion, some or all may be published externally.
  Metrics that are strongly suggested include:

  * The number of upstream kernel contributions by team or organization
    (e.g., all people reporting up to a manager, director, or VP).
  * The percentage of kernel developers who have made upstream
    contributions relative to the total kernel developers in the
    organization.
  * The time interval between kernels used in the organization’s servers
    and/or products, and the publication date of the upstream kernel
    upon which the internal kernel is based.
  * The number of out-of-tree commits present in internal kernels.

Level 4
=======

* Software Engineers are encouraged to spend a portion of their work
  time focused on Upstream Work, which is defined as reviewing patches,
  serving on program committees, improving core project infrastructure
  such as writing or maintaining tests, upstream tech debt reduction,
  writing documentation, etc.
* Software Engineers are supported in helping to organize Linux-related
  conferences.
* Organizations will consider community member feedback in official
  performance reviews.

Level 5
=======

* Upstream kernel development is considered a formal job position, with
  at least a third of the engineer’s time spent doing Upstream Work.
* Organizations will actively seek out community member feedback as a
  factor in official performance reviews.
* Organizations will regularly report internally on the ratio of
  Upstream Work to work focused on directly pursuing business goals.
