給新貢獻者的建議¶
您是新貢獻者,不確定該做什麼嗎?想要幫忙,但不知道如何開始嗎?這個章節就是為您準備的。
開始運作!
如果您是第一次為 Django 貢獻,為 Django 撰寫您的第一個貢獻 教學將會為您介紹相關工具和工作流程。
本頁包含更多關於如何為 Django 做出貢獻,以及如何著手進行的一般建議。
如果您正在尋找關於程式碼貢獻細節的參考資料,請參閱 貢獻程式碼 文件。
第一步¶
從這些步驟開始,來探索 Django 的開發流程。
分類票券¶
如果未審閱的票券回報了一個錯誤,請嘗試重現它。如果您可以重現它,而且看起來是有效的,請註明您已確認此錯誤並接受此票券。請確保該票券被歸檔在正確的組件區域下。考慮撰寫一個補丁,為該錯誤的行為添加一個測試,即使您沒有修復該錯誤本身。請參閱 我如何協助分類? 以了解更多資訊。
審閱已接受票券的補丁¶
這將幫助您熟悉程式碼庫和流程。如果補丁需要文件或測試,請標記適當的旗標。仔細查看補丁所做的變更,並留意與較舊但仍受支援的 Python 版本不相容的語法。 執行測試並確保它們通過。在可能且相關的情況下,嘗試在 SQLite 以外的資料庫上執行它們。留下評論和回饋!
保持舊的補丁為最新¶
通常,程式碼庫會在提交補丁和審閱之間發生變更。請確保它仍然可以順利應用並按預期運作。更新補丁既有用又重要!請參閱 提交貢獻 以了解更多資訊。
撰寫一些文件¶
Django 的文件很棒,但總是可以改進。您發現錯字了嗎?您認為應該澄清某些事情嗎?繼續並建議一個文件補丁!另請參閱關於 撰寫文件 的指南。
注意
報告頁面包含許多有用的 Trac 查詢的連結,包括幾個對於分類票券和審閱補丁很有用的查詢,如上所述。
簽署貢獻者許可協議¶
您撰寫的程式碼屬於您或您的雇主。如果您的貢獻超過一或兩行程式碼,您需要簽署 CLA。請參閱 貢獻者許可協議 FAQ 以獲得更完整的說明。
準則¶
作為一個大型專案的新手,很容易感到沮喪。以下是一些建議,讓您在 Django 上的工作更有用且更有價值。
選擇一個主題領域¶
這應該是您關心、熟悉或想要了解的內容。您不必已經是您想要工作的領域的專家;您可以透過您對程式碼的持續貢獻成為專家。
分析票券的上下文和歷史¶
Trac 不是絕對的;上下文與文字一樣重要。在閱讀 Trac 時,您需要考慮誰說了什麼,以及他們何時說的。兩年前對一個想法的支持並不一定意味著該想法仍然會獲得支持。您還需要注意誰沒有發言 - 例如,如果一位經驗豐富的貢獻者最近沒有參與討論,那麼該票券可能沒有獲得進入 Django 所需的支持。
從小處著手¶
對小問題取得回饋比對大問題更容易。請參閱簡單的選擇。
在投入大型任務之前確認支持¶
這表示在您修復問題之前,先請其他人確認錯誤是否真實,並在您實施建議的功能之前,確保對該功能達成共識。
大膽一點!留下回饋!¶
有時候,將您的意見發佈到全世界並說「這個票券是正確的」或「這個補丁需要修改」可能會很可怕,但這是專案向前發展的唯一方法。廣大的 Django 社群的貢獻最終會比任何一個人的貢獻產生更大的影響。沒有您,我們無法完成!
在將事物標記為「準備簽入」時要謹慎¶
如果您真的不確定票券是否已準備好,請不要將其標記為已準備好。請留下評論,讓其他人知道您的想法。如果您大部分確定,但不是完全確定,您也可以嘗試在 IRC 上詢問,看看是否有人可以確認您的懷疑。
等待回饋,並回應您收到的回饋¶
專注於一兩個票券,從頭到尾完成它們,然後重複。處理大量票券並讓一些票券被擱置的散彈槍式方法,最終弊大於利。
嚴謹¶
當我們說「PEP 8,並且必須有文件和測試」,我們是認真的。如果補丁沒有文件和測試,最好有一個充分的理由。「我找不到此功能的任何現有測試」之類的論點沒有太大份量。雖然這可能是事實,但這表示您有撰寫該功能的第一個測試的額外重要工作,而不是您完全可以不用撰寫測試。
要有耐心¶
您的票券或補丁不總是容易被快速審閱。這不是針對個人的。有很多票券和拉取請求需要處理。
保持您的補丁為最新版本很重要。在 Trac 上審閱票券,以確保一旦您解決所有審閱意見,就取消勾選需要測試、需要文件和補丁需要改進旗標。
請記住,Django 有八個月的發布週期,因此有足夠的時間審閱您的補丁。
最後,適時的提醒會有幫助。請參閱 貢獻程式碼常見問題 以取得相關建議。