1. IvorySQL社区协作流程

IvorySQL 社区采用一套 闭环式开源协作流程,确保从问题提出到版本发布,每一个环节都能闭合反馈、持续改进。这一流程鼓励用户与开发者形成良性互动,让社区开发始终围绕实际需求持续演进。

整个协作闭环流程如下:

🐛 提问题(Issue)

用户或开发者在 GitHub 的 Issues 页面提交 Bug、功能建议或使用反馈。

💬 问题讨论(Discussion)

维护者与社区成员就问题展开讨论,确认问题性质与优先级,加入 ToDo List。

🛠️ 开发分支(Fork & Dev)

开发者认领 Issue,Fork 仓库并在本地开发测试,准备提交代码。

🚀 提交 Pull Request(PR)

将开发分支 Push 到 Fork 仓库后,向上游仓库发起合并请求。

🧐 代码评审(Review)

维护者或核心开发者对 PR 进行评审,提出修改建议并确保质量。

🔀 合并主分支(Merge)

审核通过后,PR 被合并至主分支,对应的 Issue 被关闭。

📦 版本发布(Release)

项目定期发布新版本(每季度小版本,每年大版本),包含最新的修复与功能。

🧪 用户测试(Test)

用户升级使用新版,反馈新问题,新的 Issue 随之产生,形成完整的反馈循环。

p23

通过这套完整的闭环协作机制,IvorySQL 实现了问题响应 → 开发贡献 → 质量保障 → 发布反馈的全流程闭合,推动项目持续健康演进。

2. IvorySQL社区贡献指南

IvorySQL是一个由核心开发团队主导、社区共同维护的开源项目。我们欢迎用户、贡献者和维护者的加入,共同推动IvorySQL的发展。如果您希望看到您的代码或文档更改被添加到IvorySQL并出现在将来的版本中,本节的内容介绍是您需要知道的。

在参与贡献前,请确认您当前的参与身份,以便更高效地了解适合您的贡献方式:

  • 用户 👉 欢迎提交问题反馈、功能建议,并参与社区讨论。

  • 贡献者 👉 请先签署 CLA,然后选择您感兴趣的项目模块进行 Issue 认领和代码提交。

  • 维护者 👉 请参考维护职责,包括社区规划、代码评审和协作机制建设。

无论您以何种身份加入,IvorySQL 社区都非常欢迎您的参与和支持!​IvorySQL社区欢迎并赞赏所有类型的贡献,期待您的加入!

📢 请务必阅读并遵守我们的 IvorySQL社区行为准则

2.1. 注册Github账号

无论您是要提交 Issue、参与讨论,还是贡献代码与文档,您都需要使用 GitHub 账号登录并与 IvorySQL 项目进行交互。

请参考https://docs.github.com/en/get-started/start-your-journey注册您的github账号,并熟悉Git工具和工作流。

IvorySQL源码托管在github: https://github.com/IvorySQL

2.2. 用户

作为用户,您在使用 IvorySQL 过程中扮演着重要角色。我们鼓励您:

2.2.1. 反馈问题与需求

  • 发现 Bug、性能缺陷或文档不准确?

  • 有新的功能建议或使用体验改进?

如果您准备向社区上报 Bug 或者提交需求,请在 IvorySQL 社区对应的仓库上提交 Issue,并参考Issue 提交指南

2.2.2. 参与社区讨论

  • 通过 邮件列表进行讨论

  • 加入 GitHub讨论,补充信息或验证问题

  • 在 微信、Discord等聊天群参与技术交流

2.3. 贡献者

我们欢迎代码、文档、测试等各类贡献。

2.3.1. 签署CLA

在提交代码或文档贡献之前,为了确保代码合法合规,个人或企业贡献者需要签署贡献者许可协议(CLA)。签署CLA是IvorySQL社区接受贡献的必要条件,以确保您的贡献被合法分发。请根据下列链接下载CLA进行签署并将签署后的CLA发送至 cla@ivorysql.org

未签署CLA的Pull Request将无法进入评审阶段。

2.3.2. 找到您感兴趣的项目

我们将仓库划分为多个子项目,您可以从如下列表中找到感兴趣的项目及其代码仓库

代码仓库

描述

IvorySQL

负责社区IvorySQL数据库的开发和维护

Ivory-www

负责社区的官网开发和维护

ivory-operator

负责IvorySQL云原生数据库及周边工具开发和维护

docker_library

负责IvorySQL多架构的镜像构建开发和维护

ivory-cloud

负责IvorySQL云服务平台及周边生态开发和维护

Ivorysql_docs

负责社区的文档中心开发和维护

ivory-doc-builder

负责Ivorysql_docs的编译

Ivorysql_web

负责社区的文档中心网站维护

Ivorysql_wasm

负责IvorySQL在线易用体验网站的开发和维护

2.3.3. 给自己分配Issue

您可以将自己创建的Issue或者愿意处理的Issue分配给自己。 只需要在评论框内输入/assign,机器人就会将问题分配给您。 每个 Issue 下面可能已经有参与者的交流和讨论,如果您感兴趣,也可以在评论框中发表自己的意见参与 Issue 讨论。

2.3.4. 开发与提交Pull Request

对于提交一个PR应该保持一个功能,或者一个bug提交一次。禁止多个功能一次提交。

2.3.4.1. Fork仓库

前往项目主页,点击Fork按钮,将IvorySQL项目Fork到您自己的GitHub账户中。

2.3.4.2. 编码

使用如下命令将项目克隆到本地进行开发:

git clone https://github.com/$user/IvorySQL.git (将 $user 替换为你的 GitHub ID)。

git checkout -b feature/your-feature-name

在提交代码前,请确保通过回归测试

2.3.4.3. 创建一个Pull Request并提交

打开你 Fork 的仓库: https://github.com/$user/IvorySQL.git

点击 Compare & pull request 按钮填写PR信息

Fix test
功能描述
leave a comment
对该提交功能进行比较详细的描述

点击Create pull request 按钮即可提交。

2.4. 维护者

维护者负责进行IvorySQL代码的管理,PR审查,主导版本发布与IvorySQL发展方向。

2.4.1. 社区规划

  • 制定版本规划和 Roadmap

  • 跟踪与评估社区需求

  • 维护公开的 TODO 列表

2.4.2. 代码管理

  • 参与 Pull Request 评审

  • 审查安全问题,保障项目健康

2.4.3. 流程与治理机制

  • 优化协作机制(代码贡献指南、PR 模板等)

  • 建立漏洞响应机制和行为守则

2.5. 致谢

感谢每一位参与 IvorySQL 的开发者、文档编辑者、测试人员和使用者。正是有了你们的付出,IvorySQL 才能不断成长!我们欢迎所有人参与 IvorySQL 社区贡献,我们的目标是发展一个由贡献者组成的活跃、健康的社区。