- 原文见:https://github.com/golang/go/wiki/Go-Release-Cycle
- By Alex Cai
Go 现在的发布周期基本是半年一个版本,新的功能特性的开发主要集中在前 3 个月,之后会冻结起来,原则上只接受 bug 修复和文档更新,最终完成测试和发布。
计划下一个发布周期的版本的主要特性。
如果前一个版本的问题还没有被修复完成,则这个里程碑会被延迟,但是这不会影响下一个里程碑。
在冻结期间, 通常只有修复bug和更新文档是被允许的, 当然也会有特殊情况, 但是那应该是预先计划好的, 并且保证是低风险的.
在这个时间段内, 最重要的事情是通过测试发现更多的bug, 并修复, 以提升版本的质量. 在修复bug的时候, 需要保证该修复不会带来新的问题. 如果修复一个bug, 却可能带来其他bug的风险比较高, 则该修复有可能被拒绝, 特别是到了快要发布的时候.
在冻结周期的第一个月内, 大部分发现的bug应该都会被修复, 只有少部分会被放到下个版本中修复, 甚至无限期延迟.
在阶段的后期, 修改文档和修复新功能的bug, 都是风险比较低的, 因为这个版本新加入的功能不会引起原有代码的问题.
beta版本的发布标志着该版本几乎所有已知的bug都已经被修复了, 现在开始进入发现未知bug的时候.
随着潜在问题的发现及修复, 当代码发生显著变化的时候, 新的beta版本就会发布, 通常beta版本的周期不会超过两周. 重要的不是我们发布了多少个Beta版本或者RC版本, 而是我们必须邀请我们的用户参与测试, 但是不能提太多的要求而打击了他们的热情.
注意: Beta版本不应该在正式环境下使用.
RC版本(候选版本)的发布表明版本已经解决最终的发布版本了, 后面通常只是修改和完善文档, 修复关键性的bug, 这种bug通常是比较罕见的了. 如果发现并修复了关键性bug, 新的RC版本就会发布, 其发布周期通常不会超过两个星期.
RC版本经过相关的测试之后, 建议相关的组织能够应用到其内部的生产环境之中.
在这段时间的后半期是讨论下一个版本的好时机.
正式版(Release)的发布意味着重要的bug都已经被修复, 所有代码都已经经过了良好的测试.
如果版本发布延期了, 这虽然不理想, 但也是可以接受的. 因为Google使用RC版本作为默认版本的方式, 所以在正式版本发行之前, 其实已经经历了4个星期的发布测试, 虽然这还不能保证完全没有问题, 但是我们有信心这已经是高质量的版本了. 我们强烈建议其他的组织也开始使用新版本, 并积极给我们报告问题.
一旦正式版本已经发布, 就可以开始下一个版本的工作了, 包括代码审查和提交新代码等.
Date: 2016-08-23 Author: alex cai [email protected]