如何做一個真正牛X的開源項目

jopen 11年前發布 | 10K 次閱讀 開源項目

  近年來,越來越多的開發者選擇將自己的產品以開源形式發布,有時的結果是——你滿懷誠意地開源,卻無人問津。盡管你的產品做得相當好,但是僅把產品的源代碼公布出來,這還不算開源,因為其他用戶可能無從下手。沒有用戶,久而久之,你的滿腔熱情就會熄滅。 

  那么如何才能讓開源項目為更多人所知,成為一個真正牛X的開源項目呢?除了項目自身優秀外,你還需要注意以下事項。 

  一、有一個真正有用的 README 

  即使你為你的開源項目制作了一個很好的網站,但是一些潛在用戶很可能會首先通過閱讀 README 文件來了解這個項目。因此,你要確保在 README 中提供盡可能全面的信息: 

  1.   依賴、安裝信息 

  盡可能寫清楚依賴、安裝信息,最好能夠讓用戶通過復制粘貼相關代碼來添加依賴。比如這樣。 

  2. 項目成熟度狀態 

  不至于讓用戶在生產環境中用了幾個月后才發現你的項目才處于 Alpha 階段。 

  3.   詳細說明項目支持的語言、運行環境和工具的版本 

  不至于讓用戶花費大量的時間去摸索你的項目的兼容性。 

  4.   明確所使用的許可證 

  這個許可證需要是流行的、用戶都知道的,如果你自己創造一個或使用一個陌生的(比如 WTFPL),那么沒有用戶敢于在自己的產品中使用你的開源項目的。你可以選擇比較友好的 Apache Public License 2.0Eclipse Public License 等。需要注意的是一些許可證(比如 MIT)也是比較流行的,但是沒有提供任何專利保護。你也可以采用 APL2/GPLv2 雙許可,讓用戶挑選適合他們的。 

  二、為你的項目寫一個文檔 

  寫文檔并不容易,且比較費時,但是對于用戶來說,文檔是了解一個項目最便捷、最省時的方式,還可以讓用戶相信你不會輕易放棄這個項目。 

  在文檔中,把你的項目可以幫助用戶完成的事情放在首位,這是用戶決定是否使用這個項目的關鍵。此外,你要讓用戶相信做這個項目的是個人,而不是一個會產生代碼的機器人。 

  三、項目可以很容易地升級 

  隨著項目中 bug 的修復和一些功能的改進,你需要發布另一個版本。需要注意的是: 

  1.   向后兼容 

  不要因為不向后兼容,而讓用戶重寫大量代碼。這樣會讓用戶憤怒,繼而拋棄你的項目。當然,你也不必像 OpenJDK 那樣兼容 15 年前的產品。 

  2.   更新日志 

  有一個清晰明確的更新日志,需要包含:該版本發生了什么變化?會破壞用戶現有項目的代碼嗎?等等。比如 推ter 的做法: 

  • 每修復一個 bug,就在更新日志中寫上一個簡短的條目
  • 每添加一個功能,就簡要描述一下并附上一些示例代碼
  • 每改變一個 API,就需要在日志中用粗體明確指出
  • </ul>

    如果你有多個分支,就需要為每個分支都寫一份更新日志。 

      3.   版本標簽 

      為你的項目的每一個版本打上一個標簽,比如 v1.0.0-alpha1、v1.0.0、v1.1.2,可以讓你的用戶很清晰地分辨出項目的版本。 

      4.   發布公告 

      項目發布后,接下來就需要為這個事件寫一篇博文,或直接將公告發布到項目的郵件列表中。 

      在公告中需要說明這個項目有什么用,是否向后兼容,并給出更新日志的鏈接。 

      5.   項目狀態標簽 

      有些項目很長時間一直使用相同的版本號,比如 1.1.0,而項目一直在改進。如果這是一個開發版本,你也需要通過標簽來說明項目所處的開發階段。比如: 

    • 1. 1.0.pre1
    • 1. 1.0-alpha1
    • 1. 1.0-SNAPSHOT
    • </ul>

      總之,你要確保項目有一個嚴格的版本命名規劃。 

        四、使用 GitHub 

        在 GitHub 上,你可以很容易地做下面的事情: 

      • 發布你的項目
      • 瀏覽和搜索代碼
      • 專注于項目 issues
      • 參與貢獻,合并用戶的貢獻
      • </ul>

          五、確保有一個為用戶提供支持的地方 

          如果你的項目達到一定的普及程度,你就會不斷收到用戶的提問。你需要有一個收集和回答用戶提問的地方,比如論壇、郵件列表等。只要有一個交流的地方,用戶也可以彼此提供幫助。久而久之,就會形成一個很不錯的社區。 

          六、項目傳遞 

          不排除這種情況——你可能會對項目維護失去興趣,或者你換了一個新工作不再使用當前的項目了。你可以在郵件列表上公布,讓其他開發者接管你的項目。在 Github 上項目所有權轉移會更容易,尤其是在別人為你的項目引入了新功能后。 

          無論如何,不要讓項目死掉。 

          七、總結 

          總之,在你打算發布開源產品時,請確保它有: 

        • 清晰的依賴/安裝說明
        • 至少有一個簡短的文檔/指南
        • 庫中包含更改日志和相關標簽
        • 一些關于支持語言、運行環境、工具版本、項目成熟度的信息
        • 郵件列表,供用戶提問、相互幫助
        • </ul>

            八、最后 

            總之,要想讓你的開源項目“發揚光大”,首先應該讓它對用戶更友好。除了項目文檔外,其他事情花費不了多長時間。 

            另外,將項目開源出來容易,長時間維護就難了,因此,你還需要具備堅毅的精神和打持久戰的準備。當然,如果你只希望將項目開源出來,而不指望它能夠發展得多好,那么你完全可以忽略以上的所有內容。  

          英文原文:How to Make Your Open Source Project Really Awesome

          來自: www.iteye.com
           本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
           轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
           本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!