Zastanawiam się, czy istnieją jakieś korzyści / ryzyko (nie) nałożenia licencji na kod testowy, który składa się głównie z testów jednostkowych. Co myślisz?
Szczególnie interesuje mnie licencjonowanie na podstawie (L) GPL, Apache, MIT i BSD.
EDYCJA : Założeniem jest, że kod nie testowy jest już opublikowany na podstawie licencji, ale kod testowy nie, więc pytanie brzmi, czy go opublikować, a jeśli tak, czy nałożyć na niego tę samą licencję.
Odpowiedzi:
Dziwi mnie, że nikt już o tym nie wspominał, ale jeśli nie dołączysz licencji do swojego kodu, niezależnie od tego, czy jest to kod produktu, czy testowy, inni nie mają żadnych praw do kodu .
Kod licencyjny polega na przyznawaniu praw innym, których normalnie by nie posiadali. Twój kod testowy jest automatycznie objęty prawem autorskim (w większości krajów na całym świecie), nawet jeśli nie dołączasz wyraźnej informacji o prawach autorskich. Będąc chronionym prawem autorskim, inni ludzie nie mogą używać, rozpowszechniać ani czerpać z tego kodu.
Dołączając licencję do kodu testowego, dajesz ludziom prawo do używania, rozpowszechniania i / lub modyfikowania tego kodu zgodnie z warunkami licencji.
Zalecam rozpowszechnianie kodu testowego wraz z kodem produktu na tej samej licencji. Jest to najprostsze dla wszystkich. Oznacza to również, że jeśli ludzie chcą przesyłać ci łatki, mogą uruchomić testy jednostkowe, zanim wyślą ci łatkę, co powinno pomóc w usunięciu łatek, które psują rzeczy.
źródło
W świecie komercyjnym większość firm pobiera opłaty nie tylko za produkt podstawowy, ale także za wsparcie. Najczęściej wsparcie obejmuje każdą formę pomocy za pomocą narzędzi lub pomocy osobistej, aby umożliwić użytkowanie produktu lub rozwiązać wszelkie problemy związane z produktem.
Pod tym względem kod do testowania produktu w równym stopniu kwalifikuje narzędzie wsparcia i jest sam w sobie własnością intelektualną. Zasługuje więc na własną licencję.
źródło
Dlaczego oddzielasz kod i testujesz?
Wolę pakiet kodu i test. I ten pakiet powinien uzyskać tę samą licencję.
Jeśli ktoś chciałby dostać dwa razy więcej pieniędzy, możesz zrobić dwie paczki - każda z licencją. W przypadku wolnego oprogramowania nie widzę powodu dla dwóch pakietów (chyba że jest to problem z rozmiarem).
źródło
Kod testowy ma dużą wartość, ponieważ pozwala użytkownikowi sprawdzić, czy twoje rozwiązanie działa w danym środowisku. W mojej pracy (oprogramowanie wbudowane) pakiet testowy jest częścią umowy. Powinieneś opublikować go z tą samą licencją, ponieważ użycie jest podobne:
jeśli ktoś po prostu użyje twojego kodu, wtedy przeprowadzi testy
jeśli ktoś chce zmodyfikować kod, prawdopodobnie będzie musiał również zmodyfikować niektóre testy
źródło
IANAL jednak:
źródło
GCC kompilator (głównie GPLv3 licencjonowany) ma dość obszerny zestaw testów, który jest rozpowszechniany z kodem źródłowym. (być może niektóre pliki testowe są własnością publiczną, naprawdę nie znam ich indywidualnego statusu prawnego).
Dlaczego miałbyś chcieć dystrybuować swój zestaw testów oddzielnie od swojego produktu?
źródło
Może to być możliwy model biznesowy, więc wypuść program jako wolne oprogramowanie (GPL lub cokolwiek innego), ale odpowiednie testy jednostkowe na licencji komercyjnej. W ten sposób, jeśli ktoś chce wydać ulepszoną wersję oprogramowania (np. Wbudowaną w urządzenie), może być zmotywowany do zakupu licencji na testy jednostkowe w celu szybszego i bezpieczniejszego rozwoju.
źródło
Jeśli testy jednostkowe są dobrze wykonane, stanowią one plan do odtworzenia oprogramowania. Jeśli nie licencjonujesz ich równoważnie z kodem, zapraszasz kogoś, aby po prostu przyszedł i ponownie zaimplementował to, co zrobiłeś. Jeśli masz rację, nie zawracaj sobie głowy licencjonowaniem ich.
źródło