運作開源項目的一點經(jīng)驗
上周我在 PHPUK 上面講了一些關(guān)于開源項目的內(nèi)容。我想把它們整理一下都記錄下來,以免忘記。也許我不太適合來給出一些這方面的建議,但這些都是我運營 joind.in 的一些真實、重要的總結(jié)。
社區(qū)(Community)
你喜歡一個項目,分享了它的代碼,并且公布了它,這就算是開源項目嗎?在我看來這不是,開源項目必須有一個社區(qū)。作為興趣,你這么做可以,但是你想要其他人也參與這個項目,事情就大不同了。
為了讓別人參與貢獻,你必須建立一些基礎(chǔ)設(shè)施,可以讓別人能夠順利溝通,看到項目的進展。作為項目的負責人,你需要管理這些基礎(chǔ)設(shè)置。Joind.in 使用google groups的郵件列表,問題跟蹤系統(tǒng)(atlassian為開源項目提供免費的授權(quán))以及IRC頻道。我們也有一個博客,以及twitter賬戶來發(fā)表公開的聲明。我們使用了多個郵件列表,外聯(lián)、功能、開發(fā)。這樣就可以讓不同的人選擇自己感興趣的信息,而不會被其他信息淹沒。
如果你的項目還不是很有名,你需要通過博客,twitter,stack overflow等各種渠道來讓人們知道它。
說明文件(README)
在項目能獲得其他人的貢獻之前,你首先要保證其他人能順利的配置你的項目。你***在網(wǎng)頁,wiki,博客,以及項目中都有README信息,因為你不知道人們習慣從哪里看這些信息。
項目規(guī)劃(Roadmap)
有一個清晰的項目規(guī)劃是非常有用的。當用戶給你提出一些新功能的時候,你可以說“it's on the roadmap”,或者讓他們?nèi)ム]件列表討論。人們也知道你們正在干什么。
貢獻代碼(Code Contributions)
這一點有點復雜。大部分的開源貢獻者只對他們感興趣的東西感興趣,其他的功能或者系統(tǒng)的其他部分很難引起他們的興趣。但是恰恰其他部分是系統(tǒng)的關(guān)鍵部分。還有,作為項目負責人,你需要及時審核,測試,合并,部署這些貢獻的代碼。當某些貢獻不能被采納的時候,你需要告訴別人為什么,以及如何改進。
以我的經(jīng)驗來看,區(qū)分真正有用的貢獻,以及一般般、沒用的貢獻是比較困難的。有可能那個貢獻者提交了代碼以后就消失了,剩下你來維護這個代碼。這個問題似乎只能靠直覺去解決。你能做的就是誠懇的對待貢獻者,說出你心里真實的想法。
透明化(Transparency)
對我來說,這是運營開源項目最重要的一點!人們能看到代碼,能看到問題列表,郵件列表,甚至持續(xù)集成服務器。我可以向人們求助,指出哪段代碼不工作。有時候,在我還沒有意識到問題的時候,就會有人跳出來指出我的錯誤。
對于和我一起工作的人來說,他們可以看到哪些“pull request”是開放的,誰評論了什么,哪些代碼在什么時候被采納了。我會提交我參與的所有分支到githut。所以當有人問我一個功能的進度的時候,我往往直接告訴他們***的版本號。
把項目的所有東西都拿出來給人看有點像是在熨燙一件臟衣服,讓人有點不適。但是這樣做的好處是你可以聽到各種各樣的建議。好幾次我在twitter上貼出了一個bug鏈接尋求幫助,有不少人去留言,給建議,也有人直接去測試代碼。
【編輯推薦】