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

确认主要venus代码库的配置,Action,CI/CD等项是否设置合理. #5071

Closed
13 tasks done
zl03jsj opened this issue Jul 12, 2022 · 7 comments
Closed
13 tasks done
Assignees
Labels
C-dev-productivity Category: Developer productivity P2 Medium - we should get to this soon

Comments

@zl03jsj
Copy link
Contributor

zl03jsj commented Jul 12, 2022

关于代码仓库的设置是否合理检查

  • 主要检查保护分支,以及保护分支的配置是否合理, 参照仓库保护分支及相关规则来设置.
  • 关于security/dependabot的配置是否正常.(Dependabot alert, Dependabot security)
  • 自动删除已合并的分支

关于仓库 action, ci/cd, 自动化检查等是否合理的检查

主要参考代码仓库质量管理部分的文档.

主要审查是否包含以下自动化内容:

  1. 代码风格检查
    使用的工具版本(golang-ci-lint)是否符合要求, 各组件是否统一化.
  2. 自动化测试, 单元测试, 覆盖率上报.
  3. 版本自动发布脚本
    触发条件是否正确(any tag, merge to master), 是否推送到发布的ftp服务区和天眼.
  4. 基于git的代码变动检查
    对于不在版本控制工具追踪的内容, 要么认为是错误, 要么应该加入到.gitignore清单中.

需要检查的组件

其它问题.

@zl03jsj zl03jsj self-assigned this Jul 12, 2022
@zl03jsj zl03jsj added P1 High - we should be working on this now or in the immediate future P2 Medium - we should get to this soon and removed P1 High - we should be working on this now or in the immediate future labels Jul 12, 2022
@zl03jsj zl03jsj mentioned this issue Jul 12, 2022
27 tasks
@zl03jsj zl03jsj moved this to In Progress in Venus Project Jul 12, 2022
@zl03jsj zl03jsj added the C-dev-productivity Category: Developer productivity label Jul 12, 2022
@zl03jsj
Copy link
Contributor Author

zl03jsj commented Jul 13, 2022

关于venus的检查结果

仓库设置检查

  • 增加保护分支匹配模式prep/*,release/*.
  • 通用项中, 增加了Automatically delete head branches , pr合并后自动删除已合并的分支.
  • 启用 Allow merge commits
  • 保护分支的规则修改:
    1. 增加了Dismiss stale pull request approvals when new commits are pushed 项, 及当新的pr合并以后, 未合并的pr的approve状态会被重置掉.
    2. 增加了规则Require conversation resolution before merging, 合并前要求解决所有对话.
    3. Require branches to be up to date before merging项中, 增加了build检查(action中有个build), 如果build失败, 则不允许合并.

git action检查

满足清单检查项中的所有要求

@zl03jsj
Copy link
Contributor Author

zl03jsj commented Jul 13, 2022

venus-messager检查结果

仓库配置项

  • 同时存在'main', 'master', 将把'master'作为主分支, 删除'main' @diwufeiwen
  • code security and analysis开启dependabot alertsdependabot security upddate项.
  • general, 增加了Automatically delete head branches
  • branch 增加了'main','prep/*'保护分支的规则, 保护规则的设置参考分支保护规则

git action检查, 参考代码检查

  • 缺少基于git的对于代码库变动的检查, 缺少go mod tidy的检查
  • 缺少golang-ci-lint检查, 目前使用的是static-change, 需要修改为golang-ci-lint, 并检查项统一化.
  • go.yml的action中, 有两个测试, 但是功能完全一样, 需要对此进行调整.

@zl03jsj
Copy link
Contributor Author

zl03jsj commented Jul 18, 2022

仓库设置中, 关于是否开启:Dismiss stale pull request approvals when new commits are pushed是一个比较有争议的项.
因为开启此项后, 带来更严谨的代码review的同时, 也可能对工作效率带来降低.

下面对于开启和不开启的理由分别用两个举例来说明:

需要开启的理由

比如开发者提交了一份代码, 得到了审阅者的approve, 之后, a又对代码的逻辑进行了一些修改,并提交了第二个commit, 此时, 对于代码的审查, 是应该取消之前的approve, 并从新review的.

不需要开启的理由

比如, 开发者提交了一份代码, 此时需要3个approve代码才能合并, 前2个代码审阅者都approve通过了, 但第3个审阅者提除了一个比较挑剔的修改意见(比如: 修改了一下变量名),
此时, 提交者, 为了满足这个挑剔的意见, 对代码做了很简单的修改. 并重新提交, 这样, 就会导致之前的2个approve失效, 前两个代码审阅者不得不重新review并且approve代码. 这种情况, 会对工作效率造成较大的影响.

所以, 关于是否开启, 各有优势. 应根据各自的项目的具体情况来决定.

比如:

  • 仓库设置, 只需要一个approve的情况.此时,效率影响不大, 建议开启.
  • 项目对审查要求本身就非常严格的情况, 建议开启.

其他情况, 可以不开启.

@zl03jsj
Copy link
Contributor Author

zl03jsj commented Jul 18, 2022

venus-auth检查结果

仓库配置项

  • code security and analysis开启dependabot alertsdependabot security upddate项.
  • general, 增加了Automatically delete head branches
  • branch, 参考分支保护规则
    • master启用必须通过action中的check项才能合并PR.
    • master启用Require conversation resolution before merging,要求合并前解决所有对话.
    • 增加prep/**, 与master的规则一致.

git action检查, 参考代码检查

  • 缺少基于git的变化的检查, 缺少go mod tidy的检查
  • 缺少是能够编译目标文件的检查.
  • 修复提交PR到合并PR之间多次执行auto release脚本的问题.

@zl03jsj
Copy link
Contributor Author

zl03jsj commented Jul 18, 2022

venus-miner检查结果

仓库配置项

  • 去掉了master分支设置的:Require review from Code Owners, PR强制要求代码owner approve

git action检查

  • venus-miner项目独立使用了circleci自动化检查,包含了
  • mod tidy检查
  • golangci-lint检查
  • test coverage
  • build checks
    覆盖了git action要求的所有范围.符合要求.

@zl03jsj
Copy link
Contributor Author

zl03jsj commented Jul 18, 2022

venus-gateway检查结果

仓库配置项修改

  • venus-gateway没有配置保护分支策略. 直接增加了master, prep/**作为保护分支策略.
  • 启用Automatically delete head branches, 自动删除合并后的分支.
  • 开启dependabot alert, 和 Dependabot security updates

git action检查

  • check workflow中增加了基于github的仓库变动检查, 去掉了重复的Test job.

@zl03jsj
Copy link
Contributor Author

zl03jsj commented Jul 18, 2022

venus-wallet检查结果

仓库配置项修改

  • 修改master保护分支策略:要求通过check检查才能合并pr; 要求解决所有conversition才能合并pr.
  • 增加prep/**作为保护分支策略.
  • 启用Automatically delete head branches, 自动删除合并后的分支.
  • 开启dependabot alert, 和 Dependabot security updates

git action检查

  • 修复一个pr会多次触发自动发布的workflow的问题.
  • check workflow中增加了基于github的仓库变动检查, 去掉了重复的Test job

@zl03jsj zl03jsj closed this as completed Jul 18, 2022
Repository owner moved this from In Progress to Done in Venus Project Jul 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-dev-productivity Category: Developer productivity P2 Medium - we should get to this soon
Projects
Archived in project
Development

No branches or pull requests

1 participant