現在、このブログのテーマにはHint.cssというツールチップライブラリを利用している。こないだHint.cssのドキュメントを見ていたら、Commercial Licenseなる項目ができていた。なんでも、ビジネスサイトやテーマでHint.cssを利用するんならThe Commercial Licenseが最適だよ、みたいな事が書いてあった。

Hint.css is a free and open-source library, however, if you are using the library for business, commercial sites, themes, projects, and applications, the Commercial license is the appropriate license. With this option, your source code is kept proprietary. Read more about UpLabs commercial licensing.

どうやら、v2.4.0からライセンスを変更したようで、プロプライエタリで使うなら金払えって事だろうか。別に、このテーマはプロプライエタリではないから気にしなくていいのか・・・?ああ、ライセンス周りは考えたくない。面倒くさい。

セマンティックバージョニングとライセンス変更

さて、ふと疑問が浮かんだ。ライセンスを変更した場合、メジャーバージョンを上げるべきじゃないのか?Hint.cssがセマンティックバージョニングを採用しているかは知らないが、「大きな変更があったらバージョンアップ」は共通認識だろう。

気になって、とりあえず、セマンティックバージョニングの仕様を眺めてみたが、どこにもライセンス変更について触れられていなかった。しかし、セマンティックバージョニングのgithubにDealing with license changesという興味深いissueがあるのを見つけた。このissueでは、ライセンス変更に対してセマンティックバージョニングがどうのように関与するべきか(あるいは、関与すべきでないのか)が議論されている。

issueを見るに、そもそも論として、セマンティックバージョニングはAPIの変更という技術的な問題について対処するためにのみに存在するという前提がある。それ故、メジャーバージョンを上げても利用者がライセンス変更に気付くとは限らないし、セマンティックバージョニングに技術的要素と法的要素の両方を扱わせると意味があやふやになって全然「セマンティック」じゃない。

issueには、「パッケージマネージャの仕事だろ」とか、「利用者による精査を強制するために新しいパッケージにしたらいい」だとか、「(法的要素を扱うための)新しい標準をつくるべき」とか、そんな事が色々言われているようだ。結論は出てないが、「利用者にライセンス変更を効果的に通知する方法」が必要なのは間違いないだろう。

少なくともメジャーバージョンは上げて欲しい

利用者がライセンスの変更を察知するにはパッケージマネージャが最適だとは思うが、現状、ライセンスが変更された時の振る舞いなんて決まってないだろうし、パッケージマネージャに登録されてないソフトウェアはどうするんだ、という懸念もある。やはり、製作者が「なにも考えずにアップデートしたら駄目ですよ!」というメッセージを何かしらの方法で意思表示する努力をするべきだ。一番現実的なのは、利用者がライセンスについてもう一度考慮するだろうという期待をするために、ライセンスを変更したパッケージは名前を変えて別のパッケージとして公開するという方法じゃないだろうか。または、少なくともメジャーバージョンを上げて、(技術的、法的に)互換性がないことをアピールするべきだ。でなければ、Hint.cssのようにマイナーバージョンアップ時にシレッとライセンス変更して、いったい誰が気付くんだ?