LWN:6.7 开发周期的数据统计!

内核6.7版本创下了最多非合并变更集的历史记录,主要归功于bcachefs的合并。该版本涉及众多开发者,展示了社区新老力量的结合,但人员流动和多样性提升仍有待关注。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关注了就能看到更多这么棒的文章哦~

Some 6.7 development statistics

By Jonathan Corbet
January 8, 2024
ChatGPT translation
https://lwn.net/Articles/956765/

内核 6.7 版本在经过十周的开发周期后,在 1 月 7 日发布了。这个周期里因合并的变更集数量最多而成为历史上最繁忙的一个周期。现在是我们通常对所有这些变更集的分析的时候了,同时也会额外探讨一下内核开发人员花费上来的时间。

6.7 内核吸收了 17,284 个非合并变更集(non-merge changesets)到主线,创下历史上任何一个开发周期的最高记录。在很大程度上,这一激增是由于将bcachefs文件系统及其完整的开发历史合并进来;bcachefs 在 6.7 中贡献了近 3,000 次提交。除此之外,这是一个相对正常的周期,涉及 1,973 名开发人员的贡献(其中有 267 名是在 6.7 中首次做出贡献的),并使内核的代码增加了 566,000 行。

这次最活跃的开发人员有:

b95bc07ca54ca3d60f0a899c94173860.png

不出所料,bcachefs 的开发者 Kent Overstreet 在两个榜单上都遥不可及地位居榜首。Uwe Kleine-König 继续在设备驱动子系统内重构 API。Kees Cook 的贡献主要包括为内核数据结构添加counted_by属性。Johannes Berg 继续担任 WiFi 维护者的职责,而 Thomas Gleixner 在 x86 和串口代码中进行了重大更改。

在更改行数榜单中紧随 Overstreet 之后的 Qingqing Zhuo、Benjamin Li 和 Lang Yu 都致力于 amdgpu 驱动程序,其中包括添加了更多的不可避免的寄存器定义头文件等任务。Ard Biesheuvel 通过移除Itanium架构的方式,缓解了这一次内核的增长。

这一次的顶级测试人员和审阅人员包括:

3b4eb5a603c6fbefc0d392611010a8c5.png

在与 amdgpu 驱动程序的合作中,Daniel Wheeler 依然测试了几乎是其他任何人的五倍的补丁数。Philipp Hortmann 在暂存树(staging tree)中测试了一组 Realtek 的补丁,而 Pucha Himasekhar Reddy 则测试了英特尔网络驱动程序的补丁。

在审查方面,Gustavo A. R. Silva 审查了 counted_by 补丁。AngeloGioacchino Del Regno 审查了整个驱动程序子系统的补丁。Simon Horman 审查了网络补丁,而 Kees Cook 则在整个系统范围内审查了(绝大多数)安全加固相关的补丁。Andy Shevchenko 审查了大量的驱动程序补丁。尽管有时有人担心一些开发人员可能试图通过提供不反映实际审查的“Reviewed-by”标签来控制统计数据,但出现在这一列表上的开发人员似乎都在做实质性的工作。

这一次最活跃的雇主有:

c871ccfe5ca6ac5bea8e2361aed5dd16.png

在这些看似正常的数字中,最引人注目的或许是来自没有任何从属关系的开发者的代码百分比数字很突出。再次强调,答案是 bcachefs:Overstreet 并未在公司职责范围内进行开发,而是在 Patreon 上得到了感兴趣的用户的支持赞助。

开发者的经验

在2023维护者峰会上,关于社区新开发者和具有内核长期经验者之间的平衡进行了一些讨论。显然,这两者对于一个健康的社区都是必需的。通过对内核的 Git 存储库进行一些计算,我们可以尝试深入了解这个问题。

那么,6.7 内核的每个贡献者有多少经验呢?角度之一,可以计算每个 6.7 贡献者在多少个内核发布版本中提交了代码。根据 Git 存储库所涵盖的时间段(自 2005 年 2.6.12 版本以来),结果如下:

394013a2dff0eb93efbff673f9471a38.png

最顶部这一行代表在此开发周期首次贡献的 267 名开发者,他们只有一次发布的经验。接下来的各行显示了贡献了 2 到 5 个版本的 446 名开发者,以此类推。

在 Git 时代已经有了 97 个主线版本,从 2.6.12 开始。事实证明,在这 97 个版本中有 11 名开发者参与其中:Al Viro、David Howells、David S. Miller、Dmitry Torokhov、Greg Kroah-Hartman、Linus Torvalds、Rafael J. Wysocki、Randy Dunlap、Russell King、Takashi Iwai 和 Trond Myklebust。另外还有七名开发者(Jens Axboe、Arnaldo Carvalho de Melo、Michael Ellerman、Ingo Molnar、Thomas Gleixner、Paul E. McKenney 和 Catalin Marinas)在此期间只错过了一个版本。

我们在这里看到的是,大约一半贡献给 6.7 版本的开发者,最多有十个版本的贡献经验。另一半则拥有更多经验,其中超过 250 名开发者至少贡献过 50 个不同的内核版本。因此,看起来社区的经验分布确实很多样。

另一种观察的方式是看每个开发者何时首次做出贡献;通过查看编写第一次补丁的年份,我们可以得出以下结论:

7705f5494ca77675d8b29a5278b6f67b.png

正如在这里所见,Linux 内核社区已经迎来了 2024 年的第一位新贡献者。总体而言,情况相似;大约一半的 6.7 版本的贡献者在内核工作不到五年,而另外一些人则参与了整个 Git 时代的工作。

如果读者对于那位在 2002 年开始的唯一开发者感到好奇,事实上,在早期有一些带有令人惊讶日期的提交;特别是 Kroah-Hartman,在 Git 时代开始前的几年内有很多带有较早日期的提交。不过,显然赢家将是 Ursula Braun,这个提交 声称来自 Linux 内核开发的鼎盛时期:1970 年 1 月 1 日。

正如我们所见,不是每个开发者都会为每个内核版本做出贡献,因此查看一个较长的时间段可能更有意义。如果我们不仅仅看 6.7,而是看从 6.2 到 6.7 的所有发布(大致是 2023 年的工作),结果如下:

52d363518d8158a8607e89cca96897c8.png

在这段时间内,有 5,024 名开发人员做出了贡献;略多于一半的人贡献不超过五个版本。这种模式可能表明社区有着新老开发者的健康结合;然而,这也可能表明很多开发者没有继续留在社区而为大多数版本做贡献。

在任何开发社区中,都会出现一定程度的人员流动;人们加入解决问题,然后一旦完成工作就离开。令人费解的是,并非每个人都对内核开发充满激情。内核社区的人员流动是否过大并不是一个可以直接回答的问题。一方面,每个版本都会有大约 200 到 300 名首次开发者加入我们的社区,但每个版本贡献者的数量并没有真正增长,这表明人们在以相同的速度离开。另一方面,上面的图表显示,在过去的 18 年中的任何一年,社区都吸引了成为长期贡献者的开发者。

当然,这并不意味着内核社区不会受益于更高水平的贡献者的留存。值得认真对待的是为什么人们离开社区的问题,以及为什么留下的群体的多样性如此之低的问题。人们可以(或不可以)争论说当前内核社区的状态并不是非常不健康,但确实很难争辩说没有很大的改进空间。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

format,png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值