Bug 分类指南¶ ↑
本指南讨论了在 Ruby 的 Bug 跟踪器中对 Bug 进行分类的建议。
可重现示例的 Bug¶ ↑
这些是最好的 Bug 报告。首先,考虑报告的 Bug 是否真的是问题,还是预期的 Ruby 行为。如果它是预期的 Ruby 行为,请更新问题,说明为什么这种行为是预期的,并将状态设置为 Rejected。
如果报告的 Bug 似乎是真正的 Bug,请尝试使用 master 分支重现 Bug。如果您无法在 master 分支上重现问题,请尝试在 Bug 报告所在的最新分支版本上重现问题。如果您在这两种情况下都无法重现问题,请更新问题,说明您无法重现问题,询问报告者是否可以在 master 分支或更高版本上重现问题,并将状态设置为 Feedback。
如果您能够使用主分支重现示例,请尝试找出导致问题的原因。如果您觉得可以,请尝试为问题制作补丁,更新问题,并附加补丁。尝试找出应该将问题分配给哪个提交者,并将他们设置为分配者,并将状态设置为已分配。
如果您无法使用主分支重现示例,但可以在分支的最新版本上重现问题,那么很可能是该错误已被修复,但尚未回溯。尝试确定哪个提交修复了它,并更新问题,指出该问题已修复但尚未回溯。如果 Ruby 版本处于安全维护阶段或不再受支持,请将状态更改为已关闭。此更改可以在不添加注释的情况下进行,以避免向邮件列表发送垃圾邮件。
对于可能需要向后不兼容的更改或可能从一般提交者关注或讨论中受益的问题,请考虑将它们添加为下次提交者会议的议程项目 (bugs.ruby-lang.org/issues/14770).
没有重现器的崩溃错误¶ ↑
许多报告的错误只有崩溃报告,通常没有办法重现问题。这些错误很难进行分类,因为它们通常不包含足够的信息。
对于这些错误,如果 Ruby 版本是主分支或分支的最新版本,并且分支处于正常维护阶段,请查看回溯并查看是否可以确定导致问题的原因。如果您能猜到导致问题的原因,请查看是否可以创建一个可重现的示例(这通常非常困难)。如果您无法猜到导致问题的原因,或者无法自己创建一个可重现的示例,请要求报告者提供一个可重现的示例,并将状态更改为反馈。
如果 Ruby 版本不再是最新的(例如,最新版本为 2.5.5 时为 2.5.0),请在问题中添加一条说明,要求报告者尝试该分支的最新 Ruby 版本并反馈,并将状态更改为反馈。如果 Ruby 版本处于安全维护阶段或不再受支持,请将状态更改为已关闭。此更改无需添加说明。
第三方 C 扩展的崩溃错误¶ ↑
如果崩溃发生在第三方 C 扩展内部,请尝试找出崩溃发生在哪个 C 扩展内部,并在问题中添加一条说明,要求报告者向该 C 扩展报告问题,并将状态设置为第三方问题。
非错误报告¶ ↑
错误跟踪器中任何不是问题报告的问题,都应将跟踪器从错误更改为功能(新功能或性能改进)或其他。此更改无需添加说明。
陈旧问题¶ ↑
许多问题都是陈旧的,几个月甚至几年都没有更新。对于处于反馈状态的陈旧问题,如果尚未收到反馈,您可以将状态更改为已关闭,无需添加说明。对于处于已分配状态的陈旧问题,您可以联系分配者,看看他们是否可以更新问题。如果分配者不再是活跃的提交者,请将其从分配者中移除,并将状态更改为打开。