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