首页 > 编程语言 >内核维护者手册 - 特性和驱动程序维护者【ChatGPT】

内核维护者手册 - 特性和驱动程序维护者【ChatGPT】

时间:2023-12-08 21:22:55浏览次数:50  
标签:驱动程序 代码 维护者 列表 内核 ChatGPT 子系统

术语“维护者”涵盖了从处理补丁和拉取请求几乎全职工作的人,到负责小特性或驱动程序的人的广泛范围。

与本章的大部分内容不同,本节适用于后者(更多人的群体)。它提供了维护者小规模代码部分的建议,并描述了期望和责任。

驱动程序等通常没有自己的邮件列表和git树,而是在更大子系统的列表上发送和审查补丁。

责任

维护工作的量通常与代码库的规模和受欢迎程度成正比。小特性和驱动程序应该需要相对较少的关注和维护。然而,当工作到来时(以需要审查的补丁、用户错误报告等形式),必须及时采取行动。即使特定驱动程序每月或每季度只看到一个补丁,一个子系统可能会有一百个这样的驱动程序。子系统维护者不能等待很长时间才能听到审阅者的回复。

对响应时间的确切期望会因子系统而异。子系统设定的补丁审查SLA有时可以在子系统文档中找到。如果找不到,作为一个经验法则,审阅者应该尽量比子系统维护者的通常补丁审查延迟更快地做出回应。由此产生的期望可能从快节奏子系统(例如网络)的两个工作日,到内核较慢移动部分长达几周。

邮件列表参与

Linux内核使用邮件列表作为主要的沟通形式。维护者必须订阅并关注适当的子系统广泛邮件列表。可以通过订阅整个列表或使用更现代的选择性设置(如lei)来实现。

维护者必须知道如何在列表上进行沟通(纯文本,没有侵入性的法律页脚,不是顶部回复等)。

审查

维护者必须审查所有仅涉及其驱动程序的补丁,无论多么微不足道。如果补丁是对整个树的更改并修改了多个驱动程序,则是否进行审查留给维护者决定。

当一个代码片段有多个维护者时,来自单个维护者的Acked-by或Reviewed-by标签(或审查意见)足以满足此要求。

如果对特定更改的审查过程或验证将超出子系统的预期审查时间表,维护者应该回复提交,指示正在进行工作,并说明何时可以期望获得完整结果。

重构和核心更改

偶尔需要更改核心代码以改善整个内核的可维护性。维护者应该在场并帮助指导和测试其代码的更改以适应新的基础设施。

错误报告

维护者必须确保及时解决其代码中报告给他们的严重问题:回归、内核崩溃、内核警告、编译错误、死锁、数据丢失以及其他类似范围的错误。

此外,如果报告的质量合理或指示可能严重的问题,维护者还应该回复关于其他类型的错误报告,特别是如果它们在MAINTAINERS文件中具有支持状态。

选择维护者

前一节描述了维护者的期望,本节提供了选择维护者的指导,并描述了常见的误解。

作者

最自然和常见的维护者选择是代码的作者。作者对代码非常熟悉,因此是最适合持续照顾它的人选。

也就是说,成为维护者是一个积极的角色。MAINTAINERS文件不是一个名单(事实上,还有一个单独的CREDITS文件),而是那些将积极帮助处理代码的人的名单。如果作者没有时间、兴趣或能力来维护代码,必须选择不同的维护者。

多个维护者

现代最佳实践规定,无论多么微不足道,任何代码片段都应该至少有两个维护者。这样可以分担负担,帮助人们度假,防止过度劳累,培养社区的新成员等等。即使有一个明显的完美候选人,也应该找到另一个维护者。

维护者必须是人类,因此,将邮件列表或组邮件添加为维护者是不可接受的。信任和理解是内核维护的基础,而邮件列表无法建立信任。除了人类之外,拥有邮件列表也是完全可以的。

公司结构

对外人来说,Linux内核可能类似于一个以Linus为首的分层组织。虽然代码以分层方式流动,但公司模板在这里不适用。Linux是一个由(很少表达的)相互尊重、信任和便利所维系的无政府状态。

这一切都是说,经理几乎永远不会成为好的维护者。维护者的位置更接近于一个值班轮换,而不是一个权力职位。

作为维护者的人选的以下特征是明显的警示信号:

  • 社区不认识的人,以前从未向列表发送过邮件
  • 没有编写任何代码
  • (当开发是外包时)为付款开发的公司工作,而不是实际进行工作的公司

不遵守规定

子系统维护者可以从MAINTAINERS文件中删除不活跃的维护者。如果维护者是重要的作者或在代码开发中扮演了重要角色,他们应该被移到CREDITS文件中。

删除不活跃的维护者不应被视为一种惩罚行为。拥有不活跃的维护者会产生实际成本,因为所有开发人员都必须记住在讨论中包括维护者,并且子系统维护者要花费大量精力来想办法征求反馈。

子系统维护者可以删除缺乏维护的代码。

子系统维护者可以拒绝接受来自反复忽视其维护职责的公司的代码。

标签:驱动程序,代码,维护者,列表,内核,ChatGPT,子系统
From: https://www.cnblogs.com/pengdonglin137/p/17889060.html

相关文章

  • 内核维护者手册 - 配置Git【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/maintainer/configure-git.html配置Git本章描述了维护者级别的Git配置。在拉取请求中使用的标记分支(请参阅创建拉取请求)应该由开发者的公共GPG密钥进行签名。可以通过向gittag传递-u来创建已签名的标签。然而,由于通常会为项......
  • Contributor Covenant 行为准则 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/process/code-of-conduct.htmlContributorCovenant行为准则我们的承诺为了营造一个开放、友好的环境,我们作为贡献者和维护者承诺,无论年龄、体型、残疾、种族、性别特征、性别认同和表达、经验水平、教育程度、社会经济地位、国籍、个......
  • Kernel Maintainer Handbook 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/maintainer/index.htmlKernelMaintainerHandbook这份文档是为内核维护者编写的指南的谦逊开端。这里还有很多工作要做!请随时提出(并编写)对这份指南的补充。功能和驱动程序维护者责任选择维护者不遵守规定配置Git创建提交链......
  • 提交补丁:将您的代码提交到内核的基本指南 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/process/submitting-patches.html对于希望向Linux内核提交更改的个人或公司来说,如果您不熟悉“系统”,这个过程有时可能会令人望而生畏。本文是一些建议的集合,可以极大地增加您的更改被接受的机会。本文档以相对简洁的格式包含了大量的建......
  • Linux内核开发流程指南 - 8. 获取更多信息【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/process/8.Conclusion.html以下是您提供的文本的中文翻译:8.获取更多信息关于Linux内核开发及相关主题,有许多信息来源。其中最重要的始终是内核源代码分发中的Documentation目录。从顶层的process/howto.rst开始;同时也阅读process/subm......
  • Linux内核开发流程指南 - 4. 编写正确的代码【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/process/4.Coding.html4.编写正确的代码虽然坚实且以社区为导向的设计过程有很多值得说的地方,但任何内核开发项目的证明都在于最终的代码。其他开发人员将审查这些代码,并将其合并(或不合并)到主线树中。因此,代码的质量将决定项目的最终成......
  • Linux内核开发流程指南 - 5. 编写正确的代码【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/process/5.Posting.html5.提交补丁迟早会有一个时刻,你的工作准备好被提交给社区审查,并最终被合并到主线内核中。毫不奇怪,内核开发社区已经形成了一套用于提交补丁的惯例和程序,遵循这些规定将使所有相关人员的生活变得更加轻松。本文将......
  • Linux内核开发流程指南 - 6. 跟进【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/process/6.Followthrough.html6.跟进到目前为止,您已经遵循了迄今为止给出的指南,并且凭借自己的工程技能,发布了一系列完美的补丁。即使是经验丰富的内核开发人员也可能犯的最大错误之一是认为他们的工作现在已经完成。事实上,发布补丁标......
  • Linux内核开发流程指南 - 7. 高级主题【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/process/7.AdvancedTopics.html高级主题到目前为止,希望你已经掌握了开发过程的工作方式。然而,还有更多需要学习的地方!本节将涵盖一些对于希望成为Linux内核开发过程中的常规部分的开发人员有帮助的主题。7.1.使用git管理补丁内核......
  • Linux内核开发流程指南 - 2. 开发流程的运作方式【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/process/2.Process.htmlLinux内核开发流程Linux内核在20世纪90年代初期是一个相当松散的事务,涉及的用户和开发者数量相对较少。随着用户基数达到数百万,并有约2000名开发者在一年内参与开发,内核不得不演变出一系列流程以确保开发顺利进行......