如果您正在關注一個開放源代碼項目並希望對代碼進行更改,那麼您需要做什麼?如何將代碼返回給開源項目?
回答
我會花時間先認識人。通常他們有一個IRC聊天室,每個人都閒着。花些時間認識這些人,研究代碼,查看文檔,然後如果你覺得自己適合這個項目,就開始貢獻bug補丁。首先不要嘗試添加新功能。他們通常不會被接受。
另外看這個谷歌技術談到How To Protect Your Open Source Project from Poisonous People。它會教你不該做什麼。
這取決於項目,它的託管方式和位置。最好的辦法是找到一個聯繫人併發郵件給他們,或者看看是否有一個開發者郵件列表。
您應該做的第一件事是聯繫運行開源項目的主要人員。詢問他們是否可以貢獻代碼並從那裏出發。
只需編寫您的改進的代碼,然後將其提供給他們可能會導致您的代碼被拒絕。
正如以前的海報所說,這是一個項目的問題。你會發現有些人比其他人更願意改變。從機械的角度來看,你需要看看他們是使用SVN(例如谷歌代碼)還是CVS(例如在sourceforge上),並確定他們是否使用補丁或其他方法。
排序過程的一個很好的例子,你可能需要使用可以在GIMP網站上可以看到:http://www.gimp.org/bugs/howtos/submit-patch.html 注意其使用的Bugzilla,補丁和CVS
像這樣的事情曾經是簡單的。
有一個郵件列表爲用戶和一個開發人員。如果您發現問題並修復問題,請修復此問題,然後運行Larry Wall的修補程序,並將生成的修補程序發送到開發人員列表,並以快速說明它的功能。一般來說,開發人員可以通過寫入權限訪問CVS(或者在項目所在的軟盤上的真正舊日子裏),它會檢查事情,看看您的修補程序是否能夠執行它所說的內容,並且不會破壞其他任何內容源樹本身。
這幾天有使用開放開發許多,許多項目和其中很多是由誰從來沒有運行之前,讓獨自一個開源的一個,這樣的事情可以更棘手的一個軟件項目的人經營。通常將補丁郵寄給在項目的正確區域內做大量開發的人,即使在今天,也可以快速地看到它。網上資料庫的瀏覽會告訴你誰做的工作,而不是那些誰獲得該網站的頭版上自己的名字的人,第一時間聯繫那些傢伙:)
做到這一點,最好的辦法是進行自我介紹像這樣「嗨,這是一個錯誤/功能,這裏有一個補丁修復/實現它。」
我在一些開源項目中,有很多人有最好的意圖來幫助,但從來沒有真正做過任何事情,所以如果你顯示有效的代碼,你會被認爲更有價值。
幾個其他的事情要記住:
可以肯定,您真正擁有你想回來貢獻的代碼,而不是你的僱主或客戶端您所做的修改。如果您有可能遇到這種情況,請檢查您的就業協議或服務協議。
調查是否有開發人員願意貢獻者通過的知識產權分配過程。現在很多開源項目都有這樣的任務,因此項目中代碼的所有權利都可以由項目本身和/或其贊助商擁有。
這些兩者都是重要的,當談到保護自己的項目,誰願意在項目上下游關係到你寫的代碼要求使用或創建任何人。
作爲幾個開源項目的創建者,我處於事物的另一面,我試圖獲得貢獻者。這是我要說的話:
- 宣佈自己無論怎樣適合項目:電子郵件,郵件列表,論壇等
- 見你的想法是否已經在作品中。如果是這樣,也許會試圖幫助而不是重複努力。
- 找出提交代碼的首選方式
- 請務必遵循項目中使用的編碼風格。 (如果您決定將所有標籤轉換爲空格,他們將無法輕鬆將您的更改合併到版本控制系統中,並且很可能會忽略您的提交。)
在IRC中進行聊天或瀏覽新聞組,如果他們有一個。讓自己知道。您可能需要先向新聞組提交補丁,然後才能爲您提供帳戶。
熟悉編碼標準,補丁類型(例如統一差異)並簽出他們的CVS或SVN副本(如果他們允許匿名訪問的話)。
如果您正在尋找更小規模的參與方式(可能會按照您的方式進行)OpenHatch有一個可搜索的錯誤數據庫(按語言/框架排序)以及入門教程。
另一種開始的方式是CodeTriage其中有GitHub回購尋找幫助解決也由語言組織的開放問題。
- 1. 如何將DEV C++ IDE源代碼作爲項目打開?
- 2. Node-RED開源項目項目的調試源代碼
- 3. 如何從採購源代碼中返回源代碼?
- 4. Stemming - 代碼示例或開源項目?
- 5. 詞典:開放源代碼項目
- 6. 在開源項目中包含代碼
- 7. 如何製作一個將字符串返回給源代碼的宏?
- 8. Linux源代碼包如何在IDE中作爲項目打開?
- 9. 如何在android studio開源項目中找到buggy代碼
- 10. 開放源代碼及其如何爲安全項目工作?
- 11. 如何重用開源項目中的測試代碼
- 12. 如何使項目的一部分開放源代碼?
- 13. 開放源代碼項目的Webstat代碼簽名證書
- 14. 如何將來自Symantec Endpoint Protection的開放源代碼項目白名單
- 15. 如何將成功或失敗代碼從Node.js返回給Angularjs
- 16. 如何從後面的代碼將值返回給AJAX?
- 17. 如何將積極的錯誤代碼從ATL返回給VB6?
- 18. 如何將IIS web項目添加到tfs源代碼控制
- 19. 如何將Visual Studio 2013項目導出到源代碼中
- 20. 如何將源代碼添加到Intellij Idea的scala項目中?
- 21. 如何將源代碼管理添加到現有項目
- 22. 如何將github源代碼插入我的項目
- 23. 如何將Spring框架源代碼導入到eclipse項目中?
- 24. 如何將代碼返回主菜單?
- 25. 如何將項目源代碼用作另一個項目的庫?
- 26. 使用開源項目的源代碼來學習
- 27. 無法在Mac終端下載開源項目的源代碼
- 28. 現有開源項目實施的源代碼管理/管理
- 29. 在開源項目上工作時的源代碼控制
- 30. ajax源代碼 - 很好的開源項目?
斷開的鏈接(6歲,難怪)。固定。 – 2014-06-04 20:02:38
以下是我可以如何貢獻開源: 使用該開放源代碼製作項目,並且當您發現其他人可以添加到該開源中供那些使用它的人使用時。您創建該功能,這是您對開源軟件的貢獻。 – 2016-07-06 09:36:09