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

确定 Release 规则 #47

Closed
5 tasks
popomore opened this issue Aug 16, 2016 · 17 comments
Closed
5 tasks

确定 Release 规则 #47

popomore opened this issue Aug 16, 2016 · 17 comments

Comments

@popomore
Copy link
Member

popomore commented Aug 16, 2016

背景

Egg 参与人员过多,仓库过多,经常会遇到某个人没有某仓库的发布权限。

Release 时会修改版本和更新 changelog,这个也需要 review。

目标

  1. Changelog 可 review
  2. npm 自动发布
  3. 锁定 master 目录不允许提交

方案

锁定 master 目录不允许任何人提交,并添加合并检测(review+2,travis 和 codecov 通过)。

Release 时本地修改版本和 changelog 后提交 PR,review 后合并。

Travis 根据 commit 信息判断是否 release(非 PR,master 分支,切 commit 匹配),通过 eggjs 账号 发布到 npm。

Action

  • 支持 travis 发布 npm 包,还需要自动 push tag
  • “本地生成 changelog 和版本”有工具支持,保证生成格式一致
  • 文档更新
  • 确定 commit 信息 chore(release): release 1.0.0
  • 自动更新 github release

Updated at 2017-02-09


screenshot 2016-08-16 8 25 51

以后所有的仓库都需要这样配置,不允许直接 push 到 master。但是 release 的时候还有一步需要 push,这个规则需要明确下。

@popomore
Copy link
Member Author

最简单的方式是走 pr

  1. 创建 release 分支,修改版本和历史,创建 PR
  2. 合并后根据 master 切 tag
  3. npm publish

也可以考虑自动发布版本,就是 PR 合并后不需要人肉操作,自动切 tag 和 publish

@popomore popomore self-assigned this Aug 17, 2016
@popomore popomore modified the milestone: v1.x Aug 18, 2016
@fengmk2
Copy link
Member

fengmk2 commented Sep 2, 2016

就继续按之前的做法,手动写 release histroy 和版本号,然后提交 pr ,确认没问题后合并到 master,然后打 tag,执行 npm publish。

@popomore
Copy link
Member Author

popomore commented Feb 7, 2017

1.0 后的 release 规则要不要按原先的来?走 PR 提交 changelog。

@fengmk2
Copy link
Member

fengmk2 commented Feb 7, 2017

@popomore 写一个 release 流程说明

@popomore
Copy link
Member Author

popomore commented Feb 7, 2017

那我写个 RFC 吧,然后再讨论

@atian25
Copy link
Member

atian25 commented Feb 8, 2017

新仓库的配置也写一个说明? 包括 branch, service 之类的

@atian25
Copy link
Member

atian25 commented Feb 8, 2017

vue 的 release note 会在 github release 那里: https://github.com/vuejs/vue/releases

这个我们也可以搞搞, 不知道是不是读取 commit message body

@popomore
Copy link
Member Author

popomore commented Feb 8, 2017 via email

@popomore
Copy link
Member Author

popomore commented Feb 9, 2017

更新了

@atian25
Copy link
Member

atian25 commented Feb 9, 2017

+1

这几点要不要补充?

  • 自动跑 benchmark

正文中那些点:

  • 如何可以让每个仓库都配置一样? 避免新库的时候配置遗漏
  • release 的 pr, 只能 core 成员才能点击 merge, 避免误操作导致的版本发布.

@dead-horse
Copy link
Member

其他的模块是否不做这个强约定了?保证 egg 就好,因为 egg 要做的工作可能多一点。

@popomore
Copy link
Member Author

popomore commented Feb 9, 2017

先做 egg 吧,如果工具都有了足够简单的话再看其他库吧。

@fengmk2
Copy link
Member

fengmk2 commented Feb 9, 2017

@dead-horse 只需要 egg 吧,其他模块使用最简单的 release 模式

@fengmk2
Copy link
Member

fengmk2 commented Feb 9, 2017

+1

@atian25 atian25 mentioned this issue Feb 23, 2017
31 tasks
@fengmk2 fengmk2 closed this as completed Mar 21, 2017
@popomore popomore removed this from the 1.0.0 milestone Mar 21, 2017
@popomore popomore reopened this Mar 21, 2017
@popomore
Copy link
Member Author

这个还没做完

@dead-horse
Copy link
Member

感觉现在的发布模式也够用了,这个 issue 关掉吧?

@atian25
Copy link
Member

atian25 commented Jul 1, 2018

加到 Project: maybe 里面待跟踪吧。可以先关掉。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants