|  | .. 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. |