iT邦幫忙

10

[我所不知道的技術細節] 如何保障你辛苦寫的程式碼? #opensource #license #github

Sam 2020-06-04 20:09:2013715 瀏覽
  • 分享至 

  • xImage
  •  

https://ithelp.ithome.com.tw/upload/images/20200604/20124548ACszuZOlXH.jpg

Image by Pete Linforth from Pixabay

1. 為什麼需要 license ?

首先要聊聊「開源(open source)」,「把自己的創作公開」這件事,並不代表別人可以任意取用、複製或修改,創作者預設是會被法律保障的,如果創作者本人希望能夠讓大眾一同使用、參與修改的話,那麼就透過 License(授權 / 許可證 / 中文翻譯很難翻 QQ),把創作者和後來的參與者之間的權利、義務寫清楚,以此避免法律糾紛。

但因為我自己也是開源菜鳥,就不班門弄斧了,附上幾個優質資源給有興趣的捧油們參考:

2. 我怎麼知道相關的權利義務有哪些?

你還在想說要自己寫嗎?不用這麼麻煩,開源的概念發展到現在(2020),已差不多二十年左右,已經有許多現成的 License 可以給大眾使用,但相對的,創作者也要花時間去瞭解每個 License 的差異,所保障創作者的權利義務分別是什麼,這部分的時間是不能省的,因為有些 License 替創作者保障得很嚴格,例如 GPL(GNU General Public License) 限制有使用到 GPL 專案的專案也需要掛上 GPL (我知道你現在還聽不懂我在說什麼 XD),總之 GPL 就是屬於比較嚴格的那種 License;相對之下有些 License 就很鬆,例如 BSDMIT License。

3. 那該怎麼選擇適合我的 License 呢?

詳細的選擇方法,可以參考中文優質文章 在開源時代的興起下,如何透過License共享並保有權益 | ProgressBar

4. 怎麼在 Github repository 加入 License ?

在這邊我們示範在 Github 替 repository 加入 license,有兩種情況,一種是要創新專案的時候、一種是在現有專案加入 license。

4.1 創專案時,順便加上 License

創立專案時,除了打上 Repository nameDescription 之外,也可以在這個時候,點右下角的 Add a license: None

https://ithelp.ithome.com.tw/upload/images/20200604/20124548I1b2Mv8yit.png

在下拉選單中,可以看到有超多種選擇,請事先做功課再來選會比較好哦,萬一你的開源專案真的爆紅後,到時候才想到要加 License 或 要改 License 都是很麻煩的事哦,因為會牽扯到事前事後的權益問題,乾脆在一開始就決定好專案的方向。

https://ithelp.ithome.com.tw/upload/images/20200604/201245481LRWkX35Ue.png

選好你想要的 License 後,就點 Create repository,我在這邊示範用 MIT License,在 repository 中,會出現一個叫做 LICENSE 的檔案,並且系統替 repository 加上了 MIT 的 License 標章。

https://ithelp.ithome.com.tw/upload/images/20200604/20124548FhXXkClS1F.png

到這裡,你已經替 repository 加入 licesne,別人就可以在 license 的規範下,「合法」地使用你的創作。

4.2 在現有專案,補上 License

在 repository 頁面,點 Create new file

https://ithelp.ithome.com.tw/upload/images/20200604/20124548rfWpCgRJqe.png

Create new file 進來,在檔名欄位打上 license

https://ithelp.ithome.com.tw/upload/images/20200604/20124548vv67wnjgJg.png

檔名打 license 後,在檔名的右邊就會跳出 Choose a license template 選項

https://ithelp.ithome.com.tw/upload/images/20200604/20124548JJSxb3FBbO.png

在這個頁面,你就可以選擇你想要替 repository 加入的 license

https://ithelp.ithome.com.tw/upload/images/20200604/20124548FHt0Kb2GIh.png

這邊再次以 MIT License 為例,會列出每個 License 允許限制 使用者的權限,確認 YearFull name 沒問題,可以按 Review and submit

https://ithelp.ithome.com.tw/upload/images/20200604/20124548yxnmjsy3kS.png

就會跳回到修改檔案的頁面,確認整個 License 沒問題後

https://ithelp.ithome.com.tw/upload/images/20200604/20124548OOxsgfd1rk.png

就可以寫下你的 Commit message,然後可以選擇直接把 commit 寫到 master 裡,或另外再創一個 branch (這個選項是預設)。

https://ithelp.ithome.com.tw/upload/images/20200604/20124548GDBCHpeK8V.png

我這邊選直接 commit 到 master,然後 commit 出去就成功了。

https://ithelp.ithome.com.tw/upload/images/20200604/20124548K6JPlO1Guy.png

總結

最近因為投稿台灣的開源研討會 COSCUP,被工作人員要求說要替 repository 加入 license,所以才進一步去瞭解開源的權益,也才發現到,即使是 Public repository,內容都是公開的,也不能隨意去使用,不然是違法的,需要有 license 的規範,把可以做的、不可以做的寫清楚。

還有,後來才知道除了有 copyright(版權/著作權) 這個名詞之外,原來還有 copyleft(著作傳/著佐權) 這個名詞,但我自己也是剛接觸,有興趣的捧油們可以去瞭解。

我是 RS,這是我的 不做怎麼知道系列 文章,我們 下次見。



圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言