新手如何快速参与开源项目

前言

开源这件工作在软件开发领域一直是一个高频话题,咱们工作中不管是使用到的东西仍是第三方库都离不开开源的支撑。

近期由于工作的原因,我需求常常和 Apache Pulsar 社区交流,一起也会将日常碰到的问题反应给社区,包含一些 bug ,一些我能修的也是顺带就提了一些 PR

之前或多或少我也参加过其他的开源社区,但和现在的仍是有些许的不同:

  • 曾经我更多的是个人开源项目,偶尔也会有其他开发者向我的库房奉献代码。
  • 也参加过其他个人作者或者是社区性质的项目,但流程上没有那么正规或者是标准

简略来说便是曾经便是小打小闹,Pulsar 毕竟是 Apache 社区的顶级项目,参加的整个流程要求也会比较复杂,当然学到的常识也会更多。

新手如何快速参与开源项目

新手如何快速参与开源项目
这半年时刻大大小小提了十几个 PR ,也逐渐捋清楚了一些上手的方法和套路,所以假如你也想参加开源,但苦于不知道怎么入门,看完后希望对你有所帮助。

为什么参加开源

首先仍是来聊聊参加开源的优点,了解之后或许会让你有路转粉。

首先最明显的一点便是让你对奉献的这个项目更加深入的了解,咱们常常都在面试的时候被问到对 XX 框架的了解程度,哪怕你在简历里写的不着边际也没有是这个项目 Contributor 更具有说服力。

其次是交流交流才干也会得到锻炼,开源社区往往都是以 github issue/PR,或者是 Mailing List 的方法交流交流,这样的交流方法和咱们常用的微信、QQ 这类及时通讯东西有着本质的区别。

往往需求咱们有了镇定的考虑加上明晰的描绘才会将自己的观点发布出去,这样不自觉的就会养成自己的总结才干,这个才干对于内容构思内容工作者来说非常重要。

还有一个更明显的优点便是对个人的才干背书,咱们常说的 show me the code,而 GitHub 便是最好的方法。

当你是某个知名开源项目的 Contributor 乃至是 Committer/PMC 就已经满足证明自己的才干了。

怎么参加

怎么参加呢,其实也很简略,不外乎有以下几种方法(由易到难):

  • 一些 typo 类的修正。
  • 答复社区中用户的问题。
  • 使用过程中遇到 bug,直接反应,有兴趣的话最好是自己能修正。
  • 修正现有 issue 列表中未解决的 bug
  • 软件不具备自己需求的功用时提交 feature 提案并完成。

不管是哪种方法我的建议是在预备奉献之前都应该先看看官方供给的奉献攻略,通常在官网就能查看。

即便是最简略的修正 typo,由于越是专业的项目每个 PR 的兼并都是严谨的,提早了解后能够避免犯一些根本过错然后影响积极性。

这儿我以 Pulsar 为例:

新手如何快速参与开源项目
官网有着详细的奉献攻略,包含环境建立、代码约好、PR/git commit 语义等各种标准。

这儿我要点着重 PR 的语义,一个好的 PR 标准更容易引起社区成员的注意,毕竟咱们每一次提交都需求 Committer 的同意才干兼并。

新手如何快速参与开源项目
仍是以 Pulsar 为例,在提交 PR 前一定得先看看这儿的标准要求,否则很或许第一步就会吃瘪。

或许遇到的问题

下面讲讲奉献过程中或许会碰到的问题。

在上面讲到的难度排序中将修正个人 issue 排在了其他 issue 之前了,这是由于往往对自己提交的 bug 更了解,而社区其他人反应的问题大概率会被老手招领。

加上自己也不了解,或许在自己研讨复现的过程中就把自己劝退了。

招领 issue

这儿还有个小技巧,当咱们预备修正一个不是自己提交的 issue 时,最好是在谈论区让 Committer 将这个任务分配给你,这样社区成员就不会做重复工作了。

新手如何快速参与开源项目
类似于这样。

一起咱们在查找能够修正的 issue 时也要注意这个 issue 有没有被招领以及是否有 PR 相关。

新手如何快速参与开源项目

有时候 issue 并没有被指定但也有相关 PR 在处理该问题了,这时咱们就能够过滤掉这个 issue

help want

新手如何快速参与开源项目
也能够找找带有 help want 标签的 issue,这类问题往往会相对简略,修正起来也更容易。

社区反应较慢

还有一个比较常见的问题是自己提交的 issue 或者是 PR 迟迟没有人处理。

咱们能够先看看这个 issue 对应的代码最近主要是哪些人在维护,这个在 IDE 中合作 GitToolBox 插件就很容易看出来。

新手如何快速参与开源项目
后边的 ID 往往是 PR 号,咱们能够经过这个 PR 找到对应的作者,然后测验在 issue 谈论区艾特对方。

假如依然没有回复,那咱们也能够给开发组发送邮件。

新手如何快速参与开源项目
假如仍是没有回复,比方我这个

那也还有一个方法,便是测验在交际媒体(GitHub 首页、技能群)上找到 Committer 的微信,直接私聊的方法让对方帮忙推动。

新手如何快速参与开源项目

当然也有一些项目长时间没有维护了,这种 PR 要做好心里预备,很有或许对方不会理你;这点在国内某个企业的开源项目中比较常见。

总结

总的来说想要做好开源得有耐性和长时间坚持,一起给自己带来的优点也是物超所值的,Apache 这类专业的社区我也才参加了半年,后续也会长时间坚持下去,也希望哪天能够堆集到成为 Committer 后再和咱们共享。