Je me demande s'il y a des avantages / risques à mettre (pas) une licence sur le code de test qui consiste principalement en des tests unitaires. Qu'est-ce que tu penses?
Je suis particulièrement intéressé par les licences sous (L) GPL, Apache, MIT et BSD.
EDIT : L'hypothèse est que le code non-test est déjà publié sous une licence, mais le code test ne l'est pas, donc la question est de savoir si le publier et si oui de mettre la même licence dessus.
Réponses:
Je suis surpris que personne ne l'ait déjà mentionné, mais si vous n'attachez pas de licence à votre code, que ce soit un produit ou un code de test, d' autres n'ont aucun droit sur le code .
Le code de licence consiste à donner à d'autres des droits qu'ils n'auraient pas normalement. Votre code de test est automatiquement couvert par le droit d'auteur (dans la plupart des pays du monde) même si vous ne joignez pas explicitement un avis de droit d'auteur. Étant protégés par le droit d'auteur, d'autres personnes ne peuvent pas utiliser, distribuer ou dériver de ce code.
En attachant une licence à votre code de test, vous donnez aux utilisateurs le droit d'utiliser, de distribuer et / ou de modifier ce code conformément aux termes de la licence.
Je vous recommande de distribuer votre code de test avec votre code produit, sous la même licence. C'est le plus simple pour tout le monde. Cela signifie également que si les gens veulent vous soumettre des correctifs, ils peuvent exécuter vos tests unitaires avant de vous envoyer un correctif, ce qui devrait aider à éliminer les correctifs qui cassent les choses.
la source
Dans le monde commercial, la plupart des entreprises facturent non seulement le produit principal, mais également le support. Le plus souvent, le support implique toute forme d'aide au moyen d'un outil ou d'une assistance personnelle, pour pouvoir rendre le produit utilisable ou résoudre tout problème lié au produit.
De ce fait, le code de test du produit qualifie également un outil de support et est une propriété intellectuelle à part entière. Il mérite donc sa propre licence.
la source
Pourquoi séparez-vous le code et testez-vous?
Je préfère un paquet de code et de test. Et ce bundle devrait obtenir la même licence.
Si quelqu'un souhaite obtenir deux fois de l'argent, vous pouvez créer deux packages, chacun avec une licence. Pour les logiciels libres, je ne vois aucune raison pour deux packages (sauf si c'est un problème de taille).
la source
Le code de test a beaucoup de valeur, car il permet à l'utilisateur de vérifier si votre solution fonctionne dans un environnement donné. Dans mon travail (logiciel embarqué), la suite de tests fait partie du contrat. Vous devez le publier avec la même licence, car son utilisation est similaire:
si quelqu'un utilise simplement votre code, il exécutera les tests
si quelqu'un veut modifier le code, il devra probablement aussi modifier certains tests
la source
IANAL, cependant:
la source
Le compilateur GCC (principalement sous licence GPLv3) possède une suite de tests assez étendue, qui est distribuée avec le code source. (peut-être que certains fichiers de test sont dans le domaine public, je ne connais vraiment pas leur statut juridique individuel).
Pourquoi voudriez-vous distribuer votre suite de tests séparément de votre produit?
la source
Cela pourrait être un modèle commercial possible, alors publiez un programme sous forme de logiciel libre (GPL ou autre), mais les tests unitaires correspondants sous une licence commerciale. De cette façon, si quelqu'un veut publier une version améliorée de votre logiciel (par exemple intégré dans un appareil), il pourrait être motivé à acheter la licence de test unitaire pour un développement plus rapide et plus sûr.
la source
Si vos tests unitaires sont bien effectués, ils constituent un modèle de reproduction de votre logiciel. Si vous ne les accordez pas de licence équivalente au code, vous invitez quelqu'un à venir et à réimplémenter tout ce que vous avez fait. Si vous êtes d'accord avec cela, ne vous embêtez pas à leur octroyer des licences.
la source