审查 Pull Request
Pull Request 经常提交,是我们与社区互动最好的机会。因此,在合并之前,必须对 Pull Request 进行良好的审查,并且 Pull Request 上的互动必须积极。
谁可以审查 Pull Request?
任何人都可以对 Pull Request 发表评论,包括团队成员和公众。
审查 Pull Request
当打开 Pull Request 时,机器人将检查以下内容
- 提交者是否已签署 CLA?
- 提交消息摘要是否采用正确的格式?
- 提交摘要是否过长?
机器人将添加一条评论,说明它发现的问题。在解决这些问题之前,您无需进一步查看 Pull Request(无需在 Pull Request 上发表评论,要求提交者执行机器人要求的操作 - 这就是我们使用机器人的原因!)。
一旦机器人检查得到满足,您将检查以下内容
- 仔细检查 Pull Request 标题是否基于问题(或如果未引用问题,则基于陈述的问题)正确。
- 如果 Pull Request 对核心进行了更改,请确保存在问题并且 Pull Request 在提交消息中引用了该问题。
- 代码是否遵循我们的约定(包括标题注释、JSDoc 注释等)?如果不是,请留下反馈并参考代码约定文档。
- 对于代码更改
- 是否有测试可以验证更改?如果没有,请要求提供测试。
- 更改是否需要文档?如果是,请要求提交者添加必要的文档。
- 是否存在任何自动测试错误?如果是,请要求提交者检查它们。
- 如果您已审查 Pull Request 并且没有未解决的问题,请留下评论“LGTM”以表示您的批准。如果您希望其他人验证更改,请评论“LGTM 但希望其他人验证”。
注意:如果您是团队成员并且已在 Pull Request 上发表评论,请跟进以验证您的评论是否已得到解决。
Pull Request 的必需批准
任何提交者、审查者或 TSC 成员都可以批准 Pull Request,但合并所需的批准因 Pull Request 的类型而异。
合并非破坏性更改需要一个提交者批准,该更改为
- 文档更改
- 错误修复(针对规则或核心)
- 依赖项升级
- 与构建相关
- 杂项任务
对于非破坏性功能,Pull Request 需要一位审查者或 TSC 成员的批准,以及另一位团队成员的额外批准。
对于破坏性更改,Pull Request 需要两位 TSC 成员的批准。
在 Triage 板上移动 Pull Request
当 Pull Request 由团队成员或外部贡献者创建时,它会自动放置在 Triage 板的“需要分类”列中。在团队成员开始审查之前,Pull Request 应保留在该列中。
如果 Pull Request 没有相关问题,则应通过问题的正常分类流程将其标记为已接受。一旦接受,将 Pull Request 移至“正在实施”列。
如果 Pull Request 确实有相关问题,则
- 如果问题已接受,则将 Pull Request 移至“正在实施”列。
- 如果问题未被接受,则将 Pull Request 移至“正在评估”列,直到问题被标记为已接受,此时将 Pull Request 移至“正在实施”。
一旦 Pull Request 获得一个批准,就会发生以下三种情况之一
- Pull Request 已获得所需的批准,并且等待期(见下文)已过,因此可以合并。
- Pull Request 已获得所需的批准,但等待期尚未过去,因此应将其移至“合并候选”列。
- Pull Request 在合并之前需要另一个批准,因此应将其移至“需要第二次审查”列。
当 Pull Request 获得第二个批准时,它应该要么合并(如果 100% 准备就绪),要么如果在下一个版本之前应该审查任何未解决的问题,则将其移至“合并候选”列。
谁可以合并 Pull Request
TSC 成员、审查者、提交者和网站团队成员可以合并 Pull Request,具体取决于 Pull Request 的内容,一旦它获得所需的批准。
网站团队成员可以合并 eslint.org
存储库中的 Pull Request,如果它是
- 文档更改
- 依赖项升级
- 杂项任务
何时合并 Pull Request
我们使用“合并”按钮将请求合并到存储库中。在合并 Pull Request 之前,请验证
- 所有评论都已得到解决
- 任何发表评论的团队成员都已验证他们的担忧得到了解决
- 所有自动化测试都已通过(切勿合并具有失败测试的 Pull Request)
在合并之前务必感谢提交者,尤其是在他们为 Pull Request 付出了大量工作的情况下。
团队成员可以立即合并 Pull Request,如果它
- 进行小的文档更改
- 是杂项任务
- 修复存储库上其他工作的阻塞(构建相关、测试相关、依赖项相关等)
- 是需要进入补丁版本的重要的修复
否则,团队成员应在合并 Pull Request 之前遵守等待期
- 如果 Pull Request 是在周一至周五打开的,请等待2 天。
- 如果 Pull Request 是在周六或周日打开的,请等待3 天。
等待期确保其他团队成员有机会在合并 Pull Request 之前对其进行审查。
注意:除非您收到所需的批准,否则您不应合并您的 Pull Request。
何时关闭 Pull Request
在某些情况下,适宜在不合并的情况下关闭 Pull Request
- Pull Request 解决了一个已修复的问题。
- Pull Request 已 17 天未更新。
- Pull Request 提交者不愿意遵循项目指南。
在任何这些情况下,请务必留下评论说明关闭 Pull Request 的原因。
关闭评论示例
如果 Pull Request 已 17 天未更新
由于 17 天内没有活动,因此关闭。如果您仍然有兴趣提交此代码,请随时重新提交。
如果 Pull Request 提交者不愿意遵循项目指南。
不幸的是,我们无法接受不遵循我们指南的 Pull Request。我现在将关闭此 Pull Request,但如果您想按照我们的指南重新提交,我们将很乐意审查。