Ubuntu技术委员会成员建议每月发布一次Ubuntu

admin 2018-06-25

Ubuntu技术委员会成员Scott James requaling概述了将流行的Linux发行版过渡到滚动发行模式的理论建议,在滚动发行模式中,新的稳定版本将每月发行。他在博客上发表了自己对此事的想法,以鼓励讨论。

Ubuntu目前坚持基于时间的发布模式,开发周期为六个月。新版本每年4月和10月发布。Ubuntu版本的支持寿命为18个月,但两年期长期支持( LTS )版本除外,该版本在桌面上更新3年,在服务器上更新5年。

在Ubuntu的早期历史中采用了基于时间的发布模型,以便为用户和原始设备制造商提供可预测性。这在一定程度上也是对Debian项目历史上一直存在的发布滞后的响应。虽然严格遵守明确的时间表有其优点,但也有一些明显的缺点。Ubuntu对按时发布的坚定承诺,以及在每次发布中交付所有计划功能的压力,造成了一种几乎没有任何东西被视为阻滞剂的心态。当技术问题出现在开发周期的后期时,它们有时会被忽略,并在发布后通过点更新来解决。Ubuntu版本管理策略的另一个问题是,不完整的软件往往被硬塞到LTS版本中,以避免不得不为预定折旧的更老、更稳定的软件提供长期支持。最具说明性的例子之一是8.04 LTS版本,其中包括一个功能有限的PulseAudio版本和一个Firefox beta版本。

正如2008年我在强调Ubuntu创始人马克·夏特沃思同步发布周期计划的问题时所写的那样,一个没有规律的基于时间的发布模型会破坏用户的信心,因为它会把发布变成时间序列中的任意一行。

requirent在他的博客条目中解决了一些类似的问题。他指出,Ubuntu将个别功能定位到特定版本的文化与成功的基于时间的版本管理的最佳实践背道而驰。他解释说,由于Canonical倾向于将员工薪资和奖金与他们是否及时交付指定的功能以冻结功能联系起来,这个问题变得更加严重。

如果用全新的东西替换工作的东西会发生什么?你能不能瞄准一个较晚的版本,并持续工作直到该版本的功能冻结?他写道。原来您可以 t。Ubuntu计划过程非常强调针对特定版本的功能。这正是基于时间的发布时间表不应该做的事情。

结果是跑步机的功能被破坏:稳定的功能被移除,被预期在下一个版本中完成的半成品组件所取代。这一点尤其成问题,因为它造成了对非常有希望的主要新功能的负面看法,但是在用户准备好之前就强加给他们。这种现象会使一般用户群体对变化的抵抗力恶化。用户将从对任何主要新功能持怀疑态度开始,因为他们已经学会期待用半成品替换工作部件。

问题是真的,但没有简单或明显的解决方案。在提供稳定性和竞争性功能改进的同时保持发布计划的有利可预测性是一个困难的平衡动作。残馀的建议指出,过渡到每月发行程序可以改善六个月周期的一些问题。

他的提议所描述的模型类似于Chrome和Firefox所使用的模型。将有通过分发包管理系统提供的单独的alpha、beta和release通道。alpha通道将用于开发人员,beta通道将用于用户测试,发布通道将是稳定的分布。

在alpha通道中推出之前,所有新的更改都必须经过代码审查和自动测试。随后,随着测试和发布渠道的成熟,改进将会源源不断。准备好用于发布通道的包将每月一起卷入一次。

测试要求将为进入阿尔法通道设置足够高的屏障,以确保阿尔法环境始终基本可用。主动开发将在这些渠道之外进行——开发人员可以使用个人包档案( PPA )向测试人员部署正在大量开发且尚未准备好alpha渠道的功能。

残余物曾在标准的Ubuntu开发环境下工作私奔经理,但今年早些时候离开加入Google。他的背景让他对Ubuntu的开发过程有了很深的了解。因此,他能够对他所设想的每月Ubuntu发布过程的基本机制提供相对详细的解释。

requal s建议的一个重要部分是LTS版本仍将按照当前的两年时间表继续。LTS版本的可用性将确保在可维护企业部署、商业软件堆栈认证和OEM采用方面仍然有一个稳定的目标。

这个提议为解决六个月周期的问题提供了一种独特的方法,但是它似乎并不适合Ubuntu更广泛的目标和目标受众。它带来了很多严重的挑战——尤其是对第三方软件开发人员。Linux发行版的全部要点是具有一组一致的已知良好的组件,这些组件被广泛地一起测试。像Arch或Gentoo这样的滚动发行版对于某些技术爱好者来说是很酷的,他们希望沿着流血的边缘跑,但是从质量保证的角度来看,它被设计打破了。

当你有一个复杂的依赖链,其中一些组件比其他组件前进得更快时,一些片段不可避免地会断裂。即使Canonical和核心Ubuntu开发社区做了工作来确保主存储库的内容在一个月到下一个月之间仍然正常运行,庞大的社区维护的宇宙存储库也不可能保持下去。当你有六个月的时间来调整一切,你的破碎可能性就会小得多。

每月Ubuntu发行方案的另一个问题是,用户之间的版本逐月分散,导致基础不太一致。这使得生态系统之外的软件很难保持兼容。如果有用户运行三四个不同的稳定月发行版(加上alpha和beta通道),第三方开发人员是否必须在PPAs中为每个版本测试和交付单独的软件包集?

我认为过渡到滚动版本模型将迫使许多主要的第三方应用程序开发人员将其支持限制在LTS版本上。独立的应用程序开发人员在为Ubuntu打包和测试他们的软件时将扮演不太积极的角色,而将此作为发行版社区的练习。

要正确看待这个问题,请考虑在Mozilla采用较短的开发周期后,Firefox附加社区中出现的问题。跟踪移动目标的困难导致了许多附加组件没有更新的情况。想象一下在整个Ubuntu应用程序生态系统的规模上同样的问题。这不是一幅漂亮的画。

滚动发布模型可能有解决这些问题的方法,使Ubuntu更加实用,但这似乎比当前的质量问题更大的挑战。在稳定的基于时间的发布的同时,为那些重视更像Arch的体验的好处的用户提供滚动发布跟踪可能是有用的,但是对于普通终端用户来说,这并不是一个好的发布模型。

鉴于Ubuntu在六个月周期内面临的问题中,基本缺乏纪律是一个主要因素,因此,转到每月周期是否真的能够解决Ubuntu当前版本管理策略的缺陷,这是值得商榷的。可能有更有效的方法来解决功能过早登陆的问题,而不必对开发过程进行如此彻底的改革。残余的建议很耐人寻味,但它在Ubuntu开发人员中似乎不太可能获得足够的吸引力而被采纳。Flickr列出图像:神龙


点赞: