Skip to content

Latest commit

 

History

History
142 lines (95 loc) · 5.26 KB

CONTRIBUTING_CN.md

File metadata and controls

142 lines (95 loc) · 5.26 KB

为 tangseng 做贡献

如果你有兴趣为 tangseng 贡献代码,我们会热烈欢迎。首先,我们非常鼓励这种意愿。

话题

报告一般问题

有很多情况你可以打开一个问题:

  • 错误报告
  • 功能要求
  • 性能问题
  • 功能提案
  • 功能设计
  • 需要帮助
  • 文档不完整
  • 测试改进
  • 关于项目的任何问题
  • 等等

另外我们必须提醒的是,在填写新问题时,请记住从您的帖子中删除敏感数据。敏感数据可能是密码、密钥、网络位置、私人业务数据等。

代码和文档贡献

鼓励采取一切措施使 tangseng 项目变得更好。在 GitHub 上,tangseng 的每项改进都可以通过 PR(Pull Request 的缩写)实现。

  • 如果您发现错别字,请尝试修复它!
  • 如果您发现错误,请尝试修复它!
  • 如果您发现一些多余的代码,请尝试删除它们!
  • 如果您发现缺少一些测试用例,请尝试添加它们!
  • 如果您可以增强功能,请不要犹豫!
  • 如果您发现代码晦涩难懂,请尝试添加注释以使其更加易读!
  • 如果您发现代码丑陋,请尝试重构它!
  • 如果您能帮助改进文档,那就再好不过了!
  • 如果您发现文档不正确,只需执行并修复它!
  • ...

实际上不可能完整地列出它们。记住一个原则:

我们期待您的任何PR。

由于您已准备好通过 PR 改进 tangseng,我们建议您可以在此处查看 PR 规则。

工作区准备

为了提出 PR,我们假设你已经注册了一个 GitHub ID。然后您可以通过以下步骤完成准备工作:

  1. FORK tangseng 到您的存储库。要完成这项工作,您只需单击 tangseng 主页右侧的 Fork 按钮。然后你将在 中得到你的存储库https://github.com/<your-username>/tangseng,其中 your-username 是你的 GitHub 用户名。

  2. 克隆 您自己的存储库以在本地开发. 用于 git clone [email protected]:<your-username>/tangseng.git 将存储库克隆到本地计算机。 然后您可以创建新分支来完成您希望进行的更改。

  3. 设置远程 将上游设置为 [email protected]:CocaineCong/tangseng.git 使用以下两个命令:

git remote add upstream [email protected]:CocaineCong/tangseng.git
git remote set-url --push upstream no-pushing

使用此远程设置,您可以像这样检查您的 git 远程配置:

$ git remote -v
origin     [email protected]:<your-username>/tangseng.git (fetch)
origin     [email protected]:<your-username>/tangseng.git (push)
upstream   [email protected]:CocaineCong/tangseng.git (fetch)
upstream   no-pushing (push)

添加这个,我们可以轻松地将本地分支与上游分支同步。

提交规则

实际上,在 tangseng 中,我们在提交时会认真对待两条规则:

提交消息

提交消息可以帮助审稿人更好地理解提交 PR 的目的是什么。它还可以帮助加快代码审查过程。我们鼓励贡献者使用显式的提交信息,而不是模糊的信息。一般来说,我们提倡以下提交消息类型:

  • docs: xxxx. For example, "docs: add docs about seata-go cluster installation".
  • feature: xxxx.For example, "feature: support oracle in AT mode".
  • bugfix: xxxx. For example, "bugfix: fix panic when input nil parameter".
  • optimize: xxxx. For example, "optimize: simplify to make codes more readable".
  • test: xxx. For example, "test: add unit test case for func InsertIntoArray".
  • 其他可读和显式的表达方式。

另一方面,我们不鼓励贡献者通过以下方式提交消息:

  • 修复错误
  • 更新
  • 添加文档

如果你不知道该怎么做,请参阅 如何编写 Git 提交消息 作为开始。

提交内容

提交内容表示一次提交中包含的所有内容更改。我们最好在一次提交中包含可以支持审阅者完整审查的内容,而无需任何其他提交的帮助。换句话说,一次提交中的内容可以通过 CI 以避免代码混乱。简而言之,我们需要牢记三个小规则:

  • 避免在提交中进行非常大的更改;
  • 每次提交都完整且可审查。
  • 提交时检查 git config(user.name, user.email) 以确保它与您的 GitHub ID 相关联。
git config --get user.name
git config --get user.email

无论是提交信息,还是提交内容,我们都更加重视代码审查。

格式化代码

提交代码之前,在项目根目录下执行格式化代码的脚本:

sh goimports.sh

代码风格

tangseng 代码风格参考uber-go/guide

IDE插件安装(非必须)

没有必要安装,如果你想在编码的时候发现问题。

安装 go fmt 和 goimports 插件,详情参考:https://github.com/golang/tools