贡献指南
为 Rainbond 做出贡献
Rainbond 是一个云原生应用管理平台,使用简单,不需要懂容器、Kubernetes和底层复杂技术,支持管理多个Kubernetes集群,和管理企业应用全生命周期。主要功能包括应用开发环境、应用市场、微服务架构、应用交付、应用运维、应用级多云管理等。
如果你有兴趣为 Rainbond 做出贡献,希望这份文档能够让你的贡献过程更加简单、快速、有效。
如果你是开源贡献初学者,可以参阅 Open Source Guides 网站,它提供了一些开源贡献指南,为想要学习如何为开源项目做出贡献的人、社区和公司提供了一系列资源。
CODE_OF_CONDUCT
Rainbond 希望项目参与者遵守行为准则,请阅读 CODE_OF_CONDUCT。
参与其中
有许多方法可以为 Rainbond 做出贡献,不仅仅是代码贡献:
- 处理未解决 issues,提出你的解决思路。
- 反馈 Bug。当你发现一个 bug,请使用 issues 来报告和讨论。
- 提出新功能。当你想要提出一个新功能,请使用 issues 来报告和讨论。
- 代码贡献
- 文档贡献
- 贡献开源应用至 Rainbond 应用商店
- 贡献开源插件至 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 证书