您可以透過許多方式為 Apache Subversion 和社群做出貢獻。幸運的是,這些方式大多只需要對 Subversion 有興趣,並願意協助社群的其他成員即可。
Subversion 社群指南 (又稱「HACKING」) 是一本準宗教文本,它概括了有關對 Subversion 社群做出貢獻的流程和最佳實務的所有細節。任何考慮為 Subversion 做出貢獻的人,都應強烈考慮閱讀這份文件。
參與郵件列表
您可以加入 郵件列表、IRC 頻道和論壇 來討論 Subversion。這些都是對有興趣進行技術討論、回答問題或為新手解決潛在問題的使用者和貢獻者來說極佳的資源。
宣傳 Subversion
透過你的部落格、Twitter、Facebook 或向你最愛的在地雜誌投稿文章,來協助宣傳 Subversion。如果你屬於不同的開源社群,何不於他們的討論論壇或研討會中提及 Subversion?如果你熱愛 Subversion,就不要猶豫,大聲說出來!越多開發人員使用 Subversion,就能找出越多錯誤、新增越多功能、提升專案能見度,並為社群帶來更多好處。
連結至 subversion.apache.org
任何開源專案的成功,都取決於使用產品並回饋專案的人數。透過連結至 https://subversion.dev.org.tw/,你可以增加新使用者或貢獻者發現專案並加入社群的機會。
提交錯誤回報
提交錯誤回報所需時間很短,而且對開發人員非常有幫助。這是你可以做出的最簡單貢獻之一。當你發現 Subversion 有問題時,請回報。我們的社群偏好你首先將錯誤回報給 users@subversion.apache.org 郵件清單,以便其他社群成員可以提供一些第一層級的協助和分類。你的問題通常可能已經有解決方案或答案。
協助我們分類現有的錯誤回報
Subversion 會收到相當穩定的錯誤報告串流。雖然我們會盡力驗證每份報告,但我們無法完全防止重複錯誤報告、未經任何人注意就已修正的錯誤等等情況發生在我們的問題追蹤器中。您可以協助我們的方式之一,就是瀏覽我們一些需要分類的問題,閱讀錯誤報告,並嘗試驗證錯誤是否仍然存在於 Subversion 中。如果您在過程中發現一些您認為對開發人員有用的其他資訊,請註解問題並分享您的發現。
撰寫重現腳本
一份寫得很好的錯誤報告對開發人員來說非常有價值。然而,一份重現食譜腳本的價值等於一百份寫得很好的報告。沒有什麼比讓開發人員能夠親自執行完全相同的動作並看到相同的結果,更能幫助他們了解您在發生問題時正在做什麼。很不幸的是,許多錯誤報告都是透過郵件清單或問題追蹤器傳送,而且只提供問題的文字描述。因此,另一個絕佳的貢獻機會就是將這些文字報告轉換成可靠、可重複的重現腳本,或許可以從腳本範本 (unix 範本、windows 範本) 開始,並自訂以符合報告。這會為開發人員帶來許多好處:您可以省去開發人員自己建立此腳本的工作;您的腳本通常可以直接移植到 Subversion 的回歸測試套件,讓錯誤在修正後不會再發生;而且讓其他人檢視錯誤報告可以揭露無法預見的細微差別,例如錯誤只發生在特定資料集或只在某些其他特定情況下發生。
將節點新增到我們的建置農場
Subversion 有大型回歸測試套件,執行需要花費大量時間。即使鼓勵開發人員在提交變更前執行這些測試,但有時會出現疏漏 — 「顯而易見」的變更結果並非如此,特定於平台的錯誤會突然出現,等等。為了協助我們找出這些問題,我們採用 buildbot 農場 的機器,在我們的程式碼庫變更時持續執行測試。因此,即使您無法親自花時間主動測試 Subversion,如果您有閒置的電腦,請考慮將其新增為我們的 buildbot 農場中的節點。我們的測試套件在其他作業系統和機器架構上持續執行,我們可以從中受益。
在此處指出 buildbot 節點組態詳細資料。
提交修補程式
開放原始碼格言「歡迎修補程式」最常出現在郵件清單巨魔的殺手級回應中,但此陳述的核心是兩個相當真實的理想:軟體程式碼不會自行撰寫,而專案通常真的希望有越多的人協助撰寫程式碼越好。Subversion 專案也不例外。我們已接受並套用 無數的修補程式貢獻,我們希望始終有源源不絕的修補程式。如果您是能夠以這種方式貢獻的開發人員,請瀏覽我們的 Subversion 社群指南,特別是關於 修補程式提交 和 編碼慣例 的區段,並加入我們的行列!我們有 專案構想 清單,提供給那些正在尋找可能需要數週甚至數月才能完成的大型專案的人。
協助設計新功能
較大的功能並非在有人有時間和意願時才撰寫,而是先進行設計。此流程涉及在 dev@ list 上進行討論,並提出相當詳細的依據和實作計畫。(我們經常 使用我們的 wiki 來處理建議的設計。)參與此類討論是使用者確保規劃中的新功能從一開始就設計為符合其使用案例和願望的絕佳方式,而對於較大的功能,在任何編碼進行之前,進行此類討論是建立 共識 的關鍵。
將重現腳本轉換為回歸測試
通常,使用者或開發人員在討論錯誤時會張貼 重現腳本。修正錯誤所涉及的任務之一是將腳本(通常是 shell 腳本或批次檔腳本)轉換為 Subversion 測試套件 中的 Python 測試。傳送一個修補程式,實作與重現腳本等效的 XFail(「預期失敗」,直到錯誤已修正)測試,這是一個非常有用的貢獻,既可以展示具體的修正目標,又可以讓其他貢獻者和開發人員花更多時間研究錯誤的原因和修正方法。
成為提交者並直接提交程式碼
長期提交高品質程式碼的開發人員可以獲得直接提交權限。這顯然對開發人員社群有益,因為對於高品質的開發人員來說,「越多越好」!但千萬不要低估這項經驗對你個人和職業生涯的價值。
如需瞭解有關如何貢獻的更多資訊,或與我們討論你的貢獻,請聯絡 dev@subversion.apache.org