錯誤分類指南

本指南討論在 Ruby 錯誤追蹤器中分類錯誤的建議。

有可重現範例的錯誤

這些是最佳的錯誤報告。首先,考慮報告的錯誤是否實際上是一個問題,或者是否為預期的 Ruby 行為。如果是預期的 Ruby 行為,請更新議題說明預期的行為為何,並將狀態設為已拒絕。

如果報告的錯誤似乎是實際的錯誤,請嘗試使用 master 分支重現錯誤。如果您無法在 master 分支上重現問題,請嘗試在報告錯誤的分支的最新版本上重現問題。如果您在任何情況下都無法重現問題,請更新議題說明您無法重現問題,詢問報告者是否可以使用 master 分支或較新的版本重現問題,並將狀態設為意見回饋。

如果您可以使用 master 分支重現範例,請嘗試找出導致問題的原因。如果您覺得沒問題,請嘗試針對問題進行修補,更新議題,並附加修補程式。嘗試找出應將哪位提交者指派給此議題,並將他們設為受讓人,並將狀態設為已指派。

如果您無法使用主分支重現範例,但可以在分支的最新版本上重現問題,那麼很可能是錯誤已經修復,但尚未回傳。嘗試確定哪個提交已修復它,並更新問題,指出問題已修復但尚未回傳。如果 Ruby 版本處於安全維護階段或不再支援,請將狀態變更為已關閉。可以進行此變更而不新增註解,以避免垃圾郵件寄送清單。

對於可能需要向後不相容變更或可能受益於一般提交者關注或討論的問題,請考慮將它們新增為下一次提交者會議的議程項目 (bugs.ruby-lang.org/issues/14770).

沒有重現的崩潰錯誤

許多報告的錯誤幾乎沒有比崩潰報告更多,通常沒有辦法重現問題。這些錯誤難以分類,因為它們通常不包含足夠的資訊。

對於這些錯誤,如果 Ruby 版本為主分支或分支的最新版本,並且分支處於正常維護階段,請查看回溯並查看您是否可以確定可能導致問題的原因。如果您能猜出可能導致問題的原因,請查看您是否可以彙整一個可重現的範例(這通常相當困難)。如果您無法猜出可能導致問題的原因,或無法自行彙整一個可重現的範例,請要求報告者提供一個可重現的範例,並將狀態變更為意見回饋。

如果 Ruby 版本不再是最新版本(例如,Ruby 2.5 分支的最新版本為 2.5.5 時為 2.5.0),請在問題中新增一個註解,要求報告者嘗試分支的最新 Ruby 版本並回報,並將狀態變更為意見回饋。如果 Ruby 版本處於安全維護階段或不再支援,請將狀態變更為已關閉。可以進行此變更而不新增註解。

具有第三方 C 延伸模組的崩潰錯誤

如果崩潰發生在第三方 C 延伸模組內部,請嘗試找出它發生在哪些 C 延伸模組內部,並在問題中新增一個註解,將問題回報給該 C 延伸模組,並將狀態設定為第三方的問題。

非錯誤報告

錯誤追蹤器中任何非問題回報的議題,都應將追蹤器從錯誤變更為功能(新功能或效能提升)或其他。此變更可無需新增註解。

過期議題

有許多議題已過期,數月甚至數年沒有更新。對於回饋狀態的過期議題,其中未收到回饋,您可以將狀態變更為已關閉,而無需新增註解。對於已指派狀態的過期議題,您可以聯繫受指派者,並查看他們是否可以更新議題。如果受指派者不再是活躍的提交者,請將其移除為受指派者,並將狀態變更為開啟。