ほとんどが単体テストで構成されているテストコードにライセンスを付与する(しない)ことの利点/リスクがあるかどうか疑問に思っています。どう思いますか?
特に、(L)GPL、Apache、MIT、およびBSDでのライセンスに興味があります。
編集:非テストコードは既に何らかのライセンスの下で公開されているが、テストコードは公開されていないことを前提としているため、公開するかどうか、公開する場合は同じライセンスを適用するかどうかが問題になります。
ほとんどが単体テストで構成されているテストコードにライセンスを付与する(しない)ことの利点/リスクがあるかどうか疑問に思っています。どう思いますか?
特に、(L)GPL、Apache、MIT、およびBSDでのライセンスに興味があります。
編集:非テストコードは既に何らかのライセンスの下で公開されているが、テストコードは公開されていないことを前提としているため、公開するかどうか、公開する場合は同じライセンスを適用するかどうかが問題になります。
回答:
誰もこれについて言及していないことに驚いていますが、製品またはテストコードに関係なく、コードにライセンスを添付しない場合、他の人はコードに対する権利を持ちません。
ライセンスコードとは、他の人が通常持っていない権利を他の人に与えることです。著作権表示を明示的に添付しなくても、テストコードは自動的に著作権で保護されます(世界中のほとんどの国で)。他の人は著作権で保護されているため、そのコードを使用、配布、または派生させることはできません。
テストコードにライセンスを添付することにより、ライセンス条項に従ってそのコードを使用、配布、および/または変更する権利を人々に付与します。
同じライセンスの下で、製品コードとともにテストコードを配布することをお勧めします。これは誰にとっても最も簡単です。また、人々があなたにパッチを提出したい場合、彼らはあなたにパッチを送る前にあなたのユニットテストを実行できることを意味します。
GCCのコンパイラ(主にGPLv3のがライセンス)は、ソースコードと一緒に配布され、非常に広範囲のテストスイートを、有しています。(おそらく、いくつかのテストファイルはパブリックドメインにありますが、個々の法的ステータスは本当にわかりません)。
テストスイートを製品とは別に配布するのはなぜですか?
それは可能なビジネスモデルかもしれないので、プログラムをフリーソフトウェア(GPLまたは何でも)としてリリースしますが、関連するユニットテストは商用ライセンスの下でテストします。そうすることで、誰かがあなたのソフトウェアの改善されたバージョン(例えば、デバイスに埋め込まれた)をリリースしたい場合、より迅速で安全な開発のためにユニットテストライセンスを購入する動機があります。