越寫悅快樂之如何開始一個(gè)開源項(xiàng)目

開源項(xiàng)目指南 - 圖片來自簡書App

今天的越寫越寫悅快樂系列文章為大家?guī)碜鳛殚_發(fā)者如何開始一個(gè)開源項(xiàng)目。經(jīng)常瀏覽GitHub、Bitbucket的小伙伴肯定都知道世界上有成千上萬的項(xiàng)目被發(fā)布在網(wǎng)絡(luò)上,我們經(jīng)常使用開源軟件構(gòu)建我們的產(chǎn)品或服務(wù),同時(shí)也努力為開源世界貢獻(xiàn)一些自己的力量,讓開源成就我們,讓我們在開源中綻放。

什么是開源

當(dāng)一個(gè)項(xiàng)目被開源,這意味著任何人都可以出于任何目的查看,使用,修改和分發(fā)你的項(xiàng)目。 開源軟件在開源許可的情況下發(fā)布并得以傳播。

流行的開源協(xié)議

為什么開源

個(gè)人或組織為何想要開源一個(gè)項(xiàng)目,有各種各樣的的原因,例如:

  • 協(xié)作
  • 采用和重組
  • 透明度

開源并不僅僅限于軟件。您可以開源任何事物,從數(shù)據(jù)集到書本。查看 GitHub Explore 開找找有什么是你可以開源的。

開源是指”免費(fèi)”嗎?

開源最大的吸引之一是它不花錢。 但是,”免費(fèi)”只是開源的總體價(jià)值的一個(gè)副產(chǎn)品。因?yàn)?a target="_blank">開源許可證要求任何人可以幾乎出于任何目使用,修改和共享您的項(xiàng)目,項(xiàng)目本身往往是免費(fèi)的。 如果該項(xiàng)目花錢使用,任何人也都可以合法地復(fù)制和使用免費(fèi)版本。因此,大多數(shù)開源項(xiàng)目是免費(fèi)的,但”免費(fèi)”不是開源定義的一部分。 有些方法可以通過雙重許可或有限功能間接地為開源項(xiàng)目收費(fèi),同時(shí)仍然遵守開源的官方定義。

啟動(dòng)自己的開源項(xiàng)目

一般來說,如果你樂意于他人對你工作的查看和反饋,你就應(yīng)該開源你的項(xiàng)目。無論您決定開展項(xiàng)目的哪個(gè)階段,每個(gè)項(xiàng)目都應(yīng)包括以下文檔:

  • 開源協(xié)議 - Open Source License
  • 項(xiàng)目介紹 - README
  • 貢獻(xiàn)指南 - Contributing Guidelines
  • 行為準(zhǔn)則 - Code of Conduct

作為項(xiàng)目的發(fā)起者或維護(hù)者,這些組件將幫助你交流你的期望,管理貢獻(xiàn)并保護(hù)每個(gè)人的合法權(quán)益(也包括您自己的)。他們能夠大大增加你積極體驗(yàn)的機(jī)會(huì)。如果您的項(xiàng)目在 GitHub 上,則將這些文件放在您的根目錄中,并使用推薦的文件名將有助于 GitHub 識別并自動(dòng)將其顯示給讀者。

選擇協(xié)議

開源許可證保證其他人可以使用,復(fù)制,修改和貢獻(xiàn)給您的項(xiàng)目,而不會(huì)產(chǎn)生不良后果。 它也可以保護(hù)您免受繁瑣的法律影響。啟動(dòng)開源項(xiàng)目時(shí),請務(wù)必包含許可證。法律工作是非常無趣的。但好消息是,您可以將現(xiàn)有許可證復(fù)制并粘貼到存儲(chǔ)庫中。只需要花這么一點(diǎn)時(shí)間,就能保護(hù)你的辛苦工作。MIT, Apache 2.0, 和 GPLv3 都是非常流行的開源許可證, 但你可以選擇其他選項(xiàng)。當(dāng)你在GitHub上創(chuàng)建新項(xiàng)目時(shí),你可以選擇許可證。包括開源許可證將使你的GitHub項(xiàng)目成為開源。

選擇開源協(xié)議 - 圖片來自簡書App

編寫項(xiàng)目介紹

自述文件不僅僅是用于說明如何使用你的項(xiàng)目。他們還可以解釋你的項(xiàng)目為什么重要,以及它可以為你的用戶做什么。

在您的自述文件中,嘗試回答以下問題:

  • 這個(gè)項(xiàng)目做什么?
  • 為什么這個(gè)項(xiàng)目有用?
  • 如何開始?
  • 如果需要,我可以在哪里獲得更多的幫助?

您可以使用自己的README回答其他問題,例如處理貢獻(xiàn),項(xiàng)目的目標(biāo)以及許可證和歸屬信息。 如果您不想接受他人的貢獻(xiàn),或者您的項(xiàng)目尚未準(zhǔn)備好作為產(chǎn)品提供使用,請將這些信息寫下來。

當(dāng)你在根目錄中包含一個(gè) README 文件時(shí),GitHub 會(huì)自動(dòng)將其顯示在存儲(chǔ)庫的主頁上。

編寫貢獻(xiàn)指南

貢獻(xiàn)文件 (CONTRIBUTING File) 告訴你的受眾如何參與你的項(xiàng)目. 例如,你可以包括一下信息:

  • 如何提交錯(cuò)誤報(bào)告(嘗試使用issue 和 pull request 模板
  • 如何建議一個(gè)新功能
  • 如何配置你的環(huán)境和運(yùn)行測試

除了技術(shù)細(xì)節(jié), 貢獻(xiàn)文件也是一個(gè)供你傳達(dá)對貢獻(xiàn)期待的機(jī)會(huì), 例如:

  • 你在尋求的貢獻(xiàn)類型
  • 你項(xiàng)目的路線圖或者版本
  • 貢獻(xiàn)者應(yīng)該(或者不應(yīng)該)如何與你取得聯(lián)系

使用熱情友好的語氣并提供具體的貢獻(xiàn)建議(例如編寫文檔或者搭建網(wǎng)站)可以大大提高新人的參與度。

建立行為規(guī)范

最后,行為準(zhǔn)則有助于為項(xiàng)目參與者的行為設(shè)定基本規(guī)則。這在你為社區(qū)或者項(xiàng)目推出一個(gè)開源項(xiàng)目的時(shí)候尤為有價(jià)值。一份行為幫助你促進(jìn)健康,有建設(shè)性的社區(qū)行為,這也會(huì)減輕你作為維護(hù)者的壓力。

更多信息,請參見 行為規(guī)范指導(dǎo)。

除了傳達(dá)你期待參與者如何行動(dòng),行為規(guī)范也傾向于描述這些期待針對誰,適用于何時(shí),以及對于違規(guī)行為的處理方法。

就像開源許可證一樣,有現(xiàn)成的行為規(guī)范,所以你不必自己編寫。貢獻(xiàn)者公約是一個(gè)行之有效的行為規(guī)范,已經(jīng)被用在超過4000個(gè)開源項(xiàng)目,包括 Kubernetes,Rails,以及 Swift。無論你使用哪一種,你都應(yīng)該準(zhǔn)備好在必要時(shí)執(zhí)行行為規(guī)范。

將文本直接粘貼到項(xiàng)目存儲(chǔ)庫中的 CODE_OF_CONDUCT 文件中。將文件保存在項(xiàng)目的根目錄中,以便輕松找到,并從 README 中鏈接到它。

項(xiàng)目命名

選擇一個(gè)容易記住,有創(chuàng)意,能表達(dá)項(xiàng)目用意的名字。例如:

  • Sentry 監(jiān)控應(yīng)用程序的崩潰報(bào)告
  • Thin 是一個(gè)簡單快速的Ruby web服務(wù)器。

如果你的項(xiàng)目是基于一個(gè)已存在的項(xiàng)目創(chuàng)建,那么使用他們的名字作為你項(xiàng)目名的前綴會(huì)幫助你闡述你項(xiàng)目的用途。

在項(xiàng)目的整個(gè)生命周期中,你需要做很多文字工作:READMEs,教程,社區(qū)文檔,回復(fù)issues,甚至肯能要處理很多來信和郵件。

是否是官方文檔或者一封普通的郵件,你的書寫風(fēng)格都是你項(xiàng)目品牌的一部分??紤]你可能會(huì)擁有粉絲,以及這是你想傳達(dá)的聲音。使用熱情,通俗易懂的語言(如”他們”,即使是指一個(gè)人)能夠讓新來的貢獻(xiàn)者感覺項(xiàng)目非常歡迎他們。使用簡單的語言,因?yàn)槟愕淖x者可能英語不是很好。

開源項(xiàng)目清單

文檔

  • 需要為項(xiàng)目指定一個(gè)開源協(xié)議
  • 項(xiàng)目要有基礎(chǔ)文檔 (README, CONTRIBUTING, CODE_OF_CONDUCT)
  • 易記的項(xiàng)目名,指出項(xiàng)目是做什么的,不能和已存在的項(xiàng)目沖突或者商標(biāo)侵權(quán)
  • 最新的issue隊(duì)列,組織和標(biāo)記清除的issues

代碼

  • 項(xiàng)目使用一致的代碼風(fēng)格和明確的功能/方法/可用的名字
  • 注釋清晰的代碼,記錄意圖和邊緣案例
  • 在修改歷史,issues或者 pull requests 中沒有敏感的信息 (例如 密碼或者其他不能公開的信息)

如果你是代表個(gè)人:

  • 你已經(jīng)告訴了你的法律部門,以及/或者理解了你公司(如果你是某一家公司的員工)的開源政策和IP

如果你有一家公司或者組織:

  • 你已經(jīng)告訴了你的法律部門
  • 你有一個(gè)宣布和促進(jìn)項(xiàng)目的營銷計(jì)劃
  • 一些人被允許管理社區(qū)互動(dòng)(回復(fù)issues,檢查和合并pull requests)
  • 至少有兩人管理訪問項(xiàng)目

參考

個(gè)人感想及收獲

“talk is cheap, show me the code.” 開源不僅僅說說而已,而是真真切切的邏輯表達(dá),更是一行一行代碼形成的業(yè)務(wù)場景,讓我們提煉軟件生產(chǎn)過程中的工具、技巧、方法和框架,構(gòu)建適合業(yè)務(wù)的工具棧和技術(shù)路徑圖,在適當(dāng)?shù)臅r(shí)候?yàn)殚_源社會(huì)貢獻(xiàn)自己的一份力量,讓我們在開源的道路上一路同行,攜手構(gòu)建更加美好的世界。希望大家繼續(xù)保持學(xué)習(xí)的熱情,持續(xù)構(gòu)建更快更好的產(chǎn)品或服務(wù)。若是我的文章對你有所啟發(fā),那將是我莫大的榮幸。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容