这个流程,是 Egg 团队这几年一直在使用的流程,现分享出来。




提出 Issue


Issue 是一种非常好的可沉淀的交流方式,异步交流,可跟踪,可复现。


Egg 团队不管在内部业务协作、团队事项跟踪、开源项目协作等方面,都非常重度的使用 GitHub Issue


我们使用 GitHub Issue 来与社区交流,它有几种应用场景:



由于 Egg 的插件扩展机制,对应的仓库会非常多,因此为了跟踪方便,我们采用统一入口方式,仅在主仓库开启 Issue 入口。


对应的几种常见的规范,参见上一篇文章:《如何正确的提出 Issue》


提交 Pull Request


开发者(包括社区参与者)通过提交 Pull Request 的方式来实现某个需求或修复缺陷。


此时需要遵循的规则一般有:



image.png


CI 自动化测试



强制检查


没有自动化机制保证的流程是不可靠的,如下图,GitHub 提供了强大的机制来保障:


image.png


首先需要通过 Settings 配置对应的服务:


image.png


其次,可以在 Branchs 里面配置对应的分支的保护:



image.png


Code Review


GitHub 的 Code Review 功能非常的强大,在这里先不展开,大家自己摸索下即可


image.png


发布版本


版本合并后,会根据情况是否需要发布版本:



版本发布严格遵循 语义化版本 Semver 规则,即: x.y.z



发布流程:



# 生成 ChangeLog
git changelog -n -t 1.2.0

# 更新版本
npm version minor --no-git-tag-version

# 自动打 tag 并推送到 GitHub
git release 1.2.0


这块也可以写个工具自动化执行的,或者放到 travis 上自动触发,我们后续会开源出来。