Ich frage mich, ob es irgendwelche Vorteile / Risiken gibt, wenn man einen Testcode, der hauptsächlich aus Unit-Tests besteht, (nicht) lizenziert. Was denkst du?
Ich interessiere mich besonders für die Lizenzierung unter (L) GPL, Apache, MIT und BSD.
BEARBEITEN : Die Annahme ist, dass Nicht-Test-Code bereits unter einer Lizenz veröffentlicht ist, Test-Code jedoch nicht. Die Frage ist also, ob er veröffentlicht werden soll und wenn ja, ob dieselbe Lizenz darauf installiert werden soll.
Antworten:
Ich bin überrascht, dass niemand dies bereits erwähnt hat, aber wenn Sie Ihrem Code keine Lizenz hinzufügen, sei es Produkt- oder Testcode, haben andere keine Rechte an dem Code .
Beim Lizenzcode geht es darum, anderen Rechte zu erteilen, die sie normalerweise nicht haben würden. Ihr Testcode ist automatisch urheberrechtlich geschützt (in den meisten Ländern der Welt), auch wenn Sie keinen expliziten Copyright-Hinweis anbringen. Da andere Personen urheberrechtlich geschützt sind, können sie diesen Code nicht verwenden, verbreiten oder daraus ableiten.
Durch das Anhängen einer Lizenz an Ihren Testcode erteilen Sie den Personen das Recht, diesen Code gemäß den Lizenzbestimmungen zu verwenden, zu verbreiten und / oder zu ändern.
Ich würde empfehlen, dass Sie Ihren Testcode mit Ihrem Produktcode unter derselben Lizenz vertreiben. Dies ist für alle am einfachsten. Das bedeutet auch, dass Benutzer, die Patches an Sie senden möchten, Ihre Komponententests ausführen können, bevor sie Ihnen einen Patch senden. Dies soll helfen, Patches auszusortieren, die Probleme verursachen.
quelle
In der Geschäftswelt berechnen die meisten Unternehmen nicht nur für das Kernprodukt, sondern auch für den Support. In den meisten Fällen umfasst der Support jede Form von Hilfe durch Tools oder persönliche Unterstützung, um das Produkt nutzbar zu machen oder Probleme im Zusammenhang mit dem Produkt zu lösen.
Demzufolge ist Code zum Testen des Produkts gleichermaßen ein Support-Tool und ein eigenständiges geistiges Eigentum. Es verdient also eine eigene Lizenz.
quelle
Warum trennen Sie Code und Test?
Ich bevorzuge ein Bündel von Code und Test. Und dieses Bundle sollte die gleiche Lizenz bekommen.
Wenn jemand zweimal Geld haben möchte, können Sie zwei Pakete erstellen - jedes mit einer Lizenz. Für freie Software sehe ich keinen Grund für zwei Pakete (es sei denn, es handelt sich um ein Größenproblem).
quelle
Der Testcode ist sehr wertvoll, da der Benutzer überprüfen kann, ob Ihre Lösung in einer bestimmten Umgebung funktioniert. In meinem Job (Embedded Software) ist die Testsuite Bestandteil des Vertrages. Sie sollten es mit derselben Lizenz veröffentlichen, da die Verwendung ähnlich ist:
Wenn jemand nur Ihren Code verwendet, führt er die Tests durch
Wenn jemand den Code ändern möchte, muss er wahrscheinlich auch einige Tests ändern
quelle
IANAL jedoch:
quelle
Der GCC- Compiler (meist GPLv3-lizenziert) verfügt über eine recht umfangreiche Testsuite, die mit dem Quellcode ausgeliefert wird. (Vielleicht sind einige Testdateien gemeinfrei, ich kenne ihren individuellen rechtlichen Status wirklich nicht).
Warum sollten Sie Ihre Testsuite getrennt von Ihrem Produkt vertreiben?
quelle
Es könnte ein mögliches Geschäftsmodell sein, also veröffentlichen Sie ein Programm als freie Software (GPL oder was auch immer), aber die entsprechenden Unit-Tests unter einer kommerziellen Lizenz. Auf diese Weise kann jemand, der eine verbesserte Version Ihrer Software veröffentlichen möchte (z. B. in ein Gerät eingebettet), motiviert sein, die Unit-Test-Lizenz für eine schnellere und sicherere Entwicklung zu erwerben.
quelle
Wenn Ihre Komponententests gut durchgeführt wurden, sind sie eine Blaupause für die Reproduktion Ihrer Software. Wenn Sie sie nicht entsprechend dem Code lizenzieren, laden Sie jemanden ein, einfach vorbeizukommen und alles, was Sie getan haben, erneut zu implementieren. Wenn Sie damit einverstanden sind, müssen Sie sie nicht lizenzieren.
quelle