Skip to content

Update the community contribution process #130

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 8, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added CN/modules/ROOT/images/p23.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
141 changes: 119 additions & 22 deletions CN/modules/ROOT/pages/v4.5/32.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,107 @@
:sectnumlevels: 5

:imagesdir: ./_images
= **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 随之产生,形成完整的反馈循环。

image::p23.jpg[]

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

= **IvorySQL社区贡献指南**

IvorySQL由一个核心开发团队维护,该团队拥有对GitHub上的IvorySQL主存储库的提交权限。同时,我们非常渴望从更广泛的IvorySQL社区中的成员那里获得贡献。如果您希望看到您的代码或文档更改被添加到IvorySQL并出现在将来的版本中,本节的内容介绍是您需要知道的。
IvorySQL是一个由核心开发团队主导、社区共同维护的开源项目。我们欢迎用户、贡献者和维护者的加入,共同推动IvorySQL的发展。如果您希望看到您的代码或文档更改被添加到IvorySQL并出现在将来的版本中,本节的内容介绍是您需要知道的。

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

​IvorySQL社区欢迎并赞赏所有类型的贡献,期待您的加入!
* 用户 👉 欢迎提交问题反馈、功能建议,并参与社区讨论。

在参与社区贡献前,请先阅读并遵守 https://github.com/IvorySQL/IvorySQL/blob/master/CODE_OF_CONDUCT_CN.md[IvorySQL社区行为准则]。
* 贡献者 👉 请先签署 CLA,然后选择您感兴趣的项目模块进行 Issue 认领和代码提交。

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

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

📢 请务必阅读并遵守我们的 https://github.com/IvorySQL/IvorySQL/blob/master/CODE_OF_CONDUCT_CN.md[IvorySQL社区行为准则]。

== 注册Github账号

IvorySQL源码托管在github: <https://github.com/IvorySQL>
无论您是要提交 Issue、参与讨论,还是贡献代码与文档,您都需要使用 GitHub 账号登录并与 IvorySQL 项目进行交互

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

== 签署CLA
IvorySQL源码托管在github: <https://github.com/IvorySQL>。

== 用户

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

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

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

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

如果您准备向社区上报 Bug 或者提交需求,请在 IvorySQL 社区对应的仓库上提交 Issue,并参考Issue xref:./33.adoc[提交指南]。

=== 参与社区讨论

* 通过 https://lists.ivorysql.org[邮件列表]进行讨论

* 加入 https://github.com/IvorySQL/IvorySQL/discussions[GitHub讨论],补充信息或验证问题

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

== 贡献者

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

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

* https://www.ivorysql.org/zh-CN/assets/files/individual_cla-a81f001209eb5ce0f8ea7c3be4cc69b5.pdf[个人贡献者]
* https://www.ivorysql.org/zh-CN/assets/files/corporate_cla-76e89b6f17b0bc102cbc1105d438a917.pdf[企业贡献者]

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

== 找到您感兴趣的项目
=== 找到您感兴趣的项目

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

[cols="1,1"]
|===
Expand All @@ -44,40 +119,62 @@ IvorySQL源码托管在github: <https://github.com/IvorySQL>。
|https://github.com/IvorySQL/ivorysql-wasm[Ivorysql_wasm] | 负责IvorySQL在线易用体验网站的开发和维护
|===

== 开始您的贡献

=== 提交Issue
如果您准备向社区上报 Bug 或者提交需求,请在 IvorySQL 社区对应的仓库上提交 Issue,并参考Issue xref:./33.adoc[提交指南]。

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

=== 提交Pull Request
=== 开发与提交Pull Request
对于提交一个PR应该保持一个功能,或者一个bug提交一次。禁止多个功能一次提交。

==== Fork仓库

==== 第1步:创建一个Pull Request
前往项目主页,点击Fork按钮,将IvorySQL项目Fork到您自己的GitHub账户中。

1、打开你 Fork 的仓库: https://github.com/$user/$repo_addr (将 $user 替换为你的 GitHub ID)。
==== 编码

​2、点击 Compare & pull request 按钮
使用如下命令将项目克隆到本地进行开发:

==== 第2步:填写PR信息
git clone https://github.com/$user/IvorySQL.git (将 $user 替换为你的 GitHub ID)。

git checkout -b feature/your-feature-name

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

==== 创建一个Pull Request并提交

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

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

```
Fix test
功能描述
```

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

==== 第3步:提交PR

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

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

=== 社区规划
* 制定版本规划和 Roadmap

* 跟踪与评估社区需求

* 维护公开的 TODO 列表

=== 代码管理
* 参与 Pull Request 评审

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

=== 流程与治理机制
* 优化协作机制(代码贡献指南、PR 模板等)

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

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