110 lines
4.4 KiB
ReStructuredText
110 lines
4.4 KiB
ReStructuredText
|
.. 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.
|