参与开源共建,你不可不知的贡献技巧
近期,在“战码先锋,PR征集令”活动中,上百位开发者们热情踊跃地参与了活动,以提PR的方式为OpenHarmony项目贡献自己的力量。但对于开源新手来说,刚开始接触开源项目,对项目结构和文档组织结构比较陌生,不知道如何下手。针对此类问题,我们邀请了OpenHarmony UI框架领域Committer Sun Fei分享一个不可不知的贡献技巧:从认领一个Issue开始,成为社区贡献者。
认领Issue是参与贡献较为简单的方式,尤其适用于刚参与开源项目,对贡献毫无头绪的开发者。
Issue介绍
了解Issue,可以从阅读Issue的标题开始。OpenHarmony Issue标题的普遍格式为:【系统】+【版本】+具体问题描述,读懂标题就能大致知道自己是否有兴趣来认领Issue。
开发者们还可以在自己擅长领域的相关仓库中找到Issue列表。在列表中,识别自己力所能及的问题并认领,再结合代码,一步步调试并解决问题,就能为OpenHarmony贡献力量。此处以arkui_ace_engine仓库为例,列出了一些较好解决的Issue。
认领Issue的流程
认领Issue,迈出贡献的第一步。你可以找到对应的Issue列表,选中感兴趣的Issue表单并打开详情仔细阅读。以任务#I5BE7X为例,题目为【ShowToastOptions的Bottom参数设置为Number类型时不生效,且文档和SDK不一致】,已经将问题描述的比较清楚,并将相关的系统问题截图反馈出来。
当你确认能够解决此问题时,跳转到页面最下方的对话框,输入你的想法和解决方案,点击“评论”。此时,你的评论将同步给管理员,也将得到他们的回复。如果解决方案得到管理员认可时,管理员将把Issue指派给你进行解决。
此时要做的和以往提PR贡献类似:Fork代码仓并下载到本地——修改代码——提交PR。除此之外,还需要在提交PR时与Issue关联。流程如下图所示:
在评论Issue和提交PR的同时,如果想实时掌握项目动态,可以点击仓库页面右上方的“watch”按钮。当自己关注的Issue或评论有新的反馈时,系统会及时推送消息到你的邮箱和手机。
提Issue,共建OpenHarmony开源社区
在参与开源项目的过程中,难免会遇到一些自己解决不了的问题。此时,提出Issue也相当于在为开源项目做贡献。在【战码先锋,PR征集令】活动中,现向开发者征集Issues,提交Issue数>10个的前50位开发者,即可获得战"码"先锋限量T恤一件。
代码仓范围
活动范围涵盖OpenHarmony主干仓、SIG仓、三方库,共计1000+个代码仓:
OpenHarmony 主库组织地址:
https://gitee.com/openharmony
OpenHarmony SIG 组织地址:
https://gitee.com/openharmony-sig
OpenHarmony 三方库组织地址:
https://gitee.com/openharmony-tpc
Issue提交流程
- 点击仓库中间上方的“+Issue”按钮(如下图)
- 填写标题:【OpenHarmony开源贡献者计划2022】+【系统】+【版本】+具体问题描述。
- 选择对应Issue分类:根据问题的具体类型,在新建Issue下方的栏目框内选择对应的Issue分类。目前主要分为:任务、需求、缺陷、安全问题四个大类。
- 然后在对话框内详细填写:任务描述、解决方案和任务来源。(优秀示例请见下图)
优秀Issue示例参考:
从认领/提交一个Issue开始,迈出贡献第一步,成为开源贡献达人。
Issue链接:
OpenHarmony 主库Issue 列表:
https://gitee.com/organizations/openharmony/Issues
OpenHarmony SIG Issue 列表:
https://gitee.com/organizations/openharmony-sig/Issues
OpenHarmony 三方库 Issue 列表:
https://gitee.com/organizations/openharmony-tpc/Issues
Issue任务列表
任务编号
I5BFFM
问题分类
Dialog
题目
监听横竖屏,当横竖屏状态变化时,自定义弹窗的Alignment一直不变
链接
https://gitee.com/openharmony/arkui_ace_engine/issues/I5BFFM?from=project-issue
任务编号
I5BE7X
问题分类
Toast
题目
ShowToastOptions的Bottom参数设置为Number类型时不生效,且文档和SDK不一致。
链接
https://gitee.com/openharmony/arkui_ace_engine/issues/I5BE7X?from=project-issue
任务编号
I52Y05
问题分类
Input
题目
InputType.Number类型Bug
链接
https://gitee.com/openharmony/arkui_ace_engine/issues/I52Y05?from=project-issue
任务编号
I52WE5
问题分类
Search
题目
【Seach组件】【RK3568】【概率-必现】Seach组件的PlaceholderFont属性的Size,Weight参数设置无法改变默认字体样式https://gitee.com/openharmony/arkui_ace_engine/issues/I52WE5?from=project-issue
链接
https://gitee.com/openharmony/arkui_ace_engine/issues/I5BFFM?from=project-issue
任务编号
I57XJN
问题分类
Slider
题目
Slider中设置滑块滑过的颜色(透明度较高),会透过滑块的颜色
链接
https://gitee.com/openharmony/arkui_ace_engine/issues/I57XJN?from=project-issue
任务编号
I59L1R
问题分类
List
题目
JS中List组件设置indexer="true"后,其内部的list-item-group不显示
链接
https://gitee.com/openharmony/arkui_ace_engine/issues/I59L1R?from=project-issue
任务编号
I58TWQ
问题分类
TextArea
题目
API9,JS工程FA模板,组件Textarea键盘输入内容发生改变触发Change事件获取参数内容不准确,真机一样效果
链接
https://gitee.com/openharmony/arkui_ace_engine/issues/I58TWQ?from=project-issue
任务编号
I5AZ02
问题分类
Wrap
题目
【Flex】【RK3568】【概率-必现】组件参数Wrap的参数值是Wrap或者WrapReverse时,不是多行排列而是超出父容器一行排列
链接
https://gitee.com/openharmony/arkui_ace_engine/issues/I5AZ02?from=project-issue
Git入门指导:
https:
一份给开源新手的保姆级开源百科:
https:
**
**![](https: