前言
为开源项目做出贡献可能令人生畏——PostgreSQL也不例外。作为PostgreSQL的长期贡献者,Aleks分享了他来之不易的技巧,以帮助您做出第一次贡献,或做出更多贡献。
**PostgreSQL是世界上最受欢迎的数据库之一。**我们是PostgreSQL的Timescale扩展功能的忠实粉丝,这已经不是什么秘密了:我们已经在它的基础上构建了TimescaleDB,还聘请了开源PostgreSQL贡献者(像我一样!)。同时,我们开发了一些功能来让 PostgreSQL更好地应用于时序场景(例如Skip Scan,它使PostgreSQL中的某些查询速度提高8000倍)。除了改进数据库本身,我们还致力于PostgreSQL社区的成功。
开源不仅仅是我的热情,也是我的职业。自2016年以来,我一直是PostgreSQL贡献者,最近加入Timescale作为全职开源PostgreSQL贡献者。我不仅为PostgreSQL做过贡献,还为Insolar、Sigrok和其他开源项目做过贡献。我是PostgreSQL的pg_protobuf和ZSON扩展和几个STM32微控制器的开源库的作者。
我喜欢开源,因为它能够使我们看到软件的内部,并从中学习改进它。开源软件的质量标准高于专有软件,因为您无法做隐藏和偷工减料。最后但同样重要的是,开源软件不会因为地缘政治事件或诸如此类的事情而拒绝出售或延长许可。(在我的职业生涯中,我至少遇到过两次这种情况。)
今年早些时候,我们开展了“PostgreSQL现状”调查,以了解人们如何使用PostgreSQL,从他们的社区经验到流行的工具和需要改进的领域。
您可以查看2021年PostgreSQL现状报告来探索所有发现和趋势——但有一个结果对我来说很有感触:
85%的受访者没有贡献PostgreSQL的代码库、文档或提交,只有4%的人贡献过几次。
该调查还强调了作为PostgreSQL社区我们可以更欢迎新开发人员,帮助他们使用PostgreSQL和为PostgreSQL做贡献。
例如,一位受访者说:“第一个代码贡献可能会带来创伤……有时我们不太欢迎新开发人员[原文如此]。我们应该改进……”
在2021年PostgreSQL现状调查中,85%的受访者没有为PostgreSQL代码库、文档或提交做出贡献。
这让我开始思考,该如何让人们更轻松地克服最初的恐惧和其他障碍——无论是技术的困难、流程的困惑,还是缺乏信息——这些障碍经常围绕着开源项目。毕竟,我们希望更多的人成为PostgreSQL社区的一份子并做出贡献;这就促使我们思考如何让它变得更好。
为了帮助更多想要贡献的人参与,我将分享我的观察、过去5年多学到的东西、希望在开始时就知道的东西,以及给新贡献者的一些建议。
我将使用PostgreSQL作为特定的例子,无论你是想为PostgreSQL做第一次(或第二次,或第三次)的贡献,还是有另一个开源项目的想法,下面的指导是非常通用的。
还介绍了一些回馈社区或代码之外的贡献方法以及建立一个可持续、健康的开源社区的容易被忽视的重要元素。
第1步:确定你的动机
要问的最重要的问题之一是:“你为什么想成为开源贡献者?”
除非你认识到并理解你的动机,否则你很难为项目安排时间,尤其是随着时间的推移。
以下是您可能想要开始从事开源项目的潜在原因列表:
-
获得独特的体验:如果您是一位有经验的编写微服务后端开发人员,可能会寻找新的挑战。开源软件提出了很多这样的挑战和需要学习的新技术。
-
了解您最喜欢的操作系统/数据库/语言/编译器的内部结构:通过了解您最喜欢的开源项目的内部结构可以让您更有效地使用它,并了解其局限性。例如,没有多少用户知道运行SELECT查询可能会导致PostgreSQL写磁盘。或者创建多个临时表可能会显著影响整个数据库的性能。或者synchronous_commit = remote_apply在提交事务之前实际上并不等待副本的反馈。(事务是即时提交的。只是