Zephyr代码提交说明
本文基于zephyr的一次提交说明在zephyr代码过程中遇到的问题和注意事项。
第一次向zephyr提交代码,虽然参考了zephyr上的贡献指南,但还是犯不少错,好在有zephyr项目组的成员热心的帮助,让提交可以merge入master。这里以https://github.com/zephyrproject-rtos/zephyr/pull/9616 为例记录如何配置和提交代码。
配置Signed-off-by 链接到标题
下面配置Signed-off-by的将在commit -s的时候,以*Frank Li <lgl88911@163.com>*出现在commit信息的最后
git config --global user.name "Frank Li"
git config --global user.email "lgl88911@163.com"
提交步骤 链接到标题
Step1: 在github上fork zephyr 链接到标题
Step2: 将fork后的zephyr clone到本地 链接到标题
cd ~/work/project/
git clone https://github.com/lgl88911/zephyr
Step3: 添加upstream repo 链接到标题
cd ./zephyr
git remote add upstream https://github.com/zephyrproject-rtos/zephyr.git
Step4: 基于master创建issue分支 链接到标题
git checkout master
git checkout -b fix_enc28j60_rev
Step5: 修改代码 链接到标题
Step6: 提交代码 链接到标题
git add .
git commit -s
Step7: 推送分支到远端 链接到标题
git push origin fix_enc28j60_rev
Step8: 在github上选择fix_enc28j60_rev分支点击Compare & pull request 链接到标题
Merge PR 链接到标题
pull request后github会调用第三方插件进行CI,你可以去pr页面检查CI/Review结果,一共三项如下
首先点击第二项Detail查看CI是否有提示不正常,如果有的话请进行修改,提示如下:
当CI通过后,文件的reviewer会确认这个修改是否可以merge,如果还需要修改,reviewer会进行说明你在根据说明进行修改。reviewer确认可以merge后第一项Review required会变绿成为Pass。
当前面两项都Pass后,第三项任然是merge block,这个时候已经不用你在做任何事情了,zephyr的项目管理者会决定何时将你的branch merge入master。
commit信息注意点 链接到标题
一个典型的commit信息如下:
drivers: eth: enc28j60: Fix read error when ERDPT < ERXRDPT
After read first packet and if ERDPT < ERXRDPT,cause read Rx FIFO error.
The fix is to set ERDPT properly before reading next packet.
Fixed #9537
Signed-off-by: Frank Li <lgl88911@163.com>
pr时需要合并commit 链接到标题
如果一个pr中包含多个commit需要将commit合并,合并方法见git使用杂记-commit合并
Signed-off-by 链接到标题
- Signed-off-by的user name一定要是First Last才会通过CI,我之前使用的是*lgl88911 <lgl88911@163.com>*会被报告UC2 Signed-off-by: must have a full name
- 开始设置user name错误后,通过再配置~/.gitconfig的name字段再提交并不能修改到author email,通过下面方法进行修改
git commit --amend --author="Frank Li <lgl88911@163.com>"
修改commit信息后不能push分支 链接到标题
必须进行强制push
git push origin fix_enc28j60_rev --force
commit信息每行有长度限制 链接到标题
commit信息中每行不能超过72个字符,否则会提示UC4 Line exceeds max length。 如果commit信息比较多请换行。
后记 链接到标题
如果你有zephyr相关的commit code遇到的问题和解决方法请添加到评论区。我将进行收集整理,并共享,谢谢。
参考 链接到标题
https://docs.zephyrproject.org/latest/contribute/contribute_guidelines.html#contribution-workflow https://lgl88911.pages.dev/zephyr/zephyr%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97/