怎样高雅地参加开源奉献,向尖端开源项目提交 PR(Pull Request)。战“码”前锋直播间第八期围绕“OpenAtom OpenHarmony(以下简称“OpenHarmony”)开源奉献”话题,邀请了深圳开鸿数字工业发展有限公司(以下简称“深开鸿”)资深OS结构开发工程师巴延兴为咱们带来《怎样多方位参加OpenHarmony开源奉献》主题共享。

本次共享首要介绍了巴延兴带领深开鸿开源共建团队在主导/共建16个SIG、奉献超越50万行代码的OpenHarmony “战码”经验,在根技能、笔直范畴、生态扩展等多方位参加开源奉献的实践与考虑,以及辅助东西SIG和内核SIG两大板块的奉献方法、价值与用处,期望有更多开发者参加开源共建。

参加战“码”前锋,PR征集令!感兴趣的开发者能够在Gitee的OpenHarmony代码仓提交PR参加活动,和全球开发者同台竞技,比拼技艺,为OpenHarmony生态建造奉献力气。

怎样经过SIG进行开源奉献

什么是SIG?

SIG全称Special Interest Group,即特别兴趣小组,专注一个特定的技能范畴,担任该范畴技能竞争力剖析和关键技能辨认及决议计划,引领技能演进的方向,也是共建单位及个人开发者进行开源奉献的基本单位。

经过SIG组参加开源共建的两种方法

一、参加到已有SIG的共建

参加者需求注册自己的官方账号,签订协议后,才能经过认领SIG leader发布的需求来接受共建使命。领完需求后是规范的开发进程,包含需求剖析、功用规划、代码开发、功用测验、功用交给等步骤;使命开发完结后,需求提交PR,将代码、文档等提交到社区,完结终究的开源奉献。

二、主导SIG组

1、建立SIG

选取共建技能范畴并给出规划 → 向PMC例会提交议题并经过评定 → 经过架构SIG例会评估后建立新的代码仓。

2、孵化SIG

发动需求弄清、特性梳理计划规划、代码开发、单元测验、功用测验等流程,完结SIG项目开发 → 对照Check List,完结法务、门禁、OAT等问题自检。

3、结业SIG

向架构SIG请求新SIG结业 → 向QA SIG会请求新SIG准出 → 库房owner移仓。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

辅助东西SIG实践经验共享

建立辅助东西SIG组的主旨是“下降重复劳动,进步作业效率,让专业的人做专业的事”。NAPI结构代码生成东西、IDL转化东西和开机动画东西都是围绕着这个主旨开发而成的。

一、NAPI结构代码生成东西

NAPI是规范设备上的JS API完成方法,完成了JS言语到结构C++层的调用,在OpenHarmony体系中,APP调用是调用JS言语的接口函数,终究详细功用是用C++言语来完成。

NAPI存在三个开发痛点需求处理:

1、NAPI结构代码的重复率高:面对不同的JS接口,开发者要完成相似度高的结构代码。

2、NAPI结构的学习成本高:结构机制触及JavaScript、C++言语,以及编译脚本东西。

3、NAPI 需求量大:OpenHarmony体系功用均是经过NAPI接口表现,现在现已支撑1万多个NAPI接口。

针对以上三个痛点,NAPI结构代码生成东西将C++ 、JavaScript接口类型转化等代码抽取公共模块,而且主动生成编译脚本。开发者运用东西主动生成NAPI结构代码,只需完成业务代码调用即可,避免了很多重复的作业。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

二、IDL转化东西

OpenHarmony运用的是HDF驱动结构,驱动相应的硬件信息需求IDL文件来描绘。

IDL存在两大开发痛点需求处理:

1 、HDI开发难度大:HDI开发者比较了解C言语,习气在.h文件中界说HDI接口,而关于IDL文件结构、语法并不是很了解,学习曲线相对较长。

2、HDI作业量大:HDI接口是驱动对外供给服务的必要条件,各个子体系均触及,故HDI作业量较大。

针对以上痛点,深开鸿规划的IDL转化东西将开发者了解的.h文件主动转化为idl文件,开发者只需求在头文件中界说自己的接口即可,东西主动完成.h头文件到IDL文件转化,开发者不需求关怀IDL语法,大大下降作业量。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

三、开机动画东西

开机动画东西是咱们早期针对OpenHarmony2.0版别存在的问题做的一个辅助东西。

OpenHarmony2.0版别在开机动画方面有两个问题:

1、OpenHarmony2.0版别开机动画只支撑raw文件,不利于开发者在发行版和定制版进行直接展示。

2、由于产品的形态不一,关于不同的产品,其开机动画的需求也是不同。

经过开机动画辅助东西使以上两个问题得到了更好地处理:

1、开机动画东西支撑图片集或者 mp4等多种文件生成开机动画,且支撑设置开机动画的分辨率等操作,愈加便利开机动画的制造。

2、做到一键生成开机动画文件,而且支撑在 windows渠道上查看其效果,不需求每次都去烧录到开发板上,大大下降了演示的作业量。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

四、辅助东西SIG共建方向

现在深开鸿主导的辅助东西SIG组首要供给给开发者文档资料、测验用例和东西开发3个共建方向。

如果你拿手文档编撰,那么能够参加到社区的文档奉献,撰写文档能够不需求有很强的开发才能。

如果你是测验人员,拿手主动化测验,那么经过测验用例也能够参加到社区的建造。

另外也欢迎各位开发者参加到各种东西的建造中来。SIG组的东西能够是独立的东西,也能够经过插件的方法集成到IDE开发软件中。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

五、参加辅助东西SIG奉献的详细方法

1、提交问题单。无论是文档的bug、测验用例的bug、还是代码的bug,提交了问题单便是对社区做了奉献,那么辅助东西SIG组怎样提交问题单呢?

首先找到对应的库房并登录,例如gitee.com/openharmony…

提交进程中要注意格式要求,必须写清楚提单进程中问题呈现的条件,预期的成果和过错的成果,问题的定位信息等,有了这些信息后,收取这个问题单的开发也便利定位问题。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

登录找到想要认领的问题单的页面,在谈论中表达出想要接受这个需求的意愿,SIG的担任人会定期盯梢这些问题单并做出答复。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

2、认领需求后进行开发流程

领到一个需求后要进行正常的开发,核心分为以下6步:

①一般开发者现已装备好装备码云账号、个人邮箱和签署DCO(签署DCO首要是确保奉献者原创),有了这些前置作业今后,咱们能够操作代码库房进行需求的开发。

②Fork代码到私仓。

③克隆fork出来的库房到自己的主机上。

④在本地开发代码开发和功用验证。

⑤开发结束后向官方原始仓提交Pull Request,提交代码后会触发门禁等常规查看。

⑥如果这个sig组是你自己主导的,那么作为Committer,需求评定他人提交的代码,如果只是参加共建,提交完代码经过门禁就完结使命。

内核SIG参加共建经验

关于深开鸿内核SIG共建经验,下面将以文件体系的优化为实例向咱们共享详细的奉献进程。

内核共建的方向比较多,体系架构有各个硬件渠道的移植,内核模块中功耗办理、时刻办理、使命调度、中断办理、文件体系、三方库相关的内核shell命令移植,现在深开鸿首要在文件体系和第三方库方面做社区共建。深开鸿期望将来打开更多方向的优化作业,并向外供给详细场景下内核体系移植计划。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

littlefs文件体系的共建进程:

1、了解社区需求,社区现在对littlefs文件体系随机读写的速度不满意。

2、了解到社区文件体系对随机读写需求的前提下,对littlefs随机读写IO功能瓶颈进行剖析,找到能优化的代码点,选用了“以空间换时刻”的思路。

3、选用逐步优化的思路,清晰计划后和社区担任人交流,得到了社区担任人认可后,打开详细的代码作业。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

由于文件体系优化是一个比较复杂的进程,下面共享了一套社区共建流程。

1、从社区认领需求后,经过微信群的方法和社区担任人交流并弄清需求。

2、从技能上剖析需求并拟定优化计划,再次和社区担任人交流,做计划谈论并得到认可。

3、详细使命开发,包含使命拆解、编码完成、测验,最后提交PR。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

针对littlefs文件体系优化进程中修正触及到的相关文件,包含littlefs文件代码,也便是点c和点h文件;也有编译相关的文件,即.gn文件gni文件,之所以修正编译相关的文件是为了测验littlefs的优化后的代码,咱们团队增加了相关的测验用例,这些测验用例会调用内核文件体系的API,触及到这些编译相关的文件。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

littlefs第三方库代码完结后提交到社区的进程

1、littlefs第三方库repository路径,并fork到用户库房。

2、git clone用户仓到本地。

3、提交修正到用户仓。

4、点击提交PR。

5、填写PR单,PR单页需求依照既定模板填写,写清楚原始需求,怎样处理这个问题,怎样处理这个问题以及详细修正点。

6、在谈论中增加“start build”点亮PR。这里有一个特别注意的点,需求在谈论中是手动填写“start build”这2个英文单词,目的是触发后续的门禁检测。这是OpenHarmony社区比较特别的一点,其它开源项目中所没有的。

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?
30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?
30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?

欢迎感兴趣的开发者多方位参加OpenHarmony开源奉献,成为OpenHarmony Contributor,也欢迎各位提出名贵的定见,为OpenHarmony奉献一份力气。

参加战“码”前锋,PR 征集令!在Gitee的OpenHarmony代码仓提交PR参加活动,和全球的开发者一同共建OpenHarmony的昌盛生态!

文章中触及的链接汇总:

NAPI结构代码生成东西代码仓地址:

gitee.com/openharmony…

IDL转化东西代码仓地址:

gitee.com/openharmony…

开机动画东西代码仓地址:

gitee.com/openharmony…

转发原文到朋友圈,私信官方小助手,即可获取讲师演讲PPT

原文链接:30分钟成为Contributor|怎样多方位参加OpenHarmony开源奉献? (qq.com)

30分钟成为Contributor|如何多方位参与OpenHarmony开源贡献?