设计评审指南
请确保在适用时遵循以下指南。
V8 设计评审正式化的原因有很多
- 让个人贡献者 (IC) 清楚地了解决策者是谁,并突出显示在项目因技术分歧而无法推进的情况下前进的路径
- 创建一个论坛进行直接的设计讨论
- 确保 V8 技术主管 (TL) 了解所有重大更改,并有机会在技术主管 (TL) 层面上提供意见
- 增加全球所有 V8 贡献者的参与度
摘要 #
重要
- 假设良好的意图
- 友善文明
- 务实
拟议的解决方案基于以下假设/支柱
- 拟议的工作流程将个人贡献者 (IC) 放在首位。他们负责促进流程。
- 他们的指导 TL 负责帮助他们导航领域并找到合适的 LGTM 提供者。
- 如果一个特性没有争议,则几乎不会产生任何开销。
- 如果有很大争议,该特性可以“升级”到 V8 Eng Review Owners 会议,在那里决定下一步行动。
角色 #
个人贡献者 (IC) #
LGTM:N/A
此人为该特性的创建者,也是设计文档的创建者。
IC 的技术主管 (TL) #
LGTM:必须有
此人为给定项目或组件的 TL。很可能此人是你特性将要触及的主要组件的拥有者。如果不清楚谁是 TL,请通过 [email protected] 咨询 V8 Eng Review Owners。TL 负责在适当的情况下将更多人添加到所需 LGTM 列表中。
LGTM 提供者 #
LGTM:必须有
此人需要提供 LGTM。他可能是 IC,也可能是 TL(M)。
文档的“随机”审阅者 (RRotD) #
LGTM:不需要
此人只是简单地审阅和评论提案。应考虑他们的意见,但不需要他们的 LGTM。
V8 Eng Review Owners #
LGTM:不需要
卡住的提案可以通过 [email protected] 升级到 V8 Eng Review Owners。此类升级的潜在用例
- LGTM 提供者没有响应
- 无法达成设计共识
V8 Eng Review Owners 可以推翻非 LGTM 或 LGTM。
详细工作流程 #
- 开始:IC 决定开发一个特性/获得分配给他们的特性
- IC 将他们的早期设计文档/解释器/一页纸发送给一些 RRotD
- 原型被视为“设计文档”的一部分
- IC 将人员添加到 LGTM 提供者列表中,IC 认为这些人应该提供他们的 LGTM。TL 必须在 LGTM 提供者列表中。
- IC 结合反馈。
- TL 将更多人添加到 LGTM 提供者列表中。
- IC 将早期设计文档/解释器/一页纸发送到 [email protected]。
- IC 收集 LGTM。TL 帮助他们。
- LGTM 提供者审阅文档,添加评论,并在文档开头给出 LGTM 或非 LGTM。如果他们添加了非 LGTM,他们有义务列出原因。
- 可选:LGTM 提供者可以从 LGTM 提供者列表中删除自己,或建议其他 LGTM 提供者
- IC 和 TL 共同努力解决未解决的问题。
- 如果所有 LGTM 都已收集,请发送电子邮件到 [email protected](例如,通过 ping 原线程)并宣布实施。
- 可选:如果 IC 和 TL 被阻塞,或希望进行更广泛的讨论,他们可以将问题升级到 V8 Eng Review Owners。
- IC 发送邮件到 [email protected]
- TL 在 CC 中
- 邮件中包含设计文档的链接
- 每个 V8 Eng Review Owners 成员都有义务审阅文档,并可以选择将自己添加到 LGTM 提供者列表中。
- 决定下一步行动以解除该特性的阻塞。
- 如果阻塞器之后没有解决,或者发现了新的、无法解决的阻塞器,请转到 8。
- IC 发送邮件到 [email protected]
- 可选:如果在特性已获批准后添加了“非 LGTM”,则应将其视为正常的、未解决的问题。
- IC 和 TL 共同努力解决未解决的问题。
- 结束:IC 继续开发该特性。
永远记住
- 假设良好的意图
- 友善文明
- 务实
常见问题解答 #
如何决定该特性是否值得拥有设计文档? #
设计文档适用的情况
- 至少涉及两个组件
- 需要与非 V8 项目(例如调试器、Blink)进行协调
- 实施时间超过 1 周
- 是语言特性
- 将触及特定平台的代码
- 用户界面更改
如有疑问,请咨询 TL。
如何决定将谁添加到 LGTM 提供者列表中? #
将人员添加到 LGTM 提供者列表中的情况
- 你预计要触及的源文件/目录的拥有者
- 你预计要触及的组件的主要组件专家
- 更改的下游使用者,例如当你更改 API 时
谁是“我的”TL? #
很可能此人是你特性将要触及的主要组件的拥有者。如果不清楚谁是 TL,请通过 [email protected] 咨询 V8 Eng Review Owners。
在哪里可以找到设计文档模板? #
这里.
如果发生重大更改怎么办? #
确保你仍然拥有 LGTM,例如,通过 ping LGTM 提供者,并提供明确的、合理的截止日期以行使否决权。
LGTM 提供者没有评论我的文档,我该怎么办? #
在这种情况下,你可以按照以下升级路径进行
- 通过邮件、Hangouts 或文档中的评论/分配直接 ping 他们,并明确要求他们添加 LGTM 或非 LGTM。
- 让你的 TL 参与进来,并寻求他们的帮助。
- 升级到 [email protected]。
有人将我添加为文档的 LGTM 提供者,我该怎么办? #
V8 旨在使决策更加透明,升级更加直接。如果你认为设计足够好,应该执行,请在你的姓名旁边的表格单元格中添加“LGTM”。
如果你有阻止性的问题或意见,请在你的姓名旁边的表格单元格中添加“非 LGTM,因为 <原因>”。准备好接受另一轮审查。
这与 Blink Intents 流程如何协同工作? #
V8 设计评审指南补充了 V8 的 Blink Intent+Errata 流程。如果你要发布新的 WebAssembly 或 JavaScript 语言特性,请遵循 V8 的 Blink Intent+Errata 流程和 V8 设计评审指南。在发送实施意向时,收集所有 LGTM 可能是有意义的。