Jaką licencję wybrać dla projektu open-source?
Wybór licencji open source dla projektu nie jest oczywisty. MIT? Apache? GPL? Każda ma inne reguły co inni mogą z Twoim kodem zrobić, czy muszą wskazać autorstwo, czy ich pochodne muszą być też open source.
Tu pomożemy Ci wybrać. Mamy dwa tryby: wizard (kilka pytań tak/nie/dowolnie - zawężamy listę) albo przegląd (cała lista 16 licencji z porównaniem).
Po wybraniu wpisujesz imię/nazwisko + rok, kopiujesz albo pobierasz gotowy plik LICENSE do korzenia projektu.
Jak korzystać
- Wybierz tryb na górze: Wizard (z pytaniami) albo Przegląd (z wyszukiwarką).
- W wizardzie odpowiadasz na 4 pytania: czy pochodne muszą być OSS, użycie komercyjne, wymóg atrybucji, licencja patentowa. Lista po lewej zawęża się dynamicznie.
- Kliknij licencję żeby zobaczyć szczegóły: uprawnienia (co inni mogą), warunki (co muszą zrobić), ograniczenia (od czego się zrzekasz).
- Wpisz imię/nazwisko i rok żeby wstawić je do tekstu licencji.
- Skopiuj zawartość albo pobierz plik LICENSE - umieść go w korzeniu repozytorium.
Do czego się przydaje
Codzienne sytuacje wymagające wyboru licencji:
- Publikuję pierwszą bibliotekę npm - bez licencji nikt nie może legalnie używać. Najpopularniejszy wybór: MIT (krótka, prosta, używana przez React/Vue/Angular).
- Firmowa biblioteka, boimy się patentów - Apache 2.0 ma jawną licencję patentową chroniącą zarówno autorów jak i użytkowników. Tego wymaga m.in. CNCF.
- Chcę żeby moje zmiany zawsze były open source - GPL-3.0 wymusza pochodne na tej samej licencji. AGPL-3.0 dodaje wymóg ujawnienia źródła nawet gdy ktoś hostuje moje narzędzie jako SaaS.
- Tworzę dokumentację albo grafikę - kod używaj MIT/Apache, ale dokumentację czy obrazki zwykle dajesz na CC BY 4.0 (atrybucja) albo CC BY-SA 4.0 (atrybucja + copyleft).
- Chcę zarabiać na produkcie ale otworzyć kod - BSL 1.1 (HashiCorp Terraform) albo Elastic 2.0 (Elasticsearch) - źródło widoczne, ale ograniczone użycie komercyjne. Uwaga: to NIE jest OSS w sensie OSI.
- Bez ograniczeń - Unlicense albo CC0 dla pełnego public domain. WTFPL to żart, ale legalnie działa.
- Dodaję plik LICENSE do istniejącego repo - wybierasz, wstawiasz swoje dane, kopiujesz do pliku `LICENSE` (lub `LICENSE.md`) w korzeniu.
Powiązane narzędzia: generator .gitignore na start nowego projektu. Walidator package.json sprawdzi pole `"license"` w manifeście.