openEuler用户软件仓(EUR)介绍

waaagh2023-02-21用户软件仓库rpminfrastructureEUR

什么是 EUR

EUR(openEuler User Repo)是openEuler社区针对开发者推出的个人软件包托管平台,目的在于为开发者提供一个易用的软件包分发平台

为什么我们需要 EUR

在操作系统的世界,软件包是一等公民,软件包的丰富程度和是否易于分发,一定程度上决定了操作系统用户和开发者的使用体验,试想:

  • 开发者尚在开发中的软件,期望尽早的与openEuler社区持续的集成并发布给自己的用户进行测试
  • 在引入新包时,发现其多个依赖的软件包在社区也不存在,极大增加开发者的工作量
  • 用户期望在openEuler 20.03上使用/集成某个软件包的nightly或unstable版本

针对上面的场景,在当前openEuler社区的基础设施中,还没有太好的开箱即用的方案

仔细分析上面的场景,我们发现社区存在着如何平衡软件包丰富和软件包质量的问题,在和社区TC委员讨论后,我们形成了下述的软件包分层的思路:

  • core packages: openEuler社区的开发者,sig组维护着的一组核心软件包
  • extra packages:类似EPOL或oepkgs等尚不满足社区质量要求,但仍然处于可用阶段的软件包
  • developer packages(EUR):完全由开发者或个人维护并保证质量的软件仓库,不需要遵循openEuler社区软件包的大部分约束和质量要求

我们需要一个什么样的 EUR

基于上述的软件包分层模型,不难看出,对于developer packages,社区需要一个 简单轻量的对开发者友好的软件包分发平台

  • 对开发者和上游生态友好
  • 具备为openEuler版本构建软件包的能力
  • 支持用户独立发布软件包
  • 和社区版本相对独立

按照以上描述,我们将这个平台命名为EUR(openEuler User Repo),并且发现针对EUR的需求和copr的功能十分类似,在和copr的开发团队进行沟通后,我们发现copr社区的目标和我们较为一致,并且十分open,在提交一系列pr并得到快速合并后,我们打算使用copr构建我们第一版的EUR系统

EUR的定位

我们将EUR定位为开发者的个人仓库,类似于ubuntu的PPA,fedora的COPR,这个服务专注于为开发者提供便利,EUR支持自动从pypi,rubygem(未来可以扩展更多的方式)打包软件包,支持通过webhook自动触发持续构建,后续还将支持一键将个人仓库的软件包引入社区

谁适合使用EUR

如果您:

  1. 想快速从pypi/rubygem上打包软件包
  2. 想为已发布的openEuler版本添加最新的软件包或变体版本(例如最近在EUR上提供的i3wm for openEuler 仓库
  3. 想为还在开发中的软件提供持续与openEuler集成的仓库
  4. 只是将某个软件打包成rpm包供自己使用
  5. 在将软件包贡献到社区前,测试验证自己的spec文件是否正确

我们都建议您使用EUR,实现快速构建独立的软件包仓库,分发您的软件包


【免责声明】本文仅代表作者本人观点,与本网站无关。本网站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文仅供读者参考,由此产生的所有法律责任均由读者本人承担。