如何開始參與開源項目?
在過去五年我一直參與 Durgapur Linux用戶組。我一直為各種開源項目進行貢獻。我為開源貢獻的主要原因是非常享受當你發送一個補丁或PR(pull request 提交問題)到一個開源項目的感覺。當數以百萬計的人在每天的生活中使用你的一些代碼時,這會讓你感到幸福。
通過Google Summer of Code和 Super Student,很多人與我聯系。他們都有相同的問題。
如何開始?我懂x、y、z語言。我應該對哪個項目貢獻?我如何能過濾出一個bug?所以,我想寫一篇博客文章來將嘗試回答這些問題。但是,首先讓我們了解什么是開源軟件。
什么是開源軟件(OSS)
開源軟件是指計算機軟件的源代碼是公開,在各種許可證下可修改和改進分發。“What is open source?”(“開源是什么?“)是一個很好的解讀。
我相信讀幾行代碼比讀500頁書更值得的事實。當你追隨優秀程序員編寫的代碼,在你編碼時,你會自動傾向于使用一些很好的實踐。
甚至我在大學里學軟件工程課題前,我就已經實踐了版本控制系統,調試器,任務跟蹤,持續集成工具這些知識,這都是由于貢獻了一個開源項目。
你讓一個優秀的簡歷從人群中脫穎而出。貢獻開源軟件可以幫助您構建在線的形象。
但是,這些好話還不能足夠幫助你開始。
我如何開始?
首先和最重要的事情是選擇一個你選擇的編程語言。一旦你完成了選擇編程語言,尋找一個你可能會感興趣的項目。
Open Hatch適合像你這樣的初學者。Open Hatch 的搜索頁面可以基于語言項目篩選出bug。Mozilla也有很多基于編程語言過濾的項目, What can I do for Mozilla?(我能為Mozilla做什么)
我如何發現bug?
老實說,找到一個bug對于一個初學者真是一個辛苦的工作。我面臨同樣的問題。但我將把如何找到easy bugs(簡單的缺陷)和開始為大型組織貢獻的方法列出來。
Fedora
Fedora Easy Fix page 列出了所有你可以開始的easy fixes(簡單的修復)。每個項目列出了你需要聯系的項目的維護者。
Fedora基礎架構倉庫包含一些easy fixes。在issues(任務)倉庫部分尋找EasyFix標簽。https://github.com/fedora-infra
Mozilla
Mozilla的開源項目非常簡單。給新貢獻者提供了很多的入口。
這個網站基于你選擇的編程技術為你推薦項目。一旦你決定了你的項目,它會帶你到相應的mozilla項目。
Bugs Ahoy網站尤其適合新的貢獻者。網站基于各種項目比如JS Engine,Devtools,Firefox OS等分類成‘Easy bugs’ 和 ‘Mentored Bugs’。
但是,如果你不知道哪個項目以哪種編程語言為基礎。Bugs Ahoy基于編程語言對easy bugs進行了分類,主要有Python、Java、Shell、JS、C / C++、HTML / CSS。你可以使用組合過濾來選擇合適的bug來開始。
Mozilla對已經參與的某個團隊的項目進行羅列,包含:
- 可以聯系的導師。
- Bugzilla 頁面
- IRC 頻道名
- mentored bugs列表
- Getting Involved DevTools – https://wiki.mozilla.org/DevTools/GetInvolved
- Getting Involved Mozilla.org – https://wiki.mozilla.org/Webdev/GetInvolved/mozilla.org
- Getting Involved AMO – https://wiki.mozilla.org/Webdev/GetInvolved/addons.mozilla.org
- Getting Involved SUMO – https://wiki.mozilla.org/Webdev/GetInvolved/support.mozilla.org
- Getting Involved MDN – https://wiki.mozilla.org/Webdev/GetInvolved/developer.mozilla.org
- Getting Involved Socorro – https://wiki.mozilla.org/Webdev/GetInvolved/crash-stats.mozilla.org
- Getting Involved Mozillians – https://wiki.mozilla.org/Webdev/GetInvolved/mozillians.org
- Getting Involved ReMo – https://wiki.mozilla.org/Webdev/GetInvolved/reps.mozilla.org
- Getting Involved input.mozilla.org – https://wiki.mozilla.org/Webdev/GetInvolved/reps.mozilla.org
- Getting Involved careers.mozilla.org – https://wiki.mozilla.org/Webdev/GetInvolved/careers.mozilla.org
- Getting Involved QUMO – https://quality.mozilla.org/docs/webqa/get-involved/
- Here is another link for Bugzilla Mentored Bugs list – https://bugzil.la/sw:mentor
KDE
如果你想開始為KDE貢獻,尋找 Junior Jobs(初級職位)標簽。像每個組織一樣,KDE也包含了如何開始KDE項目的部分。
Getting Started – http://techbase.kde.org/Contribute
入門 – http://techbase.kde.org/Contribute
Building a KDE Application – http://techbase.kde.org/Getting_Started/Build
構建KDE應用程序 – http://techbase.kde.org/Getting_Started/Build
KDE Guide for a new contributor – http://flossmanuals.net/kde-guide/
新貢獻者的KDE指南 – http://flossmanuals.net/kde-guide/
IRC – #kde-devel on Freenode
IRC – #kde-devel on Freenode
Mailing List – https://mail.kde.org/mailman/listinfo/kde-devel
郵件列表 – https://mail.kde.org/mailman/listinfo/kde-devel
OpenStack
OpenStack也是一個優秀的可參與項目。OpenStack項目分為各種組件:Swift, Glance, Nova, Horizon, Keystone等。每個組件都有自己的頁面。如果你去 OpenStack Wiki主頁,您可以看到分別列出的組件。
每個組件頁面包含到倉庫的鏈接,bug追蹤器(Launchpad),文檔等。OpenStack把初學者級別bug叫做“容易摘到的果子”。
開始 – https://wiki.openstack.org/wiki/How_To_Contribute
如果你是一位開發者 – https://wiki.openstack.org/wiki/How_To_Contribute#If_you.27re_a_developer
文檔- docs.openstack.org
IRC – #openstack-101, #openstack on Freenode
IRC – #openstack-101, #openstack on Freenode
尋找“容易摘到的果子” Click here!
Wikipedia
地球上的大多數人聽說過維基百科這個名字,但未想過為它貢獻。維基百科靠維基媒體基金會支持。Mediawiki使用簡單標簽標記他們的easy bugs。Click!
開始 – http://www.mediawiki.org/wiki/Gerrit/Getting_started
如何成為一個Mediawiki迷 –http://www.mediawiki.org/wiki/How_to_become_a_MediaWiki_hacker
在本地安裝Mediawiki – http://www.mediawiki.org/wiki/MediaWiki-Vagrant
IRC – #mediawiki
IRC – #mediawiki
現在這個鏈接很重要
煩人的小bug – http://www.mediawiki.org/wiki/Annoying_little_bugs
GNOME
“Gnome-love”是標記那些初學者開始GNOME的easy bugs的可愛標簽。如果你曾經訪問GNOME主頁:“參與”鏈接在頭部菜單欄清晰可見。無論如何這是你不用搜索的鏈接:)
GNOME維護一個新手指南: https://wiki.gnome.org/NewcomersTutorial
如果你想知道如何提交你的第一個補丁,讀這篇文章 : https://wiki.gnome.org/GnomeLove/SubmittingPatches
如果你想構建代碼,從這里開始構建: https://wiki.gnome.org/GnomeLove/JhbuildIntroduction
文檔: https://developer.gnome.org/
Apache
Apache, http://community.apache.org/newcomers/index.html
Apache維護了相當多的項目。project.apache.org列出了超過140個項目,每一個你都可以開始做貢獻。新來者的部分是如何在Apache開始的簡單說明, http://community.apache.org/newcomers/index.html
參與Apache軟件基金會: http://www.apache.org/foundation/getinvolved.html
我是一個有幾年經驗的Python / Django活躍開發者。所以,我增加了如何開始為Python / Django貢獻
Python
開始用Python貢獻,請查看開發人員指南( http://docs.python.org/devguide/ )。它首先告訴在你的系統克隆倉庫,繼續告訴你如何檢查easy fixes。
開發人員指南提到,你如何開始做文檔的修復,然后修復小bug。一旦你了解了,你可以開始對付easy bugs。
讀物: http://docs.python.org/devguide/fixingissues.html
任務跟蹤: http://bugs.python.org/
簡單的任務: http://goo.gl/NzJuDp
Django
Django是一個基于Python的web框架,它被一些非常大的公司使用,例如Disqus,Instagram,Transifex等。如果要開始為Django貢獻,請去 Contributing to Django頁面。
這個頁面列出了郵件列表,IRC頻道,任務跟蹤的鏈接。
參與Django: https://code.djangoproject.com/#Gettinginvolved
像大多數開源項目,Django也有針對新貢獻者的easy fixes。
小且簡單的改進 – https://code.djangoproject.com/wiki/LittleEasyImprovements
簡單的 – https://code.djangoproject.com/query?status=!closed&easy=1
“小且簡單的改進”提到的任務還有,為文檔發送補丁,編寫測試或者或者改善代碼庫。
Django維護一個建議新貢獻者的頁面: https://docs.djangoproject.com/en/1.6/internals/contributing/new-contributors/
貢獻
開源貢獻并不是強制你只為一個著名的社區做貢獻。互聯網上存在巨量開源項目,像Github,SourceForge,Google Code,Bitbucket等。我也確信的事實是僅僅開源貢獻并不會起到幫助。一個人需要在為項目工作時讓想法從他大腦中流出。
我想你會喜歡從一個不錯的blog post(博文)引用的幾行話:
You shouldn’t become an artist so you can be famous, but because there’s art inside of you that will kill you if you don’t let it out.
You shouldn’t found a startup to make money, but because it’s your life’s work.
And you shouldn’t hack on open source projects because someone told you that your GitHub profile is your new resume, but because you want to code socially.
你不應該為了你可以出名而成為一個藝術家,而是因為如果你不讓你內在的藝術釋放出來,它會殺了你。
你不應該為賺錢而開始,而是因為它是你一生的工作。
你不應該因為有人告訴你github概要就是你新的簡歷而深入到開源項目,而是因為你想讓編程社交化。
一旦你開始貢獻,你開始通過IRC,郵件列表與人交流。我強烈建議你去看看組織遵守的禮儀。通常看看這個演示文稿來得到一個簡要的了解。 http://www.shakthimaan.com/downloads/glv/presentations/mailing-list-etiquette.pdf
即使閱讀本文后,如果你遇到任何問題。可以隨時在推ter找我或給我發郵件:sayan dot chowdhury2012 @ gmail dot com。我還要感謝Chandan Kumar,他幫助我寫了這篇博文,他可以通過chandankumar dot 093047 @ gmail dot com聯系。
來自:http://linux.cn/article-4628-1.html