You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Open-IM-Server/CONTRIBUTING-zh_CN.md

4.3 KiB

如何给 OpenIM 贡献代码(提交 Pull Request

English · 中文 · Українська · Česky · Magyar · Español · فارسی · Français · Deutsch · Polski · Indonesian · Suomi · മലയാളം · 日本語 · Nederlands · Italiano · Русский · Português (Brasil) · Esperanto · 한국어 · العربي · Tiếng Việt · Dansk · Ελληνικά · Türkçe

本指南将以 openimsdk/open-im-server 为例,详细说明如何为 OpenIM 项目贡献代码。我们采用“一问题一分支”的策略,确保每个 Issue 都对应一个专门的分支,以便有效管理代码变更。

1. Fork 仓库

前往 openimsdk/open-im-server GitHub 页面,点击右上角的 "Fork" 按钮,将仓库 Fork 到你的 GitHub 账户下。

2. 克隆仓库

将你 Fork 的仓库克隆到本地:

git clone https://github.com/your-username/open-im-server.git

3. 设置远程上游

添加原始仓库为远程上游以便跟踪其更新:

git remote add upstream https://github.com/openimsdk/open-im-server.git

4. 创建 Issue

在原始仓库中创建一个新的 Issue详细描述你遇到的问题或希望添加

的新功能。

5. 创建新分支

基于主分支创建一个新分支,并使用描述性的名称与 Issue ID例如

git checkout -b fix-bug-123

6. 提交更改

在你的本地分支上进行更改后,提交这些更改:

git add .
git commit -m "Describe your changes in detail"

7. 推送分支

将你的分支推送回你的 GitHub Fork

git push origin fix-bug-123

8. 创建 Pull Request

在 GitHub 上转到你的 Fork 仓库,点击 "Pull Request" 按钮。确保 PR 描述清楚,并链接到相关的 Issue。

9. 签署 CLA

如果这是你第一次提交 PR你需要在 PR 的评论中回复:

The signature to be committed in order to sign the CLA

编程规范

请参考以下文档以了解关于 Go 语言编程规范的详细信息:

日志规范

  • 禁止使用标准的 log
  • 应使用 "github.com/openimsdk/tools/log" 包来打印日志,该包支持多种日志级别:debuginfowarnerror
  • 错误日志应仅在首次调用的函数中打印,以防止日志重复,并确保错误的上下文清晰。

异常及错误处理

  • 禁止使用 panic:程序中不应使用 panic,以避免在遇到不可恢复的错误时突然终止。
  • 错误包裹:使用 "github.com/openimsdk/tools/errs" 来包裹错误,保持错误信息的完整性并增加调试便利。
  • 错误传递:如果函数本身不能处理错误,应将错误返回给调用者,而不是隐藏或忽略这些错误。