Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: improve contribution guide #568

Merged
merged 4 commits into from
May 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions docs/zh/_sidebar.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,17 +89,17 @@
- [API插件](zh/design/api_plugin/design.md)
- [支持Dapr API](zh/design/api_plugin/dapr_api.md)
- 贡献指南
- [Layotto 贡献指南](zh/development/CONTRIBUTING.md)
- [新手攻略:从零开始成为 Layotto 贡献者](zh/development/start-from-zero.md)
- 文档相关
- 想要贡献文档?
- [文档贡献指南](zh/development/contributing-doc.md)
- [使用工具自动测试 Quickstart 文档](zh/development/test-quickstart.md)
- [组件开发指南](zh/development/developing-component.md)
- [想要开发新的组件?](zh/development/developing-component.md)
- 想要修改proto文件或API定义?
- [新增API时的开发规范](zh/development/developing-api.md)
- [proto文件注释规范](zh/api_reference/comment_spec_of_proto.md)
- [如何基于proto文件生成接口文档](zh/api_reference/how_to_generate_api_doc.md)
- [Layotto贡献者指南](zh/development/CONTRIBUTING.md)
- [Layotto 四大 Github Workflows 指南](zh/development/github-workflows.md)
- [Layotto 四大 Github Workflows 说明](zh/development/github-workflows.md)
- [Layotto 命令行工具指南](zh/development/commands.md)
- [发布手册](zh/development/release-guide.md)
- [待解决的问题](zh/development/problems-to-solve.md)
Expand Down
35 changes: 20 additions & 15 deletions docs/zh/development/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,31 @@
# Layotto 贡献者指南
# Layotto 贡献指南

Layotto 基于 Apache 2.0 许可发布,遵循标准的 Github 开发流程,使用 Github Issue 跟踪问题并将 Pull Request 合并到 master 分支中。本文档可以帮助你了解如何参与贡献。
Layotto 基于 Apache 2.0 许可发布,遵循标准的 Github 开发流程,使用 Github Issue 跟踪问题并将 Pull Request 合并到 main 分支中。本文档可以帮助你了解如何参与贡献。

在提交 Pull Request 之前您需要先签署[贡献者许可协议(CLA)](http://cla.sofastack.tech/)。虽然签署 CLA 不会给您授予主存储库的提交权利,但这意味着我们可以接受您的贡献,签署 CLA 后您将成为本项目的荣誉作者。对于活跃的贡献者甚至可以加入我们的核心团队,并具有合并 Pull Request 的权限。
## 贡献流程
- 首次提交 Pull Request 后,您需要先签署[贡献者许可协议(CLA)](http://cla.sofastack.tech/mosn)
- 优化您的 Pull Request,确保能通过自动化测试(CI)
- 如果是首次贡献者,您提交 Pull Request 是没法自动触发 CI 的,需要由项目维护者手动运行 CI. 这是 Github 的默认限制, 但您做过一次贡献、成为 contributor 后,再提新 PR 就能自动触发 CI 了。
- CI 的详细说明见 [Layotto GitHub Workflows](zh/development/github-workflows)
- 为了方便开发, Layotto 有一套 make 脚本,可以在本地跑检查、跑测试,在本地启动好 docker 后,敲 `make all` 即可,详见[文档说明](zh/development/commands)
- 由社区维护者来 code review
- code review 如果有修改意见,会在 PR 下留言
- code review 有两票 approve 后, PR 就可以合并

## 代码约定

以下对于 Pull Request 的要求并非强制,但是会对您提交 Pull Request 有帮助。

1. 代码格式规范
你只需要执行 `make format` 去格式化你的代码。
2. 确保所有新的 `.go` 文件都具有简单的 doc 类注释,其中至少包含一个 `author` 标记标识您,并且最好至少包含一个有关该类用途的段落。
1. 代码格式规范: 你只需要执行 `make format` 去格式化你的代码。
2. 确保所有新的 `.go` 文件都具有简单的 doc 类注释
3. 将 Apache Software Foundation 许可证标头注释添加到所有新的 `.go` 文件(可以从项目中的现有文件复制)
4. 将您自己添加为您实质修改的 `.go` 文件的作者(不仅仅是外观更改)。
5. 添加文档
6. 进行一些单元测试也会有很大帮助。
7. 编写提交消息时,请遵循[该约定](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html) ,如果要解决现有问题,请在提交消息的末尾添加 “Fixes gh-XXXX”(其中 XXXX 是 issue 编号)。
8. 请确保代码覆盖率不会降低。
9. 确保提交 Pull Request 之前所有的测试能够正确通过, 只需要执行 `make check`
10. 按照 Github 工作流提交 Pull Request ,并遵循 Pull Request 的规则。

> Layotto 提供了很多方便你贡献的命令行工具,请在[这里](./commands.md)进行查阅
4. 添加文档
5. 进行一些单元测试也会有很大帮助。
6. 请确保代码覆盖率不会降低。
7. 确保提交 Pull Request 之前所有的测试能够正确通过。你可以本地启动好 docker 后,执行 `make all` 去格式化你的代码,进行风格测试,linter 规范测试,单元测试,以及集成测试。但是执行前[请先查看注意事项](zh/development/commands)
9. 按照 Github 工作流提交 Pull Request ,并遵循 Pull Request 的规则。

> Layotto 提供了很多方便本地开发的命令行工具,请在[这里](zh/development/commands)进行查阅

## 版本命名约定

Expand Down
5 changes: 4 additions & 1 deletion docs/zh/development/commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ Layotto 提供了丰富的命令行工具,方便贡献者开发和测试 Layot

## 重要开发命令

+ 你可以执行 `make all` 去格式化你的代码,进行风格测试,linter 规范测试,单元测试,以及构建当前平台的二进制文件。
+ 你可以执行 `make all` 去格式化你的代码,进行风格测试,linter 规范测试,单元测试,以及集成测试。但是执行 `make all` 有以下注意事项:
+ 需要先启动好 docker,以便跑集成测试
+ 运行 `make all` 会删除包含 "redis skywalking hangzhouzk minio" 这些关键字的容器
+ 如果您没装 docker,或者不想删除这些容器,可以执行 `make check` 进行一些不需要 docker 的检查。

+ 你也可以执行 `make format` 去格式化你的代码

Expand Down
6 changes: 4 additions & 2 deletions docs/zh/development/release-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ Layotto 发布周期暂定为每季度发布一次。
1. 检查进行中的任务
2. 检查未完成的任务
3. 与负责人确认任务状态和发布内容

#### Step2: 创建发布 tag, push 至 github 并检查工作流

1. 规范:请按照 `v{majorVersion}.{subVersion}.{latestVersion}` 格式创建 tag。

2. 等待 CI 结束,确认以下内容:
+ CI 测试 Jobs 全部通过:
+ Go 代码风格校验
Expand Down Expand Up @@ -44,8 +45,9 @@ Layotto 发布周期暂定为每季度发布一次。
![img_1.png](../../img/development/release/img_1.png)

#### Step4: 上传多平台架构的 Binaries
> 2022/05/04更新:这一步可以忽略。打 tag 发布后,Layotto 的 Release Pipeline 会自动上传二进制文件,无需手动上传。PR 见 https://github.com/mosn/layotto/pull/566

> 不必手动构建,直接将 `步骤 2` 中构建的多平台 Artifacts 下载上传即可
> 如果没有自动上传,可以手动将 `步骤 2` 中构建的多平台 Artifacts 下载、上传

![img.png](../../img/development/release/img.png)

Expand Down
2 changes: 1 addition & 1 deletion docs/zh/development/test-quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Quickstart 是项目的门面, 如果新用户进入仓库后,发现 Quickstar
~~~
包裹起来的脚本。

注意,不会测试用
注意,不会执行用
~~~markdown
```bash
```
Expand Down