QA/发布
< QA
OpenStack QA 根据每个工具的发布模型发布其工具,还需要处理 devstack 和 grenade 上的新分支集。本页面解释了 OpenStack 每个版本 QA 团队需要执行的流程和任务。
目录
项目发布
功能冻结
QA 项目遵循不同的发布模型(在下一节中说明),因此功能冻结不适用于所有项目。我们仅对以下项目进行功能冻结
- Tempest:周期发布计划的 R-3 周(硬字符串冻结)。例如 Victoria Release Schedule
- 以下是功能冻结的主题
- 新的测试
- 新的 API 测试可以在看到绿色门后合并
- 场景测试需要在 QA 小时讨论期间讨论,并根据其复杂性决定
- 新的依赖项/依赖项升级
- 除非对发布是必要的,否则不要合并。
- 非稳定/稳定接口
- 任何删除弃用接口或变量,或任何可能破坏插件用户使用的更改。
- 如果不是弃用的接口,我们需要推迟到下一个周期。
- 任何框架更改都将动态检查,并决定是否推迟到下一个版本。
- 新的测试
- 以下是功能冻结的主题
- Devstack:周期发布计划的 R-3 周(硬字符串冻结)。
- 以下是功能冻结的主题
- 更改默认行为/配置。
- 如果未隔离,则新的备份/驱动程序支持。
- 以下是功能冻结的主题
- Grenade:周期发布计划的 R-3 周(硬字符串冻结)。
- 以下是功能冻结的主题
- 更改默认行为/配置。
- 以下是功能冻结的主题
- Patrole:周期发布计划的 R-3 周(硬字符串冻结)。
- 以下是功能冻结的主题
- 与 Tempest 相同。
- 以下是功能冻结的主题
发布模式为 cycle-with-intermediary 的项目
Tempest
注意:Step0 会破坏 Tempest 插件作业,因为在固定约束时 Tempest 虚拟环境会被重新创建,并且插件会从创建的虚拟环境中卸载。为了避免在关键时刻破坏插件作业,我们应该在周五晚些时候或周末执行 Step0,并提前通过 openstack-discuss ML 发送电子邮件通知。
- Step0:阅读并遵循“如何在 tox.ini 中固定 upper-constraints”步骤。
- Step1:添加发布说明以标记发布
- Step2:将发布标签推送到 openstack/release 仓库
- Step3:在发布补丁合并后添加发布说明页面
- Step4:在 openstck/release 中添加 releasenotes 页面链接
- Step5:如果发布是任何稳定分支的结束支持,则从 tempest gate 中删除 End of Support 分支作业
发布模式为 independent 的项目
以下项目具有独立发布,不与 OpenStack 周期发布相关联。
- hacking
- os-testr
- bashate
- devstack-tools
- eslint-config-openstack
没有发布的项目
以下项目没有发布,仅作为 master 版本维护。
- coverage2sql
- devstack-plugin-cookiecutter
- devstack-plugin-open-cas
- devstack-plugin-nfs
- devstack-vagrant
- karma-subunit-reporter
- openstack-health
- os-performance-tools
- stackviz
- tempest-stress
- tempest-plugin-cookiecutter
仅有分支的项目
对于大多数情况,Devstack 和 Grenade 只有分支,需要在其他项目在发布期间获得 stable/* 分支时进行切割。
- Devstack
- Step1:等待 Devstack 仓库中的项目上存在 stable/* 分支
- Step2:向 openstack/releases 提议为 Devstack 创建 stable/foo 分支
- Step3:更新 stable/foo 的 .gitreview – 来自 OpenStack Release Bot 的补丁
- Step4:更新 stable/foo 的分支
- Step5:更新 master Devstack 上的 DEVSTACK_SERIES
- Step6:更新 stable/foo 上的 lib/tempest 以硬编码最大微版本和扩展
- Step7:在 stable/foo 上将 INSTALL_TEMPEST 更新为 False
- Step8:在 Devstack 分支之后。在 Tempest 管道中添加一个新的稳定分支作业。
- Step9:在 Devstack 分支之后。将新的稳定分支添加到 openstack-zuul-jobs 中 periodic-stable 作业模板的列表中。
- Grenade
- Step1:等待 Devstack 上存在 stable/foo
- Step2:向 openstack/releases 提议创建 stable/foo 分支
- Step3:更新 stable/foo 的 .gitreview – 来自 OpenStack Release Bot
- Step4:将 master grenade 设置更新为 stable/foo 以进行 master 升级
- Step5:更新 stable/foo 中的 grenade 设置
- devstack-plugin-container
- 一旦 devstack 分支,使用当前哈希推送最终版本以切割分支,类似于 devstack。
- devstack-plugin-ceph
- 一旦 devstack 分支,使用当前哈希推送最终版本以切割分支,类似于 devstack。
一旦完成所有操作,你就可以去喝啤酒了 \o/