OpenHarmony开发者论坛

标题: 【PREPARE工作准备】(五)OpenHarmony 代码上库 [打印本页]

作者: 诚迈_雨哥    时间: 2024-1-30 19:02
标题: 【PREPARE工作准备】(五)OpenHarmony 代码上库
[md]# 前言

到达这一步好比临门一脚,意义很大!您的代码被合入OpenHarmony平台,这是最后的一道关口,保证合入的是正确的,并且不会对系统造成意外。

# 一、 安装路线

* [1.避坑指南](#二、避坑指南)
* [2.登录gitee、拉取代码](#三、登录gitee、拉取代码)
* [3.在公仓创建ISSUE](#四、在公仓创建ISSUE)
* [4.上库](#五、上库)

# 二、避坑指南

## 1. 填写 ISSUE和PR 按照规范进行

* ISSUE和PR 填写不规范会被扣分,甚至不予合入;

## 2. 一个 ISSUE 与多个 PR 关联

* 一个 ISSUE 主题有多个 PR, 需要全部关联;
* 涉及多个仓,建议用字母顺序的第一个仓建立ISSUE, 并且按顺序提交PR;

## 3. 如果修改的仓特别多,存在编译依赖,而且不能一批上完,有什么要注意的?

* BUILD.gn 和 CMakefile最后提交,也就是让先提交的代码不参与编译;

## 4. 被合入之后要不要下载镜像测试一下?

* 上库的人众多,不能保证你修改的代码短期内不会被人修改回去,另外OpenHarmony服务器上的编译环境可能与你的环境有差异,有必要下载镜像测试一下。
* CI 日构建镜像链接: `http://ci.openharmony.cn/workbench/cicd/dailybuild/dailylist`

## 5. 功能性代码,只有被测试人员测试通过,并且其他问题不会溯源到你这里,才代表这一笔合入真正完成。

# 三、 登录gitee、拉取代码

没有注册请先注册gitee账号

## 1.1 打开 `www.gitee.com`官网登录个人账户

![1.png](https://forums-obs.openharmony.c ... abc2s1b71aocxvm.png "1.png")

![](./figures/1.png)

## 1.2 打开openharmony网页 `https://gitee.com/openharmony`

打开仓库页面

![a.PNG](https://forums-obs.openharmony.c ... rqb2yaj0u5wdxwx.png "a.PNG")

![](./figures/a.png)

## 1.3 选择要修改的仓库

点击1处仓库,在2处搜索仓库,输入所要搜索的仓库名,按回车键,点击要进入的仓库。

![2.png](https://forums-obs.openharmony.c ... asbbh6t11mj3wtm.png "2.png")

![](./figures/2.png)

## 1.4 从公仓forked到私仓

进入所要拉取的仓,点击forked将公共仓拷贝1份到私仓下。

![3.png](https://forums-obs.openharmony.c ... 418ev1q4114h8jb.png "3.png")

![](./figures/3.png)

## 1.5 查看私仓

回到个人主页,1处的watches,会显示已经拷贝的公共仓

![4.png](https://forums-obs.openharmony.c ... zavs5maqm05vnz8.png "4.png")

![](./figures/4.png)

## 1.6 进入私仓,复制代码链接

![](./figures/5.png)

进入私仓点击1处的克隆/下载,选择2处的SSH,点击3处的复制。

![5.png](https://forums-obs.openharmony.c ... 2jx6xpr6s1odl4g.png "5.png")

## 1.7 在虚拟机家目录新建拉取代码仓的文件夹,例如 fix,进入该文件夹后执行

1. 克隆私仓代码到本地

```
mkdir fix
cd fix
git clone git@gitee.com:XXXXXXX/drivers_framework.git
```

![](./figures/6.png)

![6.png](https://forums-obs.openharmony.c ... ycayaws8yaytpyx.png "6.png")

2. 修改这一部分相关代码
后续的修改在这里进行,主要使用比较工具(BeyondCompare)将修改的内容同步到这里,保证新修改的功能是正确的,并且不影响其他功能,就可以上传了。

# 四、在公仓创建ISSUE

上库代码必须保证是正确的,就可以进行上库操作。

## 4.1 在 `https://gitee.com/openharmony`找到要修改的公仓

## 4.2 点击进入在进入的公仓下创建ISSUE

记住ISSUE号,后续PR(Pull Requests)需要关联。

![8.png](https://forums-obs.openharmony.c ... 2ercjjx2obg88a0.png "8.png")

![](./figures/8.png)

## 4.3 描述新建的ISSUE

选择任务还是需求、缺陷还是安全问题。描述具体的操作,可以是中文也可以是英文,底下为具体的任务描述解决方案。

![9.png](https://forums-obs.openharmony.c ... dtozrmdnj7t5owr.png "9.png")

![](./figures/9.png)

# 五、上库

## 5.1 在本地拉取的代码目录执行下面命令进行上库

在拉取的fix文件夹下,再进入下一级文件夹

```shell
git status     查看状态确定修改是自己操作修改的文件【红色】
git add .      提交本地当前的变化
git status     查看状态是否已提交本地当前的变化【绿色】
git commit -sm "XXX"   描述修改了什么进行了什么操作使用英文
git push -f origin master 本地强制上传到私仓,把私仓覆盖。
```

## 5.2 私仓下创建PR

1. 填写PR信息
   在www.gitee.com私仓,在要提交的私仓下创建PR(Pull Requests) 描述关联相关的Issue, 原因(目的、解决问题),描述(做了什么,变更了什么),测试用例(有则描述,没有写无)。

   ![10.png](https://forums-obs.openharmony.c ... ql8lz588zg78kbl.png "10.png")
2. 选择将要合并的分支
   PR创建默认状态是未开启的,合并可以选择分支是gitee主干还是其他分支。默认为master主干。

   ![11.png](https://forums-obs.openharmony.c ... jzireekwwksxw7n.png "11.png")

## 5.3 评论 `start build`触发门禁,进行构建

在创建好的PR下,评论 `start build`触发门禁。

## 5.4 构建完成后,CodeCheck 错误需要接口人屏蔽的情况

不用修改代码,重新 `start build`, 直到CodeCheck错误消失

## 5.5 构建完成后,CodeCheck 错误需要修改的情况

修改完CodeCheck,需要重新提交一次,再触发 `start build`,二次修改提交指令列表:

```
git add .
git commit --amend -s
git push -f
```

## 5.6 非个人原因导致CI 门禁失败,重新 `start build`, 直到全部成功,全部成功如图

![12.png](https://forums-obs.openharmony.c ... 4426b4dujf42ve5.png "12.png")

![](./figures/12.png)

## 5.7 最终构建完成

构建完成,无 CodeCheck错误,找接口人代码检视review,没有问题他会点赞加分,最后找该仓负责人合入merge。

# 六、恭喜您

您已成为OpenHarmony贡献者一员了。今后阅读代码、开发代码、测试功能将充满您后续的职业生涯。OpenHarmony更大成就等您来缔造,不要停,加油!
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5