2020年8月,Linux 发布了内核 5.8 RC 版本,该版本大约有100名新贡献者,具有超过14000个 commit,约80万行新代码。并且,距离上一个 5.7 正式版发布,才仅仅过去了约2个月的时间。
视频地址:https://www.zentao.net/xp/continuous-integration-80270.html/?f=kyzg
然而真正让大家感到震惊的是,如此庞大的 Linux 内核项目30年来能够一直有条不紊地运转。这归结于在Linux 内核项目中,开发人员始终都严格遵守着一系列基本原则。
1.每次 commit 只能做一件事
项目维护人员的每个commit都必须只能做一件事,不一定要求很小,但它须是针对某一单一任务的更改。从而可以帮助项目维护者更轻松地识别和隔离任何有问题的更改,而不影响其他的功能。
2.commit 不能破坏构建
每个commit都必须作为一个独立的更改来工作,确保每一步完全起作用,且不引起退化。例如,对函数原型更改时,必须更新调用它的每个文件,以防止构建中断。
3.所有代码都是二等分的
二等分是一种操作,类似于二分法查找算法,它使开发者可以快速地找到所有发生 错误的确切时间点。并且,该原则是基于前面提到的两个原则才能实现的。
4.永远不要 rebase 公共分支
Linux 项目工作流程不允许 rebase 他人使用的任何公共分支。如果 rebase 这些公共分支,已重新基准化的 commit ,将不再与基于原存储库中的相同 commit 匹配。
5.Git 正确合并
对于合并分支,Git相比其他版本管理系统,能更加高效地解决代码冲突等问题 ,避免大量的手动工作。
6.保留定义明确的 commit 日志
编写良好的代码更改日志,有助于代码revi ew流 程,也可以帮助之后的维护人员确定是否可以删除该代码,或如何对其进行修改。
7.持续测试和集成
在向上游发送 commit 请求之前,开发者会测试每个 commit 。 持续测试和集成,有助于尽快地发现集成错误。这个过程可以大大减少集成的问题,同时还能保持项目的高质量
正是因为在开发流程中,所有项目维护人员严格遵守并执行这些基本原则,才使得Linux内核项目有条不紊的“健康成长”。同时,我们也希望本节视频能在项目维护流程上给大家一些启发和帮助。
视频内容来源:
https://www.linux.com/news/why-linuxs-biggest-ever-kernel-release-is-really-no-big-deal/