跳转至

为 ZJUI-Learn 做出贡献

ZJUI-Learn 是一个开源项目,欢迎任何人的贡献。参见贡献指南,了解更多贡献流程。

维护者指南

一组值得信赖的核心开发人员负责维护 ZJUI-Learn 存储库。这一责任包括维护代码质量、确保顺利协作以及培育开源社区。这些指南概述了维护者的期望和约定。

一般原则

  • 明智地使用维护者权限
    • 不要批准或合并您不完全理解的更改。
    • 如果您想更好地理解 PR,请提出问题而不是做出假设。
  • 审核职责
    • 在 PR 处于令人满意的合并状态(即已执行测试)之前,主要审核者不应批准 PR。这可能涉及通过 PR 描述中的说明测试更改,或向作者表明需要进一步测试。
    • 维护者应该参与代码审查。并非所有维护者都应该审查每个 PR,但每个 PR 应该至少有一名维护者对其进行审查,更复杂的 PR 可能会受益于多个审查者。
    • 如果维护者被分配给 PR(例如通过自动分配审核分配流程)但由于任何原因无法审核 PR,则他们应该取消分配自己并请求另一位维护者接管审核。
    • 即使您不是主要审阅者,我们仍然鼓励您对 PR 发表评论。对 PR 的更多关注通常会带来更高质量的代码。
  • 合并的责任
    • 如果维护者打开 PR,该人负责在获得批准后合并它。
    • 对于非维护者的 PR,主要审核者负责合并 PR。如果存在突出的挑剔或未解决的讨论,请在合并之前咨询作者。
  • 生产问题的责任
    • 维护人员最终负责确保更改不会导致生产问题。
    • 错误会发生。如果将更改部署到生产后出现问题,维护人员负责解决它。
      • For a PR opened by a maintainer, the author is responsible for resolving any issues. The author should understand that reviewing is done on a best-effort basis.
      • For a PR opened by a non-maintainer, the primary reviewer is responsible for resolving any issues.
  • 接管废弃的 PR
    • 如果 PR 被放弃,另一个维护者可能会选择接管它。然后,该维护者承担响应反馈并最终合并的责任。
    • 在决定接管 PR 时,请运用您的最佳判断。对于较大的 PR,请考虑首先联系原作者。对于较小的 PR,在没有原作者输入的情况下进行修复和合并可能是可以接受的。
    • 如果您进行重大更改,请寻求原作者或其他维护者的审查。

代码审查指南

  • 自我审查
    • 对于作者来说,在向其他人请求 PR 之前检查自己的代码几乎总是非常有价值的。这使作者有机会发现任何错误并阐明自己对代码的理解。
    • 自我审查也是作者为其他审阅者向 PR 添加评论的好机会。例如,作者可能想要突出显示特别重要或可能难以理解的特定更改。
  • 查看评论
    • 保持友善和尊重。请记住,作者是一个在这部作品上投入了时间和精力的人。
    • 要有建设性和乐于助人。如果您请求进行不明显的更改,请解释为什么有必要帮助作者更好地理解代码并为未来的维护人员提供上下文。
    • 宁可留下更多的评论,也不要留下更少的评论。这通常有助于为作者带来更高质量的产品和更好的体验。
    • 小的、主观的建议 ("nits") 在评论中是可以接受的,但不要不必要地迂腐。
    • 对以后难以撤消的更改进行额外的审查,例如对数据库架构或公共 API 的更改。
    • 批准 PR 并仍然留下评论是可以接受的。预计 PR 作者将在合并 PR 之前解决这些评论。
  • 解决代码审查意见
    • 所有代码审查意见都应在合并之前解决。
      • If you made a change that resolved a comment, you should reply to the comment with the commit that resolves it.
    • 发表评论并不总是意味着做出改变。它可能涉及:
      • Explaining why a change is unnecessary. Ideally, wait for the reviewer to acknowledge this before considering the comment to be addressed.
      • Deferring a fix to a fast-follow PR and explicitly stating that in a comment.
      • For non-critical issues, opening an issue to track the need for a change in the future.
    • 使用您的最佳判断来确定评论是否已得到充分解决。
    • 一旦您处理或回复了所有审阅意见,请重新请求主要审阅者进行审阅。这向审阅者发出信号,表明您已准备好进行另一次审阅。