IvorySQL 贡献指南
IvorySQL 的成长离不开全球开发者、测试人员、文档作者、翻译者、社区布道者和使用者的持续参与。本页面先概述社区当前的主要贡献方式与激励政策,再说明代码贡献的具体参与流程与注意事项。
贡献方式
IvorySQL 社区始终坚持“开源无门槛,贡献无大小”。你可以根据自己的经验、兴趣和时间,选择适合自己的参与方式:
- 代码类贡献:内核开发、功能迭代、Bug 修复、插件开发、生态工具适配、回归测试、代码评审等。
- 非代码类贡献:Issue 反馈、文档完善、技术翻译、社区问答、线上或线下技术分享、案例征集、迁移实践总结、社区推广等。
如果你暂时还不准备直接修改代码,也完全可以先从问题复现、需求梳理、文档改进、测试建议或社区讨论开始参与。
激励政策
为鼓励更多开发者持续参与 IvorySQL 社区建设,社区也在不断完善贡献者的认可与激励机制:
- 荣誉认可:为贡献者颁发社区电子证书,并在官网贡献者墙记录社区足迹。
- 导师支持:通过“灯塔”导师机制,提供资深开发者的一对一技术支持与 Code Review 帮助,协助贡献者成长。
- 社区活动权益:活跃贡献者可获得 HOW 等社区活动的演讲、分享或参会机会。
- 年度激励:社区会结合全年贡献情况评选优秀贡献者,并提供周边礼品、宣传展示和更多社区合作机会。
具体激励安排会根据社区计划持续迭代,但每一类持续、真实且有价值的贡献,都会被社区认真记录与认可。
如果你对代码贡献感兴趣,但暂时还没有明确的切入点,或者这是你第一次参与 IvorySQL,欢迎继续阅读下面的代码贡献指南,帮助你更快找到起点、降低参与门槛。
代码贡献指南

开始之前
IvorySQL 主要在 GitHub 上协作开发。开始代码贡献前,建议你先完成以下准备:
- 拥有 GitHub 账号,并熟悉基本的 Git 工作流。
- Fork 官方仓库,并在自己的仓库分支中进行开发。
- 对于较大的需求或改动,提前关注社区讨论或邮件列表。
在提交代码或文档贡献之前,个人或企业贡献者需要先签署贡献者许可协议(CLA)。请根据身份下载并签署 CLA,然后发送至 cla@ivorysql.org:
补丁提交
推荐按以下流程参与代码贡献:
- 从 GitHub Issues、文档待改进项、社区活动或生态需求中选择一个切入点。
- 如果改动较大,建议先在 Issue、PR 讨论区或邮件列表中同步思路,减少返工。
- Fork 仓库并创建独立分支,保持单次改动聚焦、清晰、易于审查。
- 完成开发、测试或文档更新后,先在本地完成自查。
- 向官方仓库提交 Pull Request,或通过 Issue / 讨论区等方式提交非代码类贡献。
- 根据评审意见继续补充提交,直至达成合并共识。
编码与测试指南
为了提高评审效率与合并质量,建议你在提交前注意以下事项:
- 将较大的需求拆成多个小而独立的提交,便于审查与回归。
- 对 C 和 C++ 相关改动尽量遵循 PostgreSQL 编码规范。
- 对 C / Perl 代码按需运行
pgindent。 - 提交前使用
git diff --color检查是否有无关的空白变更。 - 新增功能尽量补齐回归测试。
- 至少运行
make installcheck-world,确保没有引入明显回归。
如果你不确定如何测试、如何补文档或如何拆分提交,可以在 ivorysql-hackers 邮件列表中提出问题,社区会尽力协助你完成首批贡献。