Layotto 贡献指南
Layotto 基于 Apache 2.0 许可发布,遵循标准的 Github 开发流程,使用 Github Issue 跟踪问题并将 Pull Request 合并到 main 分支中。本文档可以帮助你了解如何参与贡献。
贡献流程
- 首次提交 Pull Request 后,您需要先签署贡献者许可协议(CLA)
- 优化您的 Pull Request,确保能通过自动化测试(CI)
- 如果是首次贡献者,您提交 Pull Request 是没法自动触发 CI 的,需要由项目维护者手动运行 CI. 这是 Github 的默认限制, 但您做过一次贡献、成为 contributor 后,再提新 PR 就能自动触发 CI 了。
- CI 的详细说明见 Layotto GitHub Workflows
- 为了方便开发, Layotto 有一套 make 脚本,可以在本地跑检查、跑测试,在本地启动好 docker 后,敲
make all
即可,详见文档说明
- 由社区维护者来 code review
- code review 如果有修改意见,会在 PR 下留言
- code review 有两票 approve 后, PR 就可以合并
代码约定
以下对于 Pull Request 的要求并非强制,但是会对您提交 Pull Request 有帮助。
- 代码格式规范: 你只需要执行
make format
去格式化你的代码。 - 确保所有新的
.go
文件都具有简单的 doc 类注释 - 将 Apache Software Foundation 许可证标头注释添加到所有新的
.go
文件(可以从项目中的现有文件复制) - 添加文档
- 进行一些单元测试也会有很大帮助。
- 请确保代码覆盖率不会降低。
- 确保提交 Pull Request 之前所有的测试能够正确通过。你可以本地启动好 docker 后,执行
make all
去格式化你的代码,进行风格测试,linter 规范测试,单元测试,以及集成测试。但是执行前请先查看注意事项 - 按照 Github 工作流提交 Pull Request ,并遵 循 Pull Request 的规则。
Layotto 提供了很多方便本地开发的命令行工具,请在这里进行查阅
版本命名约定
Layotto 的版本包含三位数,格式为 x.x.x,第一位是出于兼容性考虑; 第二个是新功能和增强功能; 最后一位是错误修复。
维护者代码审查策略
项目维护者审查代码时建议遵循以下策略:
- 检查 PR 对应的 Issue
- 检查解决方案的合理性
- 检查 UT 和 Benchmark 的结果
- 注意使代码结构发生变化的代码,全局变量的用法,特殊情况和并发的处理