ISC vs MIT: OSSライセンスの選択
背景
OSSプロジェクトのライセンスとして ISC が設定されていたが、コントリビュートガイドを整備する際に「一般的なのか?」という疑問が出た。調査の結果 MIT に変更した。
ISC と MIT の比較
| ISC | MIT | |
|---|---|---|
| 内容 | 著作権表示 + 免責 | 著作権表示 + 免責 |
| 許可される行為 | 使用・複製・改変・再配布 | 使用・複製・改変・再配布・サブライセンス・販売 |
| 制限 | なし(著作権表示のみ) | なし(著作権表示のみ) |
| 文面の長さ | 短い(2段落) | やや長い(3段落) |
| 採用率 | npm のデフォルト | GitHub上で最も多い |
| 認知度 | Node.js界隈で一般的 | 業界全体で最も広く認知 |
実質的な法的効果はほぼ同一。
なぜ ISC がデフォルトになったか
npm init を実行すると package.json の license フィールドに ISC が自動設定される。npmの作者 Isaac Z. Schlueter が ISC ライセンスの簡潔さを好んだことに由来する。そのため Node.js プロジェクトでは ISC が多い。
MIT を選ぶべき理由
- 認知度: 開発者の大多数が MIT の内容を理解している。ISC は「それ何?」と聞かれることがある
- GitHub のデフォルト: リポジトリ作成時のライセンス選択肢で最上位に表示される
- コントリビューターの安心感: 見慣れたライセンスの方が貢献のハードルが下がる
- 企業の法務審査: MIT は多くの企業で事前承認済み。ISC は個別審査が必要になる場合がある
変更時の作業
ISC → MIT への切り替えで必要な変更箇所:
LICENSEファイルの作成(MIT の全文を記載)package.jsonのlicenseフィールドを"MIT"に変更README.mdのライセンス表記を更新
まとめ
ISC と MIT は法的にはほぼ同等だが、OSSプロジェクトの認知度・コントリビューションの観点では MIT が無難。特に理由がなければ MIT を選んでおけば間違いない。