错误分类和问题整理#
该 问题跟踪器 对项目中的沟通至关重要:它帮助开发人员识别主要项目以进行工作,以及讨论优先级。出于这个原因,对它进行整理非常重要,包括为问题添加标签和关闭不必要的 issue。
处理问题以改进它们#
改进问题会增加它们成功解决的可能性。有关提交良好问题的指南,请参见 此处。第三方可以提供有用的反馈,甚至可以对问题添加评论。以下操作通常很有用
记录缺少元素以重现问题的 issue,例如代码示例
建议更好地使用代码格式
建议重新编写标题和描述,使其更明确地说明要解决的问题
链接到相关问题或讨论,同时简要描述它们之间的关系,例如“另请参见 #xyz,它类似于此尝试”或“另请参见 #xyz,其中 SomeEstimator 中发生了相同的事情”提供了上下文并有助于讨论。
处理 PR 以帮助审查#
也鼓励审查代码。贡献者和用户欢迎按照我们的 审查指南 参与审查流程。
核心团队和贡献者体验团队成员的分类操作#
除了上述内容外,核心团队和贡献者体验团队成员还可以执行以下重要任务
更新 问题和 PR 的标签:查看 可用 github 标签 的列表。
确定是否需要将 PR 重新标记为停滞 或需要帮助(这在冲刺的背景下通常非常重要,因为风险是创建许多未完成的 PR)
如果停滞的 PR 被更新的 PR 接管,则将停滞的 PR 标记为“已取代”,在停滞的 PR 上留下指向新 PR 的评论,并可能关闭停滞的 PR。
分类问题
关闭使用问题,并礼貌地指出报告者改用 Stack Overflow。
关闭重复 issue,在确认它们确实是重复之后。理想情况下,原始提交者将讨论移至较旧的重复 issue
关闭无法复制的 issue,在留出时间(至少一周)添加额外信息之后
保存的回复 有助于节省时间,同时在分类时保持友好和礼貌。
查看 github 描述,了解 组织中的角色。
分类问题的典型工作流程#
以下工作流程 [1] 是处理问题分类的一种好方法
感谢报告者打开了一个问题
问题跟踪器是许多人与 scikit-learn 项目本身的第一次互动,不仅仅是使用库。因此,我们希望它成为一种受欢迎的、愉快的体验。
这是一个使用问题吗?如果是,请用礼貌的语言关闭它(这是一个例子)。
是否提供了必要的信息?
如果缺少关键信息(例如使用的 scikit-learn 版本),请随时要求提供该信息并将 issue 标记为“需要信息”。
这是一个重复的 issue 吗?
我们有很多开放的 issue。如果一个新的 issue 似乎是重复的,请指向原始 issue。如果它是一个明显的重复,或者大家一致认为它是多余的,请关闭它。确保仍然感谢报告者,并鼓励他们参与原始 issue,也许尝试修复它。
如果新的 issue 提供了相关信息,例如更好的或略有不同的示例,请将其作为评论或对原始帖子的编辑添加到原始 issue 中。
确保标题准确反映了问题。如果您有必要的权限,请在标题不清楚的情况下自行编辑它。
问题是否最小且可重现?
对于错误报告,我们要求报告者提供一个最小的可重现示例。参见 Matthew Rocklin 的 这篇有用的文章,以了解良好的解释。如果示例不可重现,或者它显然不是最小的,请随时询问报告者是否可以提供示例或简化提供的示例。请承认编写最小的可重现示例是一项艰苦的工作。如果报告者正在努力,您可以尝试自己编写一个。
如果提供了可重现的示例,但您看到了简化,请添加您更简单的可重现示例。
添加相关标签,例如当问题与文档相关时添加“文档”,如果它显然是一个错误,则添加“错误”,如果它是一个增强请求,则添加“增强”……
如果问题定义明确,并且修复看起来相对简单,请将 issue 标记为“适合新手”。
一个额外的有用步骤是标记相应的模块,例如
sklearn.linear_models
(如果相关)。如果存在“需要分类”标签,请将其从 issue 中删除。