社区集成验证入口标准对软件包或自研特性的引入、升降级、衰退等场景提出质量以及测试要求。使能社区新引入、升降级、衰退的软件包或自研特性具备基本的质量以及测试依据,提升社区的集成验证质量与测试效率。
软件包引入指导文档见openEuler社区软件包引入&版本基线纳入或变更指导
引入的软件包需要上游社区活跃,无法务风险。黑名单License禁止直接引入,需要sig-Compliance给出评审结果后引入。
社区License黑白名单、兼容表等信息可以通过貂蝉平台进行查询:https://compliance.openeuler.org
sig-Compliance仓库地址:https://gitee.com/openeuler/compliance
除需求指定的版本要求外,还应注意官网发布的版本计划,引入的版本是否还在维护,优先选择已发布的稳定版本。
软件包命名规范及patch命名规范详见openEuler packaging guidelines
请参阅本文章节 1.1.1. 合规性
-
根据《社区软件包贡献指南》创建私人构建工程,在私人工程中创建新目录,然后将源码包解压至相应目录进行编译,最后给出构建结果相应的截图作为编译验证举证
- 社区软件包贡献指南: https://openeuler.org/zh/community/contribution/detail.html#_3-3-3-贡献软件包
- 当前仅有基于OBS的构建指导,未来将基于统一构建平台EBS刷新相关指南
-
完成自编译测试,请参阅本文章节 2.1.1.自编译验证
- 建议给出软件包构建后上层依赖本地安装卸载截图举证,保证上层依赖安装卸载功能正常
- 通过dnf install/remove的方式安装卸载上层依赖包
- 完成引入包的安装卸载测试,请参阅本文章节 2.1.2.安装卸载验证
对于需要满足前向兼容的分支版本,建议在对应升降级issue中提供差异分析,对变更的接口、结构体、命令行和配置项进行列举,并确保上层调用软件不受影响
- 对比方法:通过对比源码包并查阅上游社区对应两个版本之间的提交记录的方式完成
- 对于所有版本分支,建议在对应升降级issue中提供升降级影响范围排查(主工程+EPOL工程),确保上层依赖包无编译、安装问题。
根据《社区软件包引入流程》指导文档创建私人构建工程,在对应OBS工程下找到对应软件包点击Branch Package在私人工程生成同名工程。并同时查询当前软件包提供的接口,再查询依赖这些接口的软件包清单(即该软件包的上层依赖)。将上层依赖包加入同一私人工程进行构建,最后提供升降级版本编译成功且上层依赖构建安装均无影响的截图举证(包括软件包完成升降级的举证)
-
软件包提供的接口查询
rpm -qp --provides xxx.rpm
-
挂载全量repo源
除[OS][everything][EPOL][source][update]外,还需要配好EPOL/source和update/source 以openEuler 22.03 LTS版本举例,/etc/yum.repos.d/openEuler.repo应配为
[OS] name=OS baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler [everything] name=everything baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler [EPOL] name=EPOL baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler [debuginfo] name=debuginfo baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler [source] name=source baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler [update] name=update baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/ enabled=1 gpgcheck=1 gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler [update-source] name=update baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/source/ enabled=1 gpgcheck=0 [EPOL-source] name=update baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/source/ enabled=1 gpgcheck=0
-
依赖所提供接口的软件包查询
dnf repoquery --whatrequires 'xxx'
- 完成安装卸载/自编译测试,请参阅本文章节 2.1.1.自编译验证以及章节 2.1.2.安装卸载验证
-
对于所有软件包退出的关联分支,必须在对应衰退issue中提供软件包退出影响范围排查(主工程+EPOL工程),确保上层依赖包无编译、安装问题。
排查方式请参阅章节 1.2.2.升降级影响排查
-
完成安装卸载/自编译测试,请参阅本文章节 2.1.1.自编译验证以及章节 2.1.2.安装卸载验证
对于上述流程的任意环节,软件包都需要满足下述测试要求
-
切换到对应软件包src.rpm文件所在目录
-
执行命令进行安装
rpm -ivh xxx.src.rpm
-
进入安装目录,安装依赖,并执行编译
cd WORK_DIR/rpmbuild/SPECS/ dnf install dnf-plugins-core rpmdevtools -y dnf builddep xxx.spec rpmbuild -ba xxx.spec
-
根据结果输出自编译测试报告
-
切换到章节 2.1.1.自编译验证中,执行rpmbuild后默认存放的目录
cd WORK_DIR/rpmbuild/RPMS/xxx/
-
安装RPM包
rpm -i xxx.rpm
-
卸载RPM包
rpm -e xxx
-
根据结果输出安装卸载测试报告
- 利用rpm -qpl xx.rpm查看有哪些命令(/usr/bin/下即为新增命令)可以使用命令行运行
- 通过man或命令的--help/-h参数找到所有可执行参数
- 根据命令参数清单输出测试报告
-
安装源码包中的所有二进制包
-
使用命令查找所有服务
rpm -ql xxx | grep "service\|socket\|target"
-
完成服务启动、停止、重载、启用、禁用测试
systemctl start/stop/reload/enable/disable servicename
一般start/stop可以直接执行,但如果服务启动前需要进行配置,建议先根据报错进行分析,最后可以参考软件包执行文档
-
根据服务清单输出测试报告
提供特性所涉及的软件包列表,与每个涉及软件包的功能说明
依据自研特性设计文档,分类列举特性对应的产品质量属性目标,涵盖下述7项内容