贡献者指南
贡献者入职¶
CentOS Stream 是 Red Hat Enterprise Linux (RHEL) 开发的公开场所。这意味着为 CentOS Stream 贡献实际上就是为企业级产品做贡献——拥有许多关于稳定性、API 和 ABI 兼容性的承诺(请参阅下面的链接)——只有某些类型的贡献才有意义。
请参阅以下资源
Red Hat Enterprise Linux 9:应用程序兼容性指南
Red Hat Enterprise Linux 容器兼容性矩阵
在为 CentOS Stream RPM 做出贡献时,需要考虑所有这些。
帐户¶
要开始贡献,您需要登录到以下位置
工具和工作站设置¶
要使用 dist-git 仓库并检查构建系统中的工件或日志,您需要在工作站上安装 centpkg
- 如果您有 Fedora 工作站:
dnf install centpkg - 如果您有 CentOS Linux/Stream 或 RHEL 工作站,请启用 EPEL 仓库,然后:
dnf install centpkg
您做什么,RHEL 维护者负责什么¶
1.) 提交一个问题!¶
CentOS Stream 的缺陷和功能请求在 issues.redhat.com 中的 RHEL 项目下提交。
Component 是您想要修补的软件包的名称
描述您想要进行的更改。请务必仔细检查是否存在描述您正在看到的功能请求或问题的现有问题。
RHEL 开发人员使用问题与 RHEL QE 协调,与其他维护者安排工作,并跟踪开发里程碑的进度。RHEL 维护者需要在发布之前获得问题的 批准 才能合并您的更改,但不用担心,这是他们为您处理的事情。您只需要提交问题并引用它。
2.) 开发您的补丁¶
有两种贡献方式。Source Git 被希望直接接受贡献到源代码和软件包规范的开发者使用。
Dist-Git 是熟悉打包格式的 Fedora 打包人员。软件包规范存储在 git 中,实际源代码的存档位于 lookaside 中。
在您想要更改的 Gitlab 仓库中,单击主页上的 Fork 按钮以创建您自己的 fork。
3.) 在您的提交信息中引用您提交的问题¶
示例
git commit --signoff -m 'RHEL-1234 这是我的超棒补丁'
您的贡献期间的每个提交都必须在提交信息中引用问题。
一旦提交符合您的要求,将其推送到 Gitlab 中的您的 fork。
4.) 打开一个合并请求¶
打开合并请求最简单的方法是访问 gitlab.com/redhat/centos-stream 命名空间下的目标仓库,并在 Merge Requests 选项卡上单击 New Merge Request 按钮。
确保在 Source Branch 下选择您的 fork 和分支,并在 Target Branch 中选择 CentOS Stream 仓库和分支
5.) 与 RHEL 软件包维护者合作¶
RHEL 维护者将与您合作评估您的补丁,审查任何需要的更改,并可能合并您的请求。如果您的补丁被接受包含在 CentOS Stream 和 RHEL 中,RHEL 维护者将执行软件包构建,并且 RPM 将出现在构建系统中:kojihub.stream.centos.org。
发布工程、流水线和软件包状态¶
软件包 X 发生了什么?¶
软件包遵循从构建到发布的常规流程,所有这些都由构建系统中的标签管理。以下是重要的 koji 标签及其含义的列表
| Koji 标签 | 用途 |
|---|---|
c9s-gate |
软件包在构建后立即降落在该处 |
c9s-candidate |
这些软件包已通过基于 RHEL CI 测试和 CentOS Stream CI 测试 的门控 |
c9s-pending |
这些软件包已通过门控和预验证,这些软件包在标记此处时也会添加到构建根目录中 |
c9s-pending-signed |
这些软件包已由签名自动化签名,并准备好进行组合 |
c9s-build |
这是一个包含所有正确继承以生成构建根目录的标签 |
c9s-compose |
将从该标签中的软件包生成新的组合 |
c9s-released |
发布到镜像的软件包被标记到这里,一旦它们在 Stream 镜像上可见 |
(请注意,c9s 部分也可以是 CentOS Stream 10 的 c10s。)
例如,如果您看到一个软件包列在 -gate 标签中但不在 -pending 标签中,您知道它尚未通过测试,并且在这些测试修复之前不会进入组合。
Pungi 和组合配置¶
如果您想更改整个发行版本身,或组合生成的工件,您需要参考 RHEL 项目中的 Distribution 组件。请提交一个描述您想要进行的更改的适当问题。
如果您熟悉 Pungi,您会识别 gitlab.com/redhat/centos-stream/release-engineering/pungi-centos 中的配置。
这些配置遵循 Fork/Merge-Request 工作流程,需要 CentOS Stream 发布工程师的审查才能合并。
Comps¶
Comps 控制软件包组和仓库拆分配置。这里的更改很可能需要 RHEL 项目中的 Distribution 组件问题。
gitlab.com/redhat/centos-stream/release-engineering/comps
组合和发布¶
软件包被构建成一个组合,每周多次发生,由 Releng Jenkins 触发。结果可以在 composes.stream.centos.org 上找到
它们的发生频率在 Jenkins 配置文件中定义 - 请参阅 c9s 配置 例如。
完成组合后,它将由 testing Jenkins 实例 进行测试。您可以贡献 compose 测试 通过 CentOS Integration SIG。
这些测试的结果经过手动审查,然后由 Releng 推送到 mirror.stream.centos.org 上的镜像。这目前是一个手动过程,通常每周发生一次。