写在结尾
从 2021 开始,有一个很有意思的说法常常在各大技术媒体或开源论坛中呈现,「开源正在吞噬所有」。不管是否夸大其词,从一个行业从业者的切身感知来看,开源的确从多数极客的小众文化成为支流的软件开发模式,有越来越多的企业开始拥抱开源技术,享受到开源技术带来的福利。
一面是开源技术失去更广范畴的利用和落地。以咱们所处的数据库和大数据畛域来看,2021 年寰球开源数据库的风行指数首次超过商用数据库,以 Apache Hadoop、Apache Spark、Apache Flink 等为代表的大数据组件简直形成了大数据生产链路上的事实标准。而另一面,则是开发者对于参加开源我的项目和社区的激情愈发低落。不论是出于 把握技术、解决业务问题、晋升业务效率的目标,或者是出于 钻研技术、增强编码能力、晋升视线高度的目标,又或者是出于丰盛简历、寻求职业机会的目标,参加开源我的项目对开发者集体而言,是最为无效来晋升本人的形式之一。
开源数据库风行指数首次超过商业数据库
过来几年我始终在参加开源我的项目 Apache Doris 的推广工作,这一期间与许多开发者有过深度的探讨和交换。2022 年 6 月 Apache Doris 从 Apache 孵化器毕业正式成为 Apache 顶级我的项目,让 Apache Doris 在寰球范畴内受到了更多开发者的关注。在这一过程中也意识到,如何参加到开源我的项目的探讨和开发,是被许多开发者重复提及的问题,也是新人开发者最为迫切寻求解答的问题。
为了答复下面的问题,就有了本篇文章的诞生。其实参加开源我的项目并不艰难,甚至能够说存在肯定的定式,就以我所参加的 Apache Doris 我的项目为例,我将为大家介绍 Apache Doris 社区的一些工作机制、如何参加社区奉献以及如何实现本人第一个 PR,心愿为想参加开源社区奉献的小伙伴提供一个简略的思路,也心愿能有更多开发者能参加 Apache Doris 社区中来,与社区一道成长,一道将国人研发的优良数据库推广到寰球,一道实现剖析型数据库技术的变革,一道见证更多不可能的故事产生。
从 README 开始
从开源我的项目在 GitHub 上胜利托管的一刻起,README 文件就随之诞生了。就如同一本书的序言或电子设备的应用说明书,README 文件是开启开源之旅的第一个入口,简直涵盖了应用和参加开源我的项目的所有姿态,既蕴含了我的项目背景、零碎架构、技术个性等技术相干的介绍,也蕴含了用户该如何装置、部署以及上手应用的操作指南,同时还会提供我的项目维护者的次要联系方式、相干材料的获取地址以及如何参加奉献的指引等。
以上为 Apache Doris README https://github.com/apache/doris/blob/master/README.md
通过浏览 README 文件,能够对 Apache Doris 社区建设一个绝对全面的意识。
参加社区沟通
邮件列表(Mailing List)是 Apache 社区最被认可的交换形式,无论是问题反馈与解答、技术交换与探讨、版本迭代与公布、社区决定与公示等,都能够通过邮件列表的模式来承载。邮件列表异步通信、感性思考、公开通明的个性,也非常适合开源社区的沟通交流,任何人都能够订阅邮件列表来知悉社区动静。
订阅邮件列表操作能够参考以下链接:
订阅邮件列表 https://doris.apache.org/zh-CN/community/subscribe-mail-list
与邮件列表这一异步沟通模式绝对的,是以微信、QQ、钉钉等 IM 工具为代表的即时通讯模式。
因为信息传递的效率更高,即时通讯软件简直成为国内开源社区日常技术沟通和交换的次要形式。以 Apache Doris 社区为例,目前 Apache Doris 社区有超过 20 个微信社群、汇集了超过 8000 人以上用户规模,绝对于邮件列表,微信社群无疑承载了更多用户反对和问题解答的职责,每个用户都能够通过 Apache Doris 官网上的入口扫码退出用户社群中,去探讨技术和寻求答疑。
目前 Apache Doris 社区有一支专职的用户反对团队帮忙社群中的用户定位和解决问题,只管这能带来更好的用户体验(用一些社区用户的话说,Apache Doris 社区的技术支持力度甚至比一些商业软件的反对力度还要大),但微信社群人造存在的信息割裂、冗余信息过多、常识无奈积淀等弊病仍然存在,因而社区也始终在寻求更加正当和可继续的办法,例如 Slack 社群以及 GitHub Discussion,心愿在放弃用户体验的同时也能晋升沟通和解决问题的效率,这也是咱们更为举荐的沟通形式。
退出 Slack Join the Slack
GitHub Discussion https://github.com/apache/doris/discussions
善用官网与文档
官方网站和文档是深刻理解一个开源我的项目最次要和高效的形式,熟读文档对于把握开源我的项目的重要性显而易见,在此也不再赘述。
2022 年 7 月,在社区力量的反对下咱们对 Apache Doris 官网和文档构造进行了一次整体改版,除了对各个页面视觉和交互成果的整体优化以外,还减少了文档的全文检索和版本切换等重要性能,能够对以后版本文档的任意字段进行搜寻,帮忙用户疾速检索和定位到须要查问的内容。
如何提交你的第一个 Pull Request
参加开源我的项目并为其作出贡献的办法有很多,包含性能开发、测试 Case 编写、流程工具改良、文档欠缺、博客撰写等等,任何对于我的项目的奉献都是有价值并且受欢迎的。在提交的奉献正式合入后,将主动成为我的项目的贡献者并呈现在我的项目的贡献者列表中。
Apache Doris 社区有着清晰的贡献者成长规范,贡献者在对我的项目有着足够的奉献后,有机会通过推选和投票成为 Committer,领有代码库的合入权限,并且名字将呈现在 Apache 网站列表中。更进一步,还有机会成为我的项目的 PMC Member(项目管理委员会成员),对我的项目的重要决策领有投票权。
Apache Doris PMC/Committer 名单:https://doris.apache.org/zh-CN/community/team
每一个奉献从最后的发动到最终的合入,大抵会经验以下的步骤:
- 发现问题或优化项
- Fork 代码仓库
- 本地开发与自测
- 创立 Pull Request
- 期待 Code Review
- 审核通过并合入 Master
寻找第一个奉献点
接下来聊聊如何寻找到一个奉献点,往往这也是大多数人跨入开源世界大门的第一步,有幸跨入的话则会发现门门外是两种齐全不同的风光。
或者是在浏览文档时发现了一个小的错漏,例如发现一个小的错别字或者发现某个链接生效,又或者可能是已有的文档在细节形容或语义表白上有可晋升的空间,能够把勘误或补全开源文档作为第一个出发点,帮忙文档品质失去晋升,这也是参加开源我的项目的重要途径。
文档奉献 https://doris.apache.org/zh-CN/community/how-to-contribute/contribute-doc
也有可能是在应用开源我的项目过程中发现了一个 Bug,或者利用其某一业务场景中发现还存在一些未被满足的性能点,通过浏览和剖析代码后认为凭借本身能力能够对其进行改良,这时能够在 GitHub 上搜寻是否有人与你具备雷同的想法或问题,如果没有的话能够创立一个 Issue,并依照 Issue 模版顺次补充相干信息。
同时在 Issue 列表中能够通过 Label 筛选出带有“good first issue”的 Issue,通常是社区为新贡献者专门留进去的开发工作,并且在 Apache Doris 社区还会定期将老手工作汇总在置顶的 Issue 中。如果是第一次参加开源我的项目,能够抉择这些简略工作进行练习,相熟整个 Pull Request 提交流程之余还能够感触到社区对新人的友好度。
Good First Issue https://github.com/apache/doris/issues/11706
通常零碎架构方面的批改或者重要的性能引入须要在社区进行充沛的探讨与交换,能够在邮件组中发动探讨,也能够提交 Issue 发动,同时在 Doris Improvement Proposals 中提交具体的设计文档,帮忙其余开发者理解性能的设计动机、需要与具体计划。
DSIP https://cwiki.apache.org/confluence/display/DORIS/Doris+Improvement+Proposals
Fork 代码仓库
在确定奉献点之后就能够开始上手开发了,第一步就是 Fork 代码。进入 Apache Doris 的 GitHub 后 点击右上角的 Fork 按钮进行 Fork。如果喜爱 Apache Doris,也能够点击旁边的 Star 🌟按钮关注代码仓库)
Fork 实现后回到本人的 GitHub 账号下就能够找到 Fork 的我的项目,这时对本人 Fork 的我的项目领有了任意批改的权限,能够将代码 Clone 到本地进行开发。
(1)将代码 Clone 到本地:
git clone https://github.com/<your_github_name>/doris.git
Clone 实现后,origin 会默认指向 GitHub 上的近程 Fork 地址。
(2)将 apache/doris 增加为本地仓库的近程分支 Upstream:
cd doris
git remote add upstream https://github.com/apache/doris.git
(3)查看近程仓库设置:
git remote -v
origin https://github.com/<your_github_name>/doris.git (fetch)
origin https://github.com/<your_github_name>/doris.git (push)
upstream https://github.com/apache/doris.git (fetch)
upstream https://github.com/apache/doris.git (push)
(4)新建分支以便在分支上做批改:
git checkout -b <your_branch_name>
留神:<your\_branch\_name> 为您自定义的分支名字。
创立实现后可进行代码开发和自测。
创立 Pull Request
开发并自测实现后即可将代码提到本人 Fork 的近程分支中,再通过 Pull Request 的形式将 Commits 提交合入。
具体 Pull Request 提交指南能够参考以下文档:
代码提交指南 https://doris.apache.org/zh-CN/community/how-to-contribute/pull-request
(1)提交代码到近程分支:
git commit -a -m "<you_commit_message>"
git push origin <your_branch_name>
(2)创立 Pull Request
在浏览器切换到本人的 github 页面,切换分支到提交的分支 <your\_branch\_name>,点击 Compare & pull request
按钮进行创立,如下图所示:
(3)筹备分支
这时候,会呈现 Create pull request
按钮,如果没有请查看是否正确抉择了分支,也能够点击“compare across forks”从新抉择 Repo 和分支。
(4)填写 Commit Message
这里请填写 Pull Request 的具体内容,在 Apache Doris 社区对于 Commit 格局有明确的标准,具体能够参考:
Commit 格局标准 https://doris.apache.org/zh-CN/community/how-to-contribute/commit-format-specification/
(5)期待 GitHub 检查和 Code Review
点击 Create pull request
进行创立后,Pull Request 创立实现后会主动触发 GitHub 的查看工作,只有通过查看后代码能力被合入。
Github Checks https://cwiki.apache.org/confluence/display/DORIS/Github+Checks+Guidance
创立的 Pull Request 在承受 GitHub Check 的同时,也须要承受社区的 Review。在 Apache Doris 社区,咱们欢送所有人参加到代码的 Review 中来,通过开放式探讨保障代码品质,最终由具备代码合入权限的开发者给出合入意见,至多须要有一个非作者的 Committer 给出 +1 能力被合入。
Code Review 指南 https://doris.apache.org/zh-CN/community/how-to-contribute/contributor-guide#code-review
(6)代码合入
最终通过 GitHub 查看工作以及 Code Reivew 的 Pull Request 会在一个工作日后被合入进 Master,至此祝贺成为 Apache Doris Contributor!
Enjoy it!
其实参加开源我的项目不存在什么门槛,绝大多数开源我的项目是自在凋谢、且十分欢送有更多人能参加进来的。与其说不晓得该如何参加开源我的项目,个人感觉可能是信息传递阻碍带来的些许隔膜,兴许只须要一个简略的发往 dev 邮件组的邮件就能够解决。
无论是提交 Issue 或参加 PR Review,或者是批改和欠缺文档,又或者是分享技术博客和利用案例,都是参加开源奉献,也期待有更多的你一道参加进来。
– End –
如果你对 Apache Doris 感兴趣,请退出 Doris!咱们也发动了 征文活动 , 邀你讲讲与 Doris 相遇 相知 相识的故事,不仅有精美礼品相送,还可取得 SelectDB 全渠道曝光加持!
最初,欢送更多的开源技术爱好者退出 Apache Doris 社区,携手成长,共建社区生态。