跳到主要内容

贡献指南

为 Rainbond 做出贡献

Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器、Kubernetes和底层复杂技术,支持管理多个Kubernetes集群,和管理企业应用全生命周期。主要功能包括应用开发环境、应用市场、微服务架构、应用交付、应用运维、应用级多云管理等。

如果你有兴趣为 Rainbond 做出贡献,希望这份文档能够让你的贡献过程更加简单、快速、有效。

如果你是开源贡献初学者,可以参阅 Open Source Guides 网站,它提供了一些开源贡献指南,为想要学习如何为开源项目做出贡献的人、社区和公司提供了一系列资源。

CODE_OF_CONDUCT

Rainbond 希望项目参与者遵守行为准则,请阅读 CODE_OF_CONDUCT

参与其中

有许多方法可以为 Rainbond 做出贡献,不仅仅是代码贡献:

贡献是非常受欢迎的,如果你认为你的贡献需要帮助时,请添加小助手微信联系我们,由 Rainbond TOC 成员帮助你继续贡献。

Git Commit 规范

我们参考 Angular 规范,尽量提供更明确的历史信息,方便判断提交目的和浏览。每个 commit message 包含一个 header,body 和 footer。header 有一个特殊的格式包含有 type,scope 和 subject:

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

header、body、footer 之间都要空一行,header 是必填项,scope 是选填项。commit message 的每一行的文字不能超过 72 个字符。这样子在 github 和 git 工具上更便于阅读。

Type

type 用于说明 commit 的类别,必须为以下类型的一种:

  • feat: 新的功能
  • fix: 修复 bug
  • docs: 只是文档的更改
  • style: 不影响代码含义的更改 (例如空格、格式化、少了分号)
  • refactor: 既不是修复 bug 也不是添加新功能的代码更改
  • perf: 提高性能的代码更改
  • test: 添加或修正测试
  • chore: 对构建或者辅助工具的更改,例如生成文档
  • ci: 对 CI 配置或脚本的修改,例如 Github Actions
  • revert: 回滚某一次提交

Scope(可选项)

scope 用于说明 commit 影响的范围,当影响的范围有多个时候,可以使用 * 或不填。scope 是可选的,它可以给类型提供附加的上下文信息并包含在括号中,它可以是指定提交更改位置的内容。也可以是修复 Github 某个 issues 的链接。例如:fix(worker)、fix(#123)等。

Subject

subject 用于对 commit 变化的简洁描述:

  • 使用祈使句,一般以动词原形开始,例如使用 change 而不是 changed 或者 changes
  • 第一个字母小写
  • 结尾不加句号(.)

示例

feat: add code audit function

fix(api): wrong number of running apps

style: add couple of missing semi colons

撰写合格 Commit message 的工具

Commitizen 是一个撰写合格 Commit message 的工具。

安装

npm install -g commitizen
npm install -g cz-conventional-changelog
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc

使用

git add .
git cz

接下来选择对应的影响范围,输入提交消息即可。

Pull Request 规范

当我们接受 Pull Request 时,会将所有提交压缩为一个。因此 Pull Request 的标题将会成为提交消息的主题行。所以我们希望 Pull Request 的标题也能提供较准确的信息。请确保 Pull Request 的标题使用与提交消息中的主题行相同的格式。如果不遵循该格式,将无法通过 CI 检查。

为 Rainbond 做出贡献你将得到:

  • GitHub README 将展示你的贡献,并列出你的 Github 头像和 Github 用户名。

  • 由 Rainbond 社区颁发的 Contributor 证书