参与开源共建,你不可不知的贡献技巧
近期,在“战码先锋,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 主库组织地址:
OpenHarmony SIG 组织地址:
https://gitee.com/openharmony-sig
OpenHarmony 三方库组织地址:
https://gitee.com/openharmony-tpc
Issue 提交流程
1. 点击仓库中间上方的“+Issue”按钮(如下图)
2. 填写标题:【OpenHarmony 开源贡献者计划 2022】+【系统】+【版本】+具体问题描述。
3. 选择对应 Issue 分类:根据问题的具体类型,在新建 Issue 下方的栏目框内选择对应的 Issue 分类。目前主要分为:任务、需求、缺陷、安全问题四个大类。
4. 然后在对话框内详细填写:任务描述、解决方案和任务来源。(优秀示例请见下图)
优秀 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://backlog.com/git-tutorial/cn/
一份给开源新手的保姆级开源百科:
https://oschina.gitee.io/opensource-guide/
评论