OpenHarmony开发者论坛
标题:
OpenHarmony代码提交和合入流程介绍
[打印本页]
作者:
润开鸿_闻飞
时间:
2024-7-2 17:12
标题:
OpenHarmony代码提交和合入流程介绍
[md][itopen组织](
https://gitee.com/itopen
)
1、提供OpenHarmony优雅实用的小工具
2、手把手适配riscv + qemu + linux的三方库移植
3、未来计划riscv + qemu + ohos的三方库移植 + 小程序开发
4、一切拥抱开源,拥抱国产化
## 一、 签署开发者原创声明
您必须首先签署“开发者原创声明”,然后才能参与社区贡献。
点击[这里](
https://dco.openharmony.io/sign/Z2l0ZWUlMkZvcGVuX2hhcm1vbnk=
)进行设置
![image.png](
https://forums-obs.openharmony.c ... p5pjpp6g5qp1a11.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/1.png)
### 1.1 检查邮箱状态
选择Check DCO Status输入自己的邮箱,点击Submit可以看出你的邮箱是否已经签署
![image.png](
https://forums-obs.openharmony.c ... vze2rextmtvejeq.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/2.png)
Note:该邮箱要是你gitee中绑定的邮箱,同时是你本地代码git配置的时候设置的邮箱,他将是你合入代码的唯一凭证
### 1.2 签署DCO
选择Sign My DCO,输入自己的name(英文名/姓名拼音)、邮箱(鸿蒙代码合入唯一标识)、邮箱验证码,然后点击I AGREE TO SIGN
![image.png](
https://forums-obs.openharmony.c ... gtzhqtppoq8b4ht.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/3.png)
## 二、代码fork到提交
### 2.1 从OpenHarmony组织中fork对应仓到个人仓下
我们以liteos_m仓为例
![image.png](
https://forums-obs.openharmony.c ... od2z3ji5yi53834.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/4.png)
### 2.2 将fork过来的仓下载到本地
```shell
mkdir -p ${your_working_dir}
cd ${your_working_dir}
git clone $remote_link
```
### 2.3 文件权限和格式检查
代码提交必须在linux环境下进行,防止在windows环境下提交代码导致文件权限和格式的更改,在提交代码前必须进行权限和格式的检查,特别要注意 **脚本** 是否有可执行权限
执行 **ll** 命令,检查脚本文件执行权限,注意脚本是否有可执行权限 **x** 标识
```shell
# ll
-rwxr-xr-x 1 demo demo 5208 Aug 12 15:46 tracepoint.sh*
drwxr-xr-x 2 demo demo 4096 Aug 12 15:46 tracepoint_test/
-rwxr-xr-x 1 demo demo 1882 Aug 12 15:46 tracepointtestko.sh*
# 如果脚本无执行权限x,执行如下指令添加执行权限
chmod +x 文件名
```
查看和更改文件格式
```shell
vi 文件名
:set ff
# 若显示 fileformat=unix,则证明当前文件在linux环境下文件格式正确
# 若显示 fileformat=dos,则证明当前文件在linux环境下文件格式错误,执行如下命令进行更改,保存退出
:set ff=unix
```
### 2.4 单仓代码提交
```shell
git add .
git commit -sm "xxxx"
git push -u origin ${branch}
```
## 三、代码PR
### 3.1 issue获取
a> 从华为接口人处获取issue
b> 自行创建issue
### 3.2 issue与PR关联
参考[issue于pr关联](
https://gitee.com/openharmony/do ... r%E5%85%B3%E8%81%94
)
**将Issue与PR关联**
创建PR或编辑已有的PR时,描述框输入#+I+五位Issue ID,即可将Issue与PR关联。此方法适用于多个PR关联一个issue,其他方法均不行
#### 3.2.1 创建PR
Pull Requests--->新建Pull Request
![image.png](
https://forums-obs.openharmony.c ... satk9xxij22k4xt.png
"image.png")
![image.png](
https://forums-obs.openharmony.c ... rz94hw4lji9ysw0.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/5.png)
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/6.png)提交成功后的界面
![image.png](
https://forums-obs.openharmony.c ... 39hhemlzem9vav3.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/7.png)
#### 3.2.2 门禁检查
评论区输入start build后便开始门禁构建检查
![image.png](
https://forums-obs.openharmony.c ... zbdsqg6egel1lsg.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/8.png)
点击openharmony_ci里面的链接可查看检查结果
![image.png](
https://forums-obs.openharmony.c ... i5ihtphjz992x9e.png
"image.png")
![image.png](
https://forums-obs.openharmony.c ... upevutp3c38tpyz.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/9.png)
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/10.png)
点击通过/不通过可查看CodeCheck详细信息
![image.png](
https://forums-obs.openharmony.c ... tlvtt2uu2tu6zfu.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/11.png)
#### 3.2.3 静态检查
提交PR后缺陷扫描和规范扫描会出问题,里面如果有问题需要评估是否需要处理,不需要处理的需要说明原因
![image.png](
https://forums-obs.openharmony.c ... 8mfoazczu0mmgu0.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/12.png)
## 四、代码重新修改提交
在提交PR后发现代码有很多问题需要修改处理,特别注意此时按照如下操作
### 4.1 将自己gitee仓里代码下载到本地,和[2.2](#2.2 将fork过来的仓下载到本地)一致
```shell
mkdir -p ${your_working_dir}
cd ${your_working_dir}
git clone $remote_link
```
### 4.2 代码修改提交
代码修改后必须使用git commit --amend,这样能够保证我们比OpenHarmony的只提前一个commit,不会出现多个commit
```shell
# todo fix problem
git add .
git commit --amend # 此处特别注意必须使用 --amend
git push -f origin ${branch} # 此处必须加-f,否则提交不上去
```
![image.png](
https://forums-obs.openharmony.c ... p8hxb001t8ct66y.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/13.png)
#### 4.3 PR处的变更
当我们重新提交后,在我们PR的地方会有提示,我们需要重新提交start build触发门禁
![image.png](
https://forums-obs.openharmony.c ... yrgorrydszcvvrc.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/14.png)
## 五、边界和关闭PR
如果需要重新编辑PR,我们点击编辑
如果PR不想用了,我们需要进行关闭,否则不能重新创建PR
![image.png](
https://forums-obs.openharmony.c ... m7gv2dc9hrmovdk.png
"image.png")
![](../../img/OpenHarmony介绍/OpenHarmony基础能力/OpenHarmony的代码提交流程/15.png)
## 六、代码合入
如果功能已经实现,代码检查没问题、门禁触发OK,然后找仓管理员进行合入
[/md]
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5