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