Koschei:减少错误并节省时间

科舍伊 是一个 持续集成服务 对于 RPM 包。 它可以帮助开发人员尽快修复错误。 它跟踪 Rawhide 中的包依赖项变化,这是最前沿的开发版本 Fedora. 依赖关系变化太大的包将被重建。 Koschei 记录了这些重建, 显示依赖变化和当前状态.

它尝试检测无法在 Rawhide 中从源代码 (FTBFS) 临时构建的软件包。 (临时构建是一种短期的临时构建 Fedora 不发送给用户。)为此,它从 Koji 中的最新可用源构建包, Fedora 构建系统。 但是,您不需要为此目的使用特殊的 Koji 客户端。

我们与红帽软件工程师 Mikolaj Izdebski 进行了交谈,以了解有关 Koschei 的更多信息。

创建这个项目是为了解决什么问题?

最初,创建 Koschei 是为了解决我的团队在包维护方面遇到的问题。 2012 年,我们只有两个人在维护 300 多个包裹 Fedora 和 Red Hat Enterprise Linux 7。这些软件包紧密相连; 一切都取决于其他一切。 每次我们更改某些内容时,都存在引入错误的高风险。

为了解决这个问题,我提出了一个概念证明:每晚重建几个包的脚本。 当我们在一天工作后早上回来时,如果出现问题,我们会收到一封电子邮件报告。 它运作良好,我们将它展示给其他团队并且他们喜欢它,所以我认为这个项目可能会成为一个普遍感兴趣的问题。 就这样开始了。

随着时间的推移,该项目是如何发展的?

2012 年,这个想法和概念验证出现了——一个非常简单的脚本。

2013 年,我们扩展到其他团队。

2014 年,我们从头开始重写并重新设计了架构。

2015年,推向生产,成为官方支持的服务 Fedora 基础设施。

2016 年,我们增加了对跟踪多个 Fedora 发布。

随着时间的推移,我们克服了硬件资源的问题。 Koschei 正在重建很多包,所以我们决定使用 Koji,因为它有很多通常不用的备用计算能力。 我们不想引入新的解决方案。 我们想使用现有的系统。

你的项目现在可以做什么?

到目前为止,它的工作方式是您转到 Web 界面,将您的包添加到包数据库,然后订阅 Koschei 通知。 目前支持 Fedora 只要。 Koschei 的用户应该观看通知,或者如果他们想修复一些错误,可以进入 Web 界面并查看红色的内容。

由于它是一个非常早期的测试工具,因此 Koschei 发现的错误应该在软件包到达 QE 之前由开发人员修复。 虽然它对 QE 本身来说不是一个有用的工具,但它确实有助于整体软件质量。

Koschei 服务于几组人。 一种是包维护者 Fedora 和 RHEL,通知他们软件包中的错误,以便他们修复它们。 其他是上游项目(与 Fedora) 谁可以在上游版本发生之前对其进行测试。 为了 example,当一个新的候选版本出来时, Fedora 维护者可以将他们的包更新到上游候选版本,通过 Koschei 测试这个最新版本 Fedora 在大量的包上,并向上游提供反馈。

Koschei 可以使用任何基于 RPM 的发行版。 无论您是否参与 中央操作系统 或者 openSUSE,你可以走了。 甚至像这样的系统 魔法师 理论上可以使用 Koschei,但如果他们不这样做,他们仍然可以从中受益。 我收到其他发行版的请求,要求将软件包添加到 Koschei。 为什么? 当一个包没有在 Mageia 中构建时,对于 exampleMageia 开发人员会去 Koschei 看看它是否失败 Fedora 也。 如果是这样,这是这两个发行版之间的常见错误,我们可以一起修复它们。 如果它适用于 Fedora,这是他们特有的错误。

该项目的下一步是什么?

我们想扩展 Koschei 的使用范围 Fedora. 目前,只有三分之一 Fedora的包被启用,主要是由于缺乏对 Koschei 的认识。 目标是最终默认启用所有包。 人们现在必须明确订阅通知,但我们希望每个 Fedora 默认情况下,包维护者会收到有关其包的通知。

最后但非常有用和更长期的想法:允许测试临时构建。 目前,要在 Koschei 中测试任何东西,人们必须进行真正的构建,在某些情况下,它并不适合。 一些用例是测试新版本(手动或通过上游版本监控自动)、测试重大更改等。

如果有人阅读可以帮助您解决一个问题,那会是什么?

传播这个词! 设置软件包并告诉其他人这样做。 讲述成功案例。 对于开发人员来说,没有比听到他们的产品如何有用或如何节省时间更好的奖励了。

我希望你能加入成功使用 Koschei 的团队,包括 Eclipse、PHP 或 Java。 如果您有任何问题,请通过电子邮件向他们提问 [email protected]. 如需添加包裹或产品,请联系 Michael Simacek 或 Mikolaj Izdebski。

以下是有关 Koschei 的一些其他参考资料: