Licencje bibliotek zależnych

Każda większa aplikacja biznesowa, korzysta z wielu bibliotek zależych, a każda z tych bibliotek pozwala zaoszczędzić czas i środki, które mogą się przydać na inne części systemu.

Czym są biblioteki zależne? 

Oprogramowanie takie jak YetiForce, aby wykorzystać potencjał już stworzonego kodu, dla niektórych funkcjonalności biznesowych nie tworzy nowego kodu, lecz wykorzystuje już istniejące biblioteki. Każda istniejąca biblioteka użyta w projekcie nazywa się biblioteką zależną. Od strony praktycznej, każda biblioteka zależna również może wymagać innych bibliotek i wówczas zależności te mogą rodzić konflikty.

Jak wyeliminować konflikty zależności?

Na wczesnym etapie projektu, gdy cały kod odziedziczyliśmy po wykonaniu rozwidlenia projektu napotkaliśmy problem zależności [tzn. istniało wiele tych samych bibliotek w różnych wersjach], przez co trudno było określić ile bibliotek znajduje się w systemie i ile z nich wymaga aktualizacji. Pierwszym krokiem było stworzenie miejsca, w którym każda biblioteka jest wpisana [ze względu na różne technologie wykorzystywane w systemie, mamy 3 główne pliki]:

  • yarn.lock - zawiera spis wszystkich używanych bibliotek JS.
  • composer.lock - zawiera spis wszystkich używanych bibliotek PHP
  • package.json - domyślne repozytorium bibliotek PHP

Gdy wszystkie biblioteki zostały uporządkowane należało uaktualnić je do najnowszej stabilnej wersji i poprawić kod, który był kompatybilny tylko ze starszymi wersjami bibliotek. Jeżeli jakaś biblioteka została porzucona przez producenta, wówczas została zastąpiona inną rozwijaną biblioteką o podobnej funkcjonalności.

Weryfikacja bibliotek pod kątem licencji

Gdy wszystkie biblioteki zostały uaktualnione i uporządkowane wykonaliśmy przegląd ich zgodności ze standardami narzuconymi w projekcie. W ten sposób zostały wyeliminowane wszystkie niezgodne biblioteki ze względu na:

  • brak informacji o właścicielu praw majątkowych
  • brak informacji o licencji
  • licencja nie była już rozwijana
  • licencja wymuszała "copyleft" na projekcie lub nie była kompatybilna z innymi liencjami np. biblioteki na licencji gpl/agpl/osl.

Lista bibliotek zależnych

Aktualna lista bibliotek zależnych zawsze powinna być dostępna w aplikacji, ponieważ każde wdrożenie może wymagać dodania lub usunięcia bibliotek, dlatego lista bibliotek zależnych poniżej, jest tylko listą poglądową i wymaga ręcznej weryfikacji bezpośrednio w aplikacji: Konfiguracja systemu > O aplikacji > Licencje.

Podsumowanie

  • Apache-2.0 - 5 bibliotek
  • BSD 2 i 3 - 13 bibliotek
  • CC-BY-4.0 - zestaw dźwięków
  • ISC - 5 bibliotek
  • MIT - 118 bibliotek
  • MPL 1.1 - 1 biblioteka
  • SPL 1.1.2 - kilkanascie plików - biblioteka tożsama z MPL 1.1.
  • VPL 1.1 - kilkaset plików - biblioteka tożsama z MPL 1.1.

Lista

Należy pamiętać, że lista poniżej jest listą, którą można zmienić. Każda biblioteka poniżej może zostać zastąpiona inną biblioteką lub można ją przepisać ponownie aby zmienić oryginalną licencję.