什么是 EUR
EUR(openEuler User Repo)是openEuler社区针对开发者推出的个人软件包托管平台,目的在于为开发者提供一个易用的软件包分发平台。
链接:https://eur.openeuler.openatom.cn/
为什么我们需要 EUR
在操作系统的世界,软件包是一等公民,软件包的丰富程度和是否易于分发,一定程度上决定了操作系统用户和开发者的使用体验,试想一下这种情况:
-
开发者希望自己尚在开发中的软件能够尽早的与openEuler社区持续的集成并发布给自己的用户进行测试;
-
在引入新包时,发现其多个依赖的软件包在社区中不存在,极大增加开发者的工作量;
-
用户期望在openEuler 20.03上使用/集成某个软件包的nightly或unstable版本。
针对上面的场景,在当前openEuler社区的基础设施中,还没有太好的开箱即用的方案。仔细分析上面的场景,我们发现社区存在着如何平衡软件包丰富和软件包质量的问题,在和社区TC委员讨论后,我们形成了下述的软件包分层的思路:
core packages: openEuler社区的开发者,sig组维护着的一组核心软件包
extra packages:类似EPOL或oepkgs等尚不满足社区质量要求,但仍然处于可用阶段的软件包
developer packages(EUR):完全由开发者或个人维护并保证质量的软件仓库,不需要遵循openEuler社区软件包的大部分约束和质量要求
我们需要一个什么样的 EUR
基于上述的软件包分层模型,不难看出,对于developer packages,社区需要一个简单轻量的对开发者友好的软件包分发平台。
按照以上描述,我们将这个平台命名为EUR(openEuler User Repo)。我们发现针对EUR的需求和copr的功能十分类似,在和copr的开发团队进行沟通后,我们发现copr社区的目标和我们较为一致,并且十分open,在提交一系列pr并得到快速合并后,我们打算使用copr构建我们第一版的EUR系统。
EUR的定位
我们将EUR定位为开发者的个人仓库,类似于ubuntu的PPA,fedora的COPR,这个服务专注于为开发者提供便利,EUR支持自动从pypi,rubygem(未来可以扩展更多的方式)打包软件包,支持通过webhook自动触发持续构建,后续还将支持一键将个人仓库的软件包引入社区。
谁适合使用EUR
如果您:
想快速从pypi/rubygem上打包软件包;
想为已发布的openEuler版本添加最新的软件包或变体版本;
想为还在开发中的软件提供持续与openEuler集成的仓库;
只是将某个软件打包成rpm包供自己使用;
在将软件包贡献到社区前,测试验证自己的spec文件是否正确。
我们都建议您使用EUR实现快速构建独立的软件包仓库,分发您的软件包。