昨天建好我們第一個 Repo,我有提到我們在公開我們的原始碼的時候,會需要 License(授權/許可證)這個東西來保障我們的權益,有點像是智慧財產權或是我們拍照拍出的照片的所有權之類的東西。
License 的種類很多,除了比較泛用的以外,有些 Open Source 專案也會自己寫自己的 License。今天會介紹比較常用到的幾個泛用的,有興趣的話可以從這個 網站 現行所有的 Licenses。
來源自麻省理工大學(Massachusetts Institute of Technology,簡寫 MIT),是目前最廣泛使用的 License 之一。他的特色是規範相對寬鬆,開源的作者只會在意版權的保留,而任何使用授權的原始碼的作品,其他人可以任意複製、修改,要免費讓人使用或是營利都沒關係,只需要註明出處、作者以及確認使用MIT。
因為 MIT 相對寬鬆的關係,他已經成為近年最常被使用到的 License,很多有名的 Open Source Project 都是直接使用 MIT,例如:寫網頁前端的 React、Python 爬蟲工具 beautifulsoup 以及去年提到的 MLB 資料套件 pybaseball 都是使用 MIT
他也跟 MIT 一樣屬於比較寬鬆的 License,跟 MIT 不一樣的地方是,如果使用者修改檔案的話,他會需要在修改過的地方,額外附加明顯的標示,讓之後使用的人知道修改者在哪些地方修改過。比較有名的例子:實作 Computer Vision 的 OpenCV、實作機械學習的套件 TensorFlow等
GPL 是世界上第一個 Open Source License,他的一大特色是,使用他的衍生作品也必須要使用 GPL,不能改使用別的 License 像是前面提到的 MIT 跟 Apache,同時也必須一定要開放可編譯的原始碼給大眾,因此使用他的 Project 就會比較少應用在商業軟體上面。最知名的例子就是 Linux
比較常見可能就是這三個,對於 License 方面我其實也沒有那麼深入研究,大多數內容也是參考以下幾篇我覺得整理的很好的文章,如果有興趣的人可以去一探究竟:
介紹完 License,我們這次要選用哪一種並加到我們的 Repo 呢?首先在選擇上面,上面提到的在開源時代的興起下,如何透過License共享並保有權益有提供一個很棒的參考圖:
不過因為我們有前輩 pybaseball 當範例,所以我就跟他們一樣選用 MIT 當我們這次套件的 License。
要加入 License 進我們 Repo 的話,有幾個步驟
Input
裡面有預設 Name your file...,在裡面輸入 license 後下方會出現 Choose a license templateModal
,請你輸入 commit
的內容,之後會介紹 commit 是什麼東西,現在可以先當他是一個修改紀錄,我們就用預設的資訊就好,最後再按 Modal 裡的 Commit ChangeLICENSE
的 file,然後在 About 的地方多了一個 MIT License,這樣就算成功把 License 加到我們的 Repo 裡了今天簡單介紹了一下 License 這個東西,大家之後在使用或是自己創建 Open Source Project 的時候不仿也去看看別人用了哪種 License 吧!明天會介紹 git
指令,來幫助我們開發我們的專案。
今天一樣感謝大家耐心地看完,有任何問題與建議也歡迎大家在留言告知我,我們明天見 掰掰