From e448e0ca3066c18cbd3eeebe5872b03f24735942 Mon Sep 17 00:00:00 2001 From: cf-zhao Date: Thu, 28 Mar 2024 11:22:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=8F=82=E4=B8=8E=E8=B4=A1?= =?UTF-8?q?=E7=8C=AE=E6=8C=87=E5=AF=BC=EF=BC=8C=E4=BF=AE=E6=94=B9=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...41\347\214\256\346\214\207\345\257\274.md" | 40 ++++++++++++++----- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git "a/LLVM Parallel Universe Project/\345\217\202\344\270\216\350\264\241\347\214\256\346\214\207\345\257\274.md" "b/LLVM Parallel Universe Project/\345\217\202\344\270\216\350\264\241\347\214\256\346\214\207\345\257\274.md" index 39b14d3..f48ade3 100644 --- "a/LLVM Parallel Universe Project/\345\217\202\344\270\216\350\264\241\347\214\256\346\214\207\345\257\274.md" +++ "b/LLVM Parallel Universe Project/\345\217\202\344\270\216\350\264\241\347\214\256\346\214\207\345\257\274.md" @@ -2,22 +2,41 @@ 首先,欢迎您关注并有意愿参与贡献,相信我们正在一起做一项伟大事业! ### 1、范围介绍 -本文主要涉及兼容性问题修复工作的原则和指导,工程构建、问题列表跟踪等指导请参考[LLVM平行宇宙计划共享文档](https://docs.qq.com/doc/DZG9yRHJ3WlNvUGV2)。 +本文主要涉及兼容性问题修复工作的原则和指导。其他如工程构建、问题列表跟踪等请参考[LLVM平行宇宙计划共享文档](https://docs.qq.com/doc/DZG9yRHJ3WlNvUGV2)。 ### 1、软件包构建问题修复原则 -总体上,问题修复秉持Upstream first原则,具体见下图: +总体上,问题修复秉持**Upstream first**原则,主要原因如下: +* openEuler作为软件包的下游社区,测试能力有限,很难完成对软件包源码修改的全面测试。 +* 在上游社区修改问题是在源头解决问题,可以避免在openEuler的后续版本多次修改。 +* 在上游社区修改问题可以帮助提升开发者的能力和影响力。 + +修复流程具体见下图: ```mermaid flowchart TD A[分析错误原因] --> B{源码问题} B -->|否| D[修改spec脚本] B -->|是| C{上游社区是否解决} - D -->D1[提交PR到oE] --> D2[检视&合入] --> D3[结束] - C -->|是| E1[回合相应补丁到oE]--> E2[结束] + D -->D1[提交PR到oE--草稿状态]--> D2[平行宇宙committer检视并获得两个lgtm] -->D3[取消草稿状态] + D3--> D4[软件包commiter检视&合入] --> D5[结束] + C -->|是| E1[回合到oE --草稿状态]-->E2[双重检视&合入] --> E3[结束] C -->|否| F1[提交PR到中间仓] - F1 --> F2[检视] --> F3[提交PR到上游社区] - F3 --> F4[回合到oE] --> F5[结束] + F1 --> F2[平行宇宙committer检视并获得两个lgtm] --> F3[提交PR到上游社区] + F3 --> F4[回合到oE--草稿状态] --> F5[双重检视&合入]--> F6[结束] ``` +注: +双重检视&合入是指:【平行宇宙committer检视并获得两个lgtm】->【取消草稿状态】->【软件包commiter检视&合入】 + +### 1.1、灵活处理项 +由于上游社区的PR合入周期比较长,可以有如下处理方法: +* 加速上游社区合入: + * 及时跟踪上游PR的状态,必要时可以ping committer检视; + * 可以请求openEuler相关软件包的commiter协助在上游社区检视,甚至帮助合入; +* 如果软件包未非关键包 + * 可以暂时使用GCC构建的软件包替换,等待上游社区合入。 +* 如果软件包是关键包 + * 可以基于中间仓的版本构建,但需要尽量减少这种情况的数量。 + ### 2、PR提交规范 首先,在openEuler社区请遵守[社区PR提交指南](https://gitee.com/openeuler/community/blob/master/zh/contributors/pull-request.md),在软件包上游社区请遵守相应上游社区的PR提交规范。 此外,由于LLVM平行宇宙相关的PR通常涉及编译构建问题,故增加如下规则: @@ -50,13 +69,16 @@ git format-patch HEAD^^ // 基于最近两个commit做patch #### 2.2 PR描述 * 描述尽量清晰,包含为什么需要合入这个PR及希望检视人员额外了解的信息。至少包含两部分: * 提交PR的背景。可以写基于[这个oEEP](https://gitee.com/openeuler/TC/blob/master/oEEP/oEEP-0003%20LLVM%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99%E8%AE%A1%E5%88%92--%E5%9F%BA%E4%BA%8ELLVM%E6%8A%80%E6%9C%AF%E6%A0%88%E6%9E%84%E5%BB%BAoE%E8%BD%AF%E4%BB%B6%E5%8C%85.md),该PR的主要目标是使得当前软件包同时支持LLVM构建 - * 不影响当前的构建行为,并贴上自验证链接。 + * 描述PR要解决的问题。如果一两句话无法描述清楚,建议提交issue描述。 + * 不影响当前的构建行为。 * 如果该PR是从上游社区backport回来的,**请在PR描述上写明上游社区的issue链接(如果有的话)和PR链接。** +参考:https://gitee.com/src-openeuler/dhcp/pulls/110 + #### 2.3 代码检视 -* 首先,提交PR时,首先在PR题目上加上`[WIP]`,即告知maintainer/committer当前PR尚处于草稿状态。 +* 首先,提交PR时,设置改PR为草稿状态,即告知maintainer/committer当前PR尚不具备合入条件。 * 然后,在LLVM平行宇宙微信群请求review; -* 如果已获得两个或两个以上[LLVM平行宇宙项目commiters](https://gitee.com/cf-zhao/compiler-docs/blob/master/LLVM%20Parallel%20Universe%20Project/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%AF%BC.md#4llvm%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99%E9%A1%B9%E7%9B%AEcommiters%E6%8C%81%E7%BB%AD%E5%A2%9E%E5%8A%A0%E4%B8%AD)的`lgtm`,则可以将PR题目中的`[WIP]`删去。 +* 如果已获得两个或两个以上[LLVM平行宇宙项目commiters](https://gitee.com/cf-zhao/compiler-docs/blob/master/LLVM%20Parallel%20Universe%20Project/%E5%8F%82%E4%B8%8E%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%AF%BC.md#4llvm%E5%B9%B3%E8%A1%8C%E5%AE%87%E5%AE%99%E9%A1%B9%E7%9B%AEcommiters%E6%8C%81%E7%BB%AD%E5%A2%9E%E5%8A%A0%E4%B8%AD)的`lgtm`,则可以取消PR的草稿状态。 * 最后,寻求相关软件包的maintainer/committer检视并合入。 ### 3、问题修复典型方法建议 -- Gitee