内容提要
这篇文章讲述了作者第一次向PostgreSQL提交补丁的经历。作者在与Stephen Frost讨论HOT更新和填充因子时,想到了一个文档补丁的想法。作者发现PostgreSQL文档中缺少对BRIN索引的引用,而HOT更新可以与BRIN兼容。作者提交了一个补丁来更新文档。文章还介绍了提交补丁的过程,包括使用邮件列表和等待反馈。作者感谢PostgreSQL社区对他的支持和帮助。
延伸解读
非代码贡献者的参与路径
作者并非C开发者,但通过提交文档补丁成功为PostgreSQL做出贡献。这表明PostgreSQL社区欢迎各种形式的贡献,尤其是文档改进。对于不熟悉内核开发的用户,从文档入手是低门槛且有效的参与方式。文章也提到,文档与源代码一同打包,因此文档补丁同样需要经过社区审查和提交者合并。
补丁提交与邮件列表文化
PostgreSQL不使用GitHub的Pull Request流程,而是依赖邮件列表和补丁文件。作者通过git format-patch生成补丁,并发送到pgsql-hackers邮件列表。邮件列表虽然传统,但能高效触达全球开发者,且讨论会被镜像到网页,便于搜索和追踪。对于新手,订阅邮件列表并观察讨论是学习Postgres内部机制的好方法。
Commitfest与自动化测试
补丁提交后通常会被添加到Commitfest,这是一个跟踪补丁审查和提交进度的系统。Commitfest还驱动CF bot自动测试补丁,确保其与最新代码兼容。对于代码补丁,运行回归测试是必要步骤;文档补丁虽可跳过,但审查者仍会检查。这一机制帮助社区管理大量补丁,避免遗漏。
等待反馈与社区标准
提交补丁后等待反馈是最紧张的部分,反馈可能具体且严格。作者强调,PostgreSQL有30年历史和高标准,反馈旨在确保软件质量。社区成员友好且支持,但审查过程要求贡献者具备厚脸皮和耐心。一旦补丁被提交者接受并合并,就会出现在主分支或稳定分支,并随版本发布。
Q&A
作者是如何开始向PostgreSQL提交补丁的?
作者在与Stephen Frost讨论时想到更新文档的补丁,发现PostgreSQL文档缺少对BRIN索引的引用。
PostgreSQL的补丁提交过程是怎样的?
补丁提交通过邮件列表进行,作者需要创建补丁文件并发送到pgsql-hackers邮件列表。
补丁提交后,作者需要等待什么?
作者需要等待反馈,反馈可能会很具体,且需要由Postgres的提交者接受并合并到代码库中。
PostgreSQL社区对新贡献者的态度如何?
PostgreSQL社区非常友好,强调包容性和多样性,作者在其中得到了很多支持和帮助。
补丁一旦合并,用户如何使用这些更改?
补丁合并后会出现在开发版本的主分支上,用户需要更新数据库到最新版本才能使用这些更改。
作者在补丁提交过程中遇到了哪些挑战?
作者在等待反馈时感到紧张,反馈可能会非常具体,需要厚脸皮来应对。