英语

Linux 内核贡献成熟度模型

背景

作为 2021 年 Linux 内核维护者峰会的一部分,曾进行了一次讨论,内容涉及招募内核维护者以及维护者继任方面的挑战。该讨论的一些结论包括,作为 Linux 内核社区一部分的公司需要允许工程师将维护者工作作为其职责的一部分,以便他们能够成长为受人尊敬的领导者,并最终成为内核维护者。为了支持强大的人才储备,应该允许并鼓励开发者承担上游贡献,例如审查他人的补丁、重构内核基础设施和编写文档。

为此,Linux 基金会技术咨询委员会(TAB)提出了这份 Linux 内核贡献成熟度模型。这些关于上游社区参与的共同期望旨在提高个人开发者的影响力,增强组织的协作,并改善 Linux 内核生态系统的整体健康状况。

技术咨询委员会(TAB)敦促各组织持续评估其开源成熟度模型,并致力于改进以符合此模型。为了有效,此评估应纳入组织内各层级(包括管理层和所有资深级别的开发者)的反馈。本着开源的精神,我们鼓励各组织发布其评估结果和改进与上游社区互动关系的计划。

级别 0

  • 不允许软件工程师向 Linux 内核贡献补丁。

级别 1

  • 允许软件工程师向 Linux 内核贡献补丁,作为其工作职责的一部分或利用其个人时间。

级别 2

  • 软件工程师应将其对 Linux 内核的贡献作为其工作职责的一部分。

  • 软件工程师将获得支持,作为其工作的一部分参加与 Linux 相关的会议。

  • 软件工程师的上游代码贡献将在晋升和绩效评估中予以考虑。

级别 3

  • 软件工程师应将审查补丁(包括其他公司工程师编写的补丁)作为其工作职责的一部分。

  • 向与 Linux 相关或学术会议(例如由 Linux 基金会、Usenix、ACM 等组织)贡献演示文稿或论文,被视为工程师工作的一部分。

  • 软件工程师的社区贡献将在晋升和绩效评估中予以考虑。

  • 组织将定期报告其开源贡献的指标并随时间跟踪这些指标。这些指标可能仅在组织内部发布,或由组织自行决定,部分或全部可能对外发布。强烈建议的指标包括:

    • 团队或组织的上游内核贡献数量(例如,向经理、总监或副总裁汇报的所有人员)。

    • 在组织内,已进行上游贡献的内核开发者占内核开发者总数的百分比。

    • 组织服务器和/或产品中使用的内核与内部内核所基于的上游内核发布日期之间的时间间隔。

    • 内部内核中存在的非主线提交数量。

级别 4

  • 鼓励软件工程师将一部分工作时间专注于上游工作,上游工作定义为审查补丁、在程序委员会任职、改进核心项目基础设施(如编写或维护测试)、减少上游技术债务、编写文档等。

  • 软件工程师在协助组织与 Linux 相关的会议方面获得支持。

  • 组织将在正式绩效评估中考虑社区成员的反馈。

级别 5

  • 上游内核开发被视为一个正式的职位,工程师至少有三分之一的时间用于上游工作。

  • 组织将积极征求社区成员的反馈,作为正式绩效评估的一个因素。

  • 组织将定期内部报告上游工作与直接追求业务目标的工作之间的比例。