如何開始參與開源專案?

cucr發表於2014-08-03

在過去五年我一直參與 Durgapur Linux使用者組。我一直為各種開源專案進行貢獻。我為開源貢獻的主要原因是享受當你傳送一個補丁或PR(pull request 提交問題)到一個開源專案的感覺。當數以百萬計的人在每天的生活中使用你的一些程式碼時,這會讓你感到幸福。

通過Google Summer of CodeSuper 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做什麼?

這個網站基於你選擇的程式設計技術為你推薦專案。一旦你決定了你的專案,它會帶你到相應的mozilla專案。

Bugs Ahoy!

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參與頁面

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

即使閱讀本文後,如果你遇到任何問題。可以隨時在Twitter找我或給我發郵件:sayan dot chowdhury2012 @ gmail dot com。我還要感謝Chandan Kumar,他幫助我寫了這篇博文,他可以通過chandankumar dot 093047 @ gmail dot com聯絡。

相關文章