我们欢迎任何人一起参与开发这个开源框架!
我们默认你已经安装好了 Go(>=1.18) 环境。并且因为我们依赖于 shell 和 linux 命令,所以对于 Windows 开发者来说,我们建议使用 WSL 作为开发环境。
IDE 则是建议使用 Goland,当然 vscode 也是可以。
在将仓库 git clone 到本地之后,在仓库根目录下执行:
make setup
等待执行成功。
在国内的开发者容易遇到网络问题,所以如果在执行过程中遇到问题,可以尝试开启 VPN 之后再执行一遍。
每一个重大需求,我们要求你提供技术设计文档。设计文档可以参考技术设计文档模板。
一个合并请求应该符合以下标准,否则我们是不会接受的:
- 确保自己的合并请求能够通过所有的 github action 检测,包括但不限于代码质量、测试覆盖率等;
- 公开方法、类型都必须要有注释,并且提供例子(可以参考已有的例子学习如何撰写例子)
- 公开方法、类型必须有足够的测试。足够的测试要综合考虑:场景、代码覆盖率;
- 核心路径必须有 benchmark 测试。如果已有 benchmark 测试,那么性能变化应该在可接受范围内;
- 部分方法需要提供 fuzzing 测试。我们会在 review 你的合并请求的时候,如果发现需要 fuzzing 测试,会告诉你的;
- 一个合并请求只能有一个 Commit ID;
- 我们使用 uber 的代码风格,你需要事先阅读这个文档;