OSSライセンス選び
Licence Chooser
主なオープンソースライセンスを義務と互換性で見比べ、LICENSEファイルを書き出します。
よく使われるオープンソースのライセンスを並べて比べます。それぞれが何を許し、何を求め、何を制限するのかを示し、名前と年を埋めた本文を作ります。比較の項目と本文はchoosealicense.comのもので、手を加えていません。
比較
| ライセンス | 許可 | 条件 | 制限 |
|---|---|---|---|
| MIT |
|
|
|
| Apache-2.0 |
|
|
|
| GPL-3.0 |
|
|
|
| LGPL-3.0 |
|
|
|
| AGPL-3.0 |
|
|
|
| MPL-2.0 |
|
|
|
| BSD-2-Clause |
|
|
|
| BSD-3-Clause |
|
|
|
| ISC |
|
|
|
| Unlicense |
| なし |
|
比較の項目とライセンス全文は github/choosealicense.com@d6277c04899c(choosealicense.com)から取得しています。比較の手がかりであって、法的助言ではありません。
MIT License
短く単純な寛容型ライセンスで、条件は著作権表示とライセンス表示を残すことだけです。ライセンスの対象となる著作物、その改変物、それらを含むより大きな著作物は、別の条件で、ソースコードなしで頒布できます。
使い方
比較表を読みます
列は3つです。何をしてよいか、何をしなければならないか、何が与えられないか。大まかな見取り図は、MIT・BSD・ISCがほとんど何も求めず、Apache-2.0が特許の許諾を加え、GPLの系統が下流にも同じライセンスを求める、というものです。
行を押して本文を見ます
下に本文の全体が出て、何のためのライセンスかという短い説明が付きます。
年と権利者を埋めます
そうした欄があるライセンスは一部です。無い場合は、著作権表示はソースファイルかREADMEに書くのが正しく、ページもそう案内します。
LICENSEという名前で保存します
リポジトリの最上位にある`LICENSE`という名前のファイルを、GitHubもnpmも、たいていのスキャナも探します。
よくある質問
これは法律上の助言ですか
違います。choosealicense.comの要約をもとにした比較の道具で、その要約自体も近似です。実際のお金や実際の紛争が絡むなら、ウェブページではなく弁護士に尋ねてください。
GPLとAGPLは何が違いますか
AGPLはネットワークの穴を塞ぎます。GPLでは、改変したソフトウェアをホスティングされたサービスとして動かすことは配布にあたらず、ソースを公開する義務が生じません。AGPLはネットワーク越しの利用もそこに含めます。この違い1つのために、まるごと禁止している会社もあります。
あとからライセンスを変えられますか
自分ひとりで書いたコードなら変えられます。ただし、すでに古い条件で受け取った人は、その条件を持ち続けます。ほかの人が貢献したあとは、その人たちの同意が要ります。定着したプロジェクトのライセンスを変えることが、たいてい数か月がかりの事務仕事になるのはそのためです。
ライセンスをまったく付けなかったらどうなりますか
既定の著作権が適用され、誰にもそのコードを使ったり、複製したり、改変したりする権限がありません。GitHubで公開していても同じです。「ライセンス無し」はいちばん寛容な選択ではなく、いちばん厳しい選択です。
ここから渡せます
次の一手
このツールが出したものをそのまま受け取れる道具です。
.gitignore生成
.gitignore Generator
言語・フレームワーク・エディタのテンプレートを選んで組み合わせ、重複をまとめて.gitignoreを作ります。
セマンティックバージョンの範囲確認
Semver Range Tester
どのバージョンが範囲に入るかを確かめ、2つのバージョンを比べ、一覧を優先順位どおりに並べます。
Base64エンコード・デコード
Base64 Encoder & Decoder
テキストでもファイルでもBase64とBase64URLを符号化・復号し、UTF-8も正しく扱います。
curlをコードに変換
curl to Code
curlのコマンドをfetch・axios・Pythonのrequests・Go・PHP・PowerShellのコードに変換します。
文字列のハッシュ
Text Hash
文字列のMD5・SHA-1・SHA-256・SHA-384・SHA-512・CRC-32を計算し、大文字表記とBase64での出力も選べます。
JSON⇄CSV変換
JSON ⇄ CSV
入れ子のJSONをドット記法の列名で平らに開くか、表からオブジェクトを組み直します。