常用开源协议介绍以及开源软件规范列表
生活随笔
收集整理的這篇文章主要介紹了
常用开源协议介绍以及开源软件规范列表
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 開源協議介紹
GPL:General Public License,開源項目最常用的許可證,衍生代碼的分發需開源并且也要遵守此協議。該協議也有很多變種,不同變種要求會略微不同。MPL:MPL協議允許免費重發布、免費修改,但要求修改后的代碼版權歸軟件的發起者,這種授權維護了商業軟件的利益,它要求基于這種軟件的修改無償貢獻版權給該軟件。LGPL:Lesser General Public Licence,是GPL的一個為主要為類庫使用設計的開源協議。LGPL允許商業軟件通過類庫引用的方式使用LGPL類庫而不需要開源商業軟件的代碼。但是如果修改LGPL協議的代碼或者衍生,則所有修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須采用LGPL協議。Apache:Apache協議是Apache軟件基金會發布的一個自由軟件許可證,Apache 2.0協議除了為用戶提供版權許可之外,還有專利許可,非常適合涉及專利內容的項目。BSD:BSD(Berkeley Software Distribution,伯克利軟件發行版)。BSD協議在軟件分發方面,除需要包含一份版權提示和免責聲明之外,沒有任何限制,該協議還禁止用開源代碼的作者/機構名字和原來產品的名字做市場推廣。MIT: 協議的主要內容為:該軟件及其相關文檔對所有人免費,可以任意處置,包括使用,復制,修改,合并,發表,分發,再授權,或者銷售。唯一的限制是,軟件中必須包含上述版權和許可提示。MIT協議是所有開源許可中最寬松的一個,除了必須包含許可聲明外,再無任何限制。
那具體如何選擇適合自己的開源協議呢?你可以參考烏克蘭程序員 Paul Bagwell 畫的這張圖:
2. 開源規范詳細列表
項目結構:一個開源項目應該有一個合理、專業的、符合語言特色的項目結構。嚴格遵循代碼規范:開源的代碼,面向的人群是所有的開發者,一個不規范的代碼,可讀性差,不利于其他開發者閱讀和貢獻代碼。代碼質量:開源的代碼,一定要保證代碼的質量,一個低質量的代碼,不僅隱藏了很多性能和功能缺陷,而且還會影響開源項目的品牌,進而影響開源效果。單元測試覆蓋率:一個開源的Go項目,要保證整個項目的單元測試覆蓋率,這樣一方面可以保證代碼的質量,另一方面可以使開源項目更專業,也能讓你更加安心的發布版本。版本發布規范:開源項目要遵循既定的版本規范,整個項目的更新迭代,要有版本號,目前用的比較多的是語義化的版本規范。向下兼容:代碼要做到向下兼容,這樣可以盡可能減少發布變更的影響,遵循語義化的版本規范,可以在一定程度上保證代碼的向下兼容能力。詳細的文檔說明:要保證代碼能夠被其他開發者很容易的閱讀和貢獻代碼,所以不僅要保證文檔的質量和數量,還要確保有某些需要的文檔:LICENSE(如果是開源項目,LICENSE是必選的):軟件協議,聲明該開源項目遵循什么軟件協議。README.md:README文件,放在項目的根目錄下,包含項目的描述、依賴項、安裝方法、使用方法、貢獻方法、作者和遵循的軟件協議等。CHANGELOG:目錄,用來存放版本的變更歷史,方便其他開發者了解新版本或舊版本的變更內容。Makefile:對于一個復雜的項目,通常也會包含一個Makefile文件,用來對項目進行構建、測試、安裝等操作。CONTRIBUTING:用來說明如何給本項目貢獻代碼,包含貢獻流程和流程中每個環節的詳細操作。docs:目錄,用來存放本項目所有文檔,例如:安裝文檔、使用文檔、開發文檔等。一些重要的文檔,可以鏈接到項目根目錄的README文檔中。這些文檔要確保開發者能夠輕松的理解、部署和使用該項目。examples:存放一些示例代碼。安全:開源的代碼,要保證整個代碼庫和提交記錄中,不能出現類似內部 IP、內部域名、密碼、密鑰這類信息。完善的 examples:完善的 examples,可以幫助用戶快速學習和使用開源項目。好的 Commit Message 記錄:開源項目在commit時,要遵循一定的規范,這樣其他開發者才能夠快速瀏覽和理解變更歷史,減小學習成本,本項目遵循Angular commit message規范。發布可用的版本:要確保每一次發布都經過充分的測試,每一個發布的版本都是可用的。持續的更新:一個好的開源項目,應該能夠持續的更新功能,修復Bug。對于一些已經結項、不維護的開源項目,需要及時的對項目進行歸檔,并在項目描述中加以說明。及時的處理 pull request、issue、評論等:當項目被別的開發者提交pull request、issue、評論時,要及時的處理,一方面可以確保項目不斷被更新,另一方面也可以激發其他開發者貢獻代碼的積極性。建立討論小組:如果條件允許,最好和貢獻者建立討論小組,每周或每月組織討論,共同維護。做好推廣:如果有條件,可以宣傳運營開源項目,讓更多的人知道,更多的人用,更多的人貢獻代碼。例如:在掘金、簡書等平臺發表文章,創建 QQ、微信交流群等。Git 工作流:選擇合適的Git工作流,并遵循Git工作流使用規范,例如Gitflow工作流。
參考:
https://time.geekbang.org/column/article/380033
總結
以上是生活随笔為你收集整理的常用开源协议介绍以及开源软件规范列表的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2022-2028年中国节能建材行业深度
- 下一篇: 吸水间最低动水位标高_水库水位库容监测系