FAQ:程式碼貢獻¶
我該如何開始貢獻程式碼給 Django?¶
感謝提問!我們已經撰寫了一整份文件專門說明這個問題。標題是貢獻給 Django。
我數週前提交了一個錯誤修正。為什麼你們忽略我的貢獻?¶
別擔心:我們沒有忽略你!
重要的是要理解「議題被忽略」和「議題尚未被處理」之間存在差異。Django 的議題追蹤系統包含數百個未處理的議題,這些議題對終端使用者功能有不同程度的影響,而 Django 的開發人員必須進行審查和優先排序。
最重要的是:在 Django 上工作的人都是志願者。因此,我們能夠花在框架上的時間是有限的,並且會根據我們的空閒時間每週變化。如果我們很忙,我們可能無法像我們希望的那樣花費那麼多時間在 Django 上。
確保議題在簽入過程中不會被擱置的最好方法是使其非常容易,即使對於那些可能不熟悉程式碼該領域的人來說,也能夠理解問題並驗證修復。
是否有關於如何重現錯誤的明確指示?如果這涉及到一個相依性 (例如 Pillow)、一個 contrib 模組或一個特定的資料庫,這些指示是否足夠清晰,即使對於那些不熟悉它的人也是如此?
如果有多個分支連結到該議題,是否清楚每個分支的作用、哪些可以忽略以及哪些重要?
變更是否包含單元測試?如果沒有,是否有非常清楚的解釋說明為什麼沒有?測試簡潔地表達了問題是什麼,並表明該分支實際上修復了它。
如果您的貢獻不適合包含在 Django 中,我們不會忽略它,我們會關閉該議題。因此,如果您的議題仍然開啟,這並不表示我們忽略您;這只是表示我們尚未有時間查看它。
我何時以及如何提醒團隊我關心的變更?¶
在論壇/分支中發送禮貌且時機恰當的消息是引起注意的一種方式。為了確定正確的時間,您需要關注排程。如果您在發布截止日期之前發布您的訊息,您不太可能獲得您所需的那種關注。
溫和的 IRC 提醒也可以起作用 - 如果可能的話,再次戰略性地安排時間。例如,在錯誤衝刺期間將會是一個非常好的時間。
獲得關注的另一種方法是將多個相關的議題拉在一起。當有人坐下來審查他們一段時間沒有觸及的區域中的錯誤時,可能需要幾分鐘才能記住該程式碼區域如何工作的全部細節。如果您將幾個小的錯誤修復收集到一個類似主題的群組中,您將成為一個有吸引力的目標,因為熟悉某個程式碼區域的成本可以分攤到多個議題中。
請不要親自發送電子郵件給任何人或重複一遍又一遍地提出相同的問題。這種行為不會為您帶來任何額外的關注 - 當然不會是您需要解決問題的關注。
但是我已經提醒你們好幾次了,你們仍然忽略我的貢獻!¶
認真地說 - 我們沒有忽略您。如果您的貢獻不適合包含在 Django 中,我們將關閉該議題。對於所有其他議題,我們需要優先考慮我們的工作,這意味著有些議題將會比其他議題更早得到處理。
用於優先處理錯誤修復的標準之一是可能受特定錯誤影響的人數。有可能影響許多人的錯誤通常會優先於那些邊緣情況的錯誤。
錯誤可能被忽略一段時間的另一個原因是,該錯誤是更大問題的徵兆。雖然我們可以花時間編寫、測試和應用許多小的變更,但有時正確的解決方案是重建。如果已經提出或正在進行特定組件的重建或重構,您可能會發現影響該組件的錯誤不會受到太多關注。同樣,這是優先分配稀缺資源的問題。透過專注於重建,我們可以一次關閉所有小的錯誤,並希望防止未來出現其他小的錯誤。
無論原因是什麼,請記住,雖然您可能會經常遇到特定錯誤,但這並不一定意味著每個 Django 使用者都會遇到相同的錯誤。不同的使用者以不同的方式使用 Django,在不同的條件下強調程式碼的不同部分。當我們評估相對優先級時,我們通常會嘗試考慮整個社群的需求,而不是優先考慮對特定使用者的影響。這並不表示我們認為您的問題不重要 - 只是在我們有限的時間內,我們始終會選擇讓 10 個人快樂,而不是讓單一個人快樂。
我確定我的議題絕對 100% 完美,我可以自己將其標記為「準備簽入」嗎?¶
抱歉,不行。讓其他人檢查議題總是比較好的。如果您在獲得第二組檢查時遇到問題,請參閱上面的問題。