错误分类和问题整理#

问题跟踪器 对项目中的沟通至关重要:它帮助开发人员识别主要项目以进行工作,以及讨论优先级。出于这个原因,对它进行整理非常重要,包括为问题添加标签和关闭不必要的 issue。

处理问题以改进它们#

改进问题会增加它们成功解决的可能性。有关提交良好问题的指南,请参见 此处。第三方可以提供有用的反馈,甚至可以对问题添加评论。以下操作通常很有用

  • 记录缺少元素以重现问题的 issue,例如代码示例

  • 建议更好地使用代码格式

  • 建议重新编写标题和描述,使其更明确地说明要解决的问题

  • 链接到相关问题或讨论,同时简要描述它们之间的关系,例如“另请参见 #xyz,它类似于此尝试”或“另请参见 #xyz,其中 SomeEstimator 中发生了相同的事情”提供了上下文并有助于讨论。

处理 PR 以帮助审查#

也鼓励审查代码。贡献者和用户欢迎按照我们的 审查指南 参与审查流程。

核心团队和贡献者体验团队成员的分类操作#

除了上述内容外,核心团队和贡献者体验团队成员还可以执行以下重要任务

  • 更新 问题和 PR 的标签:查看 可用 github 标签 的列表。

  • 确定是否需要将 PR 重新标记为停滞 或需要帮助(这在冲刺的背景下通常非常重要,因为风险是创建许多未完成的 PR)

  • 如果停滞的 PR 被更新的 PR 接管,则将停滞的 PR 标记为“已取代”,在停滞的 PR 上留下指向新 PR 的评论,并可能关闭停滞的 PR。

  • 分类问题

    • 关闭使用问题,并礼貌地指出报告者改用 Stack Overflow。

    • 关闭重复 issue,在确认它们确实是重复之后。理想情况下,原始提交者将讨论移至较旧的重复 issue

    • 关闭无法复制的 issue,在留出时间(至少一周)添加额外信息之后

保存的回复 有助于节省时间,同时在分类时保持友好和礼貌。

查看 github 描述,了解 组织中的角色

分类问题的典型工作流程#

以下工作流程 [1] 是处理问题分类的一种好方法

  1. 感谢报告者打开了一个问题

    问题跟踪器是许多人与 scikit-learn 项目本身的第一次互动,不仅仅是使用库。因此,我们希望它成为一种受欢迎的、愉快的体验。

  2. 这是一个使用问题吗?如果是,请用礼貌的语言关闭它(这是一个例子)。

  3. 是否提供了必要的信息?

    如果缺少关键信息(例如使用的 scikit-learn 版本),请随时要求提供该信息并将 issue 标记为“需要信息”。

  4. 这是一个重复的 issue 吗?

    我们有很多开放的 issue。如果一个新的 issue 似乎是重复的,请指向原始 issue。如果它是一个明显的重复,或者大家一致认为它是多余的,请关闭它。确保仍然感谢报告者,并鼓励他们参与原始 issue,也许尝试修复它。

    如果新的 issue 提供了相关信息,例如更好的或略有不同的示例,请将其作为评论或对原始帖子的编辑添加到原始 issue 中。

  5. 确保标题准确反映了问题。如果您有必要的权限,请在标题不清楚的情况下自行编辑它。

  6. 问题是否最小且可重现?

    对于错误报告,我们要求报告者提供一个最小的可重现示例。参见 Matthew Rocklin 的 这篇有用的文章,以了解良好的解释。如果示例不可重现,或者它显然不是最小的,请随时询问报告者是否可以提供示例或简化提供的示例。请承认编写最小的可重现示例是一项艰苦的工作。如果报告者正在努力,您可以尝试自己编写一个。

    如果提供了可重现的示例,但您看到了简化,请添加您更简单的可重现示例。

  7. 添加相关标签,例如当问题与文档相关时添加“文档”,如果它显然是一个错误,则添加“错误”,如果它是一个增强请求,则添加“增强”……

    如果问题定义明确,并且修复看起来相对简单,请将 issue 标记为“适合新手”。

    一个额外的有用步骤是标记相应的模块,例如 sklearn.linear_models(如果相关)。

  8. 如果存在“需要分类”标签,请将其从 issue 中删除。