如何發起並運營一個開源項目


1. 前言

今天分享一下如何發起並運營一個開源項目。平時我們開發用到的輪子大多都是開源的,可以說開源項目推動了IT行業的的發展,而這兩年是開源項目的爆發期。對於個人來說,開源項目也是開發者成長提升的途徑之一。今天就來分享一下如何孵化並運營一個開源項目。

2. 立項

凡是項目都需要創意,或者我們稱之為“點子”,來源有多個方面。

很多開源項目包括編程語言都誕生於解決特定問題的過程中,比如Java誕生於智能硬件平台的研發過程中。所以你日常遇到的一些問題和你對這些問題的解決方案可以成為你創建開源項目的一個思路。這種情況下需要更多的創造性,同時還要規避一些法律風險。

你也可以對其它一些開源項目進行擴展和優化,有時候我們可以站在巨人的肩膀上。就像開源Git托管平台Gitea誕生於Gogs。

更簡單的方式是你甚至可以整合腳手架,目前在Github上的整合腳手架非常多,甚至有些項目知名度還非常高。

當你有這個契機你就有孵化開源項目的先決條件了。

3. 開發

接下來就是開發了,最開始只有你自己貢獻全部的代碼,而且你可能需要做得更多。開發盡量遵循Git工作流,ISSUE功能要充分利用起來,用戶的咨詢建議和BUG反饋盡量通過ISSUE來處理。

ISSUE處理問題

通過吸收Pull Request也可以集思廣益,提升你項目的質量。Gitee和Github還提供了一些漏洞檢測和質量檢測功能。也能提高你的開發質量。

3.1 測試

作為開源項目,一定要把好質量關。起碼的單元測試要做,這樣其它開發者會更加信任你的項目。

3.2 開源協議

開源協議是開源項目的重要標識,這個是必須的步驟。目前開源協議有很多,選擇一款適合你的,一般情況下我選擇Apache 2.0

協議除了放一個LICENSE文件在項目的目錄中外,最好在每一個源代碼文件的copyright頭中也聲明一下,比如胖哥的開源項目Payment Spring Boot中是這樣的:

3.3 其它配套設施

作為一個開源項目,項目說明README.md要有,用來對項目進行簡單的介紹。因為是源碼開放,代碼注釋也非常重要,也有利於向別人講解你的思路和意圖。如果有精力構建一個項目主頁就可以讓你的項目更加高大上了,把文檔、圖文教程、CHANGELOG、Q&A、RoadMap分門別類放進去,也有利於用戶更加深入的了解學習你的開源項目。你可以看胖哥以往的相關文章有介紹的哦。

4. 發布

如果覺得你的項目已經達到可用的程度就可以公開發布了。源代碼國外肯定是放在Github上,國內選擇Gitee(碼雲)。根據你的喜好選擇一個主庫,兩者定期同步。另外要明確開發分支和正式分支,最好默認顯示最近的正式版本分支。

大致的發版步驟

版本一經發布不能進行更改,版本號建議語義化,參考下圖中Gitee的語義化說明。

Github和Gitee都提供了創建發行版的功能,以Gitee為例(Github同樣有類似的功能):

Gitee創建發行版

創建完畢后,你的項目就會生成一個發行版,用戶可以通過對應版本的發行版獲取對應版本的源代碼,查看描述。

Gitee獲取對應版本的發行版

在進行源代碼發行的同時,也建議部署對應的編譯版本到公用依賴庫,比如Java項目會發布的Maven中央倉庫,JavaScript項目會發布到NPM,Python項目PyPi。如果你有能力使用CI/CD的話(例如Github Action),可以讓整個發版流水線化。

記得發版的同時,要發布對應版本的更新信息、文檔等配套設施。

5. 推廣

只要是產品就需要推廣。推廣是一個技術活,而這往往不是技術人員的強項。你可以在目標人群的聚集地友好地宣講你的開源項目,例如一些開發者社區(開源中國),交流群等等,甚至是這幾年比較火的短視頻。每次發版可通過一些公共渠道進行公告。讓你的開源項目盡可能為人所知。但是請不要作弊,不要學某些人走捷徑,花錢去購買Star。

在推廣的過程中,要學會收集和分析用戶的意見。

6. 社區驅動

推廣的同時要進行社區建設,有利於拉升你開源項目的活躍度,同時也可以從中提煉項目的需求。甚至可以將社區活躍者提升為項目貢獻者,組建一個開源小團隊。

社區驅動是開源項目發展的重要動力。

6. 總結

如果你想做好開源,就要把開源項目當做產品來做,堅持、創新、協作、運營、服務一個都不能少。個人也會在項目的打磨中成長提升。對於開源更重要的是一種態度。無論項目涉及的技術是否高深,開源者都應該得到鼓勵和尊重。

關注公眾號:Felordcn 獲取更多資訊

個人博客:https://felord.cn


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM