蓝图
Launchpad 蓝图用于跟踪 OpenStack 中重要功能的实现情况。保持其状态最新对于发布和项目的整体成功至关重要。它可以避免不必要的报告、ping 和讨论,并让每个人保持同步。
目录
蓝图和规范
除了跟踪实现状态外,蓝图还可以用于提出设计并获得批准。具体来说,您可以链接到包含规范的外部页面,并使用蓝图中的“设计”字段来跟踪规范的批准。但是,Launchpad 缺少许多使迭代规范设计和批准可用的功能,例如讨论或迭代规范的多个修订版本,或记录多个批准的能力。
为了解决这个问题,从 Juno 周期开始,一些项目决定尝试使用特定的 git 仓库(*-specs)来提出、讨论、迭代和跟踪使用 Gerrit 而不是 Launchpad 的规范批准。这些项目仍然最终使用 Launchpad 一旦规范获得批准,以跟踪已批准功能的实现状态。
这导致了两种略微不同的工作流程,具体取决于目标项目是否使用 -specs 仓库。
规范 + 蓝图生命周期
对于使用 -specs 仓库的项目(如 Nova、Neutron、Oslo、Ceilometer...),您应该遵循此流程
- 通过访问 launchpad.net/$PROJECT 上的项目页面并单击“注册蓝图”来在 Launchpad 中注册您的蓝图
- 将设计规范上传到 $PROJECT-specs 中的“specs/<release>”文件夹
- 例如:http://git.openstack.org/cgit/openstack/nova-specs/tree/specs/juno/name-of-your-blueprint-in-launchpad
- 它应该基于 specs/template.rst,有关更多详细信息,请参阅模板中的说明
- 通过 Gerrit 提交您的补丁以进行审查,以通常的方式:开发工作流程
- 在每个版本的结束时,未完成的规范将被删除
- 如果蓝图延期,您需要重新提交以供下一个版本使用
- 项目驱动程序将通过以下方式批准蓝图
- 设置优先级
- 根据负责人建议设置目标里程碑
- 负责人会保持里程碑和实现状态的最新状态以反映进度
- 当工作完成时,负责人将实现状态设置为“已实现”
注意:自动化脚本将确保未批准(未优先排序)的蓝图上未设置任何里程碑目标。
仅蓝图生命周期
对于不使用 -specs 仓库的项目(Horizon、Trove...),您应该遵循此流程
- 通过访问 launchpad.net/$PROJECT 上的项目页面并单击“注册蓝图”来在 Launchpad 中注册您的蓝图
- 在蓝图本身中简要描述该功能
- 如果您有更多信息,请链接到另一个文档(使用规范链接)
- 将自己设置为负责人
- 设置目标里程碑以指示您预计工作何时完成
- 项目驱动程序将通过以下方式批准蓝图
- 设置优先级
- 负责人会保持里程碑和实现状态的最新状态以反映进度
- 当工作完成时,负责人将实现状态设置为“已实现”
蓝图参考
以下是 Launchpad 蓝图中可用的不同字段,以及我们在 OpenStack 项目中如何使用它们。
规范链接
指向其他文档的 URL,可能描述设计和实现细节。
优先级
PTL 及其蓝图审查团队使用优先级来传达给定功能对于下一个版本的成功有多重要。
| 必要 | 最好不要在没有该功能的情况下发布 |
| 高 | 我们绝对应该在发布中包含的重要功能 |
| 中 | 可选功能,它仍然应该在路线图上 |
| 低 | 可选功能,它可能会实现,但我们不应该关注发布雷达 |
| 未定义 | 蓝图尚未分类 |
定义
您可以在规划/批准阶段选择性地使用此字段。我们还使用它来标记蓝图为已过时或已弃用。
实现
使用此状态指示蓝图的完成程度。这是强制性的。
| 未知 | 尚未设置实现状态!请修复它! |
| 未开始 | 实现为 0% |
| 已开始 | 实现大于 0% |
| 已阻止 | 实现被阻止,有关详细信息,请参阅白板,应在下一次发布会议上讨论 |
| 进展缓慢 | 实现未被阻止,但可能无法达到目标里程碑 |
| 进展良好 | 实现正在按计划进行,预计将在目标里程碑交付 |
| Beta 可用 | 实现几乎完成,代码现在在分支中或草稿审查中可用 |
| 需要代码审查 | 所有更改都已在审查中提出 |
| 已实现 | 所有更改都已合并 |
额外的状态(您可能不应该使用它们)
| 信息 | 不需要代码更改。也许一开始就不需要蓝图。 |
| 已推迟 | 蓝图已推迟到未来的版本。您应该使用未来的系列下一个里程碑。 |
| 需要基础设施 | (未使用) |
| 部署 | (未使用) |
系列目标
拟议更改的发布系列(Essex、Folsom...)。这应始终与目标里程碑匹配。自动化脚本将确保这两个字段匹配,它大约每 2 小时运行一次。
审批人
项目的 PTL(可选)。
起草人
负责此蓝图规划阶段的人员(可选)。
负责人
负责实现蓝图的人员。这是强制性的。
里程碑目标
蓝图应完成的里程碑。此字段的使用取决于所遵循的工作流程(见上文)。在以规范为驱动的工作流程中,它最初由审批时驱动程序设置。在纯蓝图工作流程中,它最初由负责人设置,以传达预计工作何时完成。在两种情况下,它都由负责人维护,以传达预计工作何时完成。
相关分支
未使用。
相关错误
与此蓝图相关的错误(如果有)。
冲刺
未使用。
反馈请求
未使用。
白板
自由格式的注释。如果蓝图实现被阻止,则应在此说明原因。Gerrit 会将有关相应审查的注释添加到此字段。
依赖树
蓝图之间的依赖关系。如果一个蓝图需要在另一个之前交付,则需要在记录在这里。请注意,如果 B 依赖于 A 的完成,则 A 的优先级应与 B 的优先级一样高(或更高)。