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