Udostępnij za pośrednictwem


licenses.nuget.org

Uzasadnienie

Wraz z wprowadzeniem wyrażeń licencji pojawiło się wymaganie, aby mieć niezawodną usługę, która dostarczałaby tekst referencyjny dla poszczególnych identyfikatorów licencji, identyfikatorów wyjątków lub wyrażeń licencji. Dodatkowym wymaganiem dla tej usługi jest posiadanie stabilnego schematu adresu URL, który nie jest podatny na zgniliznę łącza, dzięki czemu możemy bezpiecznie użyć go do zapewnienia zgodności z poprzednimi wersjami dla starszych klientów.

Licenses.nuget.org spełnia tę rolę. Nuget.org używa go do udostępnienia dokumentacji tekstowej licencji dla pakietów, które określają licencję przy użyciu wyrażenia licencji. nuget pack lub pakowania z innymi narzędziami klienckimi ustaw licenseUrl element, aby wskazać licenses.nuget.org, aby zapewnić zgodność z poprzednimi wersjami ze starszymi klientami, którzy nie obsługują license elementu.

Tekst licencji i wyjątku

Informacje o wyjątku licencji i licencji wyświetlane na licenses.nuget.org są kopiowane z repozytorium danych listy licencji projektu SPDX. Format wyświetlanych informacji dokładnie naśladuje format używany przez witrynę internetową SPDX, np. zobacz MIT na licenses.nuget.org i MIT w SPDX.org.

Licencje, które nie są zatwierdzone przez inicjatywę open source lub Free Software Foundation, nie są hostowane na licenses.nuget.org i są wykluczone.

Kilka stylów oprócz zwykłego tekstu jest używanych na wyświetlaczu licencji. Zgodnie z często zadawanymi pytaniami na liście licencji SPDX czerwony tekst jest uznawany za zastępowalny, a niebieski tekst jest uznawany za możliwy do zastąpienia. Aby uzyskać bardziej ogólne informacje na temat danych listy licencji SPDX, zobacz ich często zadawane pytania i specyfikację szablonu licencji SPDX.

Należy pamiętać, że dane są kopiowane z spDX do licenses.nuget.org przez nuget.org na zasadzie ad hoc. Jeśli identyfikator licencji jest zatwierdzony przez inicjatywę open source lub Free Software Foundation, ale nie pojawia się w licenses.nuget.org, zgłoś problem, a zespół nuget.org pracuje nad aktualizowaniem licenses.nuget.org i nuget.org weryfikacji przekazywania pakietów przy użyciu najnowszych danych z SPDX.

Jeśli jako autor pakietu nie jesteś zadowolony z udostępnionego tekstu licencji dostępnego w licenses.nuget.org, możesz rozważyć użycie osadzonego tekstu licencji (<license type="file">) zamiast wyrażenia licencji dla pakietu NuGet. Dzięki temu można w pełni dostosować postanowienia licencyjne i uwzględnić dostosowany tekst w pakiecie.

Protokół

Licenses.nuget.org jest przeznaczony do wyświetlania przez osoby w przeglądarkach, nie podano odpowiedzi z możliwością odczytu maszynowego. Protokół HTTPS musi być używany, a żądania powinny być konstruowane w określony sposób. Obsługuje GET tylko żądania. Akceptuje wyrażenia licencji lub identyfikatory wyjątków licencji jako dane wejściowe w sposób określony poniżej. Należy pamiętać, że w przypadku wszystkich elementów wyrażeń licencji uwzględniana jest wielkość liter, a zatem wszystkie dane wejściowe licenses.nuget.org również uwzględnia wielkość liter.

Wyrażenia licencji

Żądanie

Wyrażenia licencji (w tym trywialne przypadki, gdy wyrażenie składa się z pojedynczej licencji) muszą być zakodowane pod adresem URL i używane jako ścieżka w żądaniu do licenses.nuget.org.

Wyrażenie licencji Adres URL do użycia
MIT https://licenses.nuget.org/MIT
(MIT) https://licenses.nuget.org/(MIT)
(LGPL-2.0-only WITH FLTK-exception OR Apache-2.0+) https://licenses.nuget.org/(LGPL-2.0-only%20WITH%20FLTK-exception%20OR%20Apache-2.0+)

Usługa obsługuje tylko identyfikatory licencji i identyfikatory wyjątków licencji, które są akceptowane przez nuget.org. W szczególności oznacza to, że akceptowane będą tylko identyfikatory licencji zatwierdzone przez inicjatywę open source lub Free Software Foundation. Wszystkie wyrażenia licencji zawierające nieobsługiwane identyfikatory licencji lub identyfikatory wyjątków licencji lub niezgodne ze składnią wyrażeń licencji są uznawane za nieprawidłowe.

Response

Licenses.nuget.org odpowiada na żądania zawierające prawidłowe wyrażenia licencji z kodem stanu HTTP 200 i stroną internetową zawierającą opis wyrażenia licencji:

  • jeśli podane wyrażenie licencji zawiera pojedynczy identyfikator licencji, zwracana jest strona internetowa zawierająca tekst odwołania do licencji;
  • Jeśli podane wyrażenie licencji jest wyrażeniem licencji złożonej, zostanie zwrócona strona internetowa zawierająca wyrażenie licencji z linkami do odwołań do poszczególnych licencji lub wyjątków licencji.

Wszystkie żądania, które zawierają nieprawidłowe wyrażenie licencji, powodują odpowiedź HTTP 404.

Wyjątki licencji

Żądanie

Identyfikatory wyjątków licencji muszą być zakodowane pod adresem URL i używane jako ścieżka w żądaniu, aby licenses.nuget.org. W jednym żądaniu można podać tylko jeden identyfikator wyjątku licencji. Nie ma dodatkowych znaków oprócz identyfikatora wyjątku licencji w części ścieżki adresu URL.

Identyfikator wyjątku licencji Adres URL do użycia
Wyjątek FLTK https://licenses.nuget.org/FLTK-exception
openvpn-openssl-exception https://licenses.nuget.org/openvpn-openssl-exception

Response

Licenses.nuget.org odpowiada na żądanie ze znanym identyfikatorem wyjątku licencji z odpowiedzią HTTP 200 i stroną internetową zawierającą tekst odwołania dla określonego wyjątku licencji.

Każde żądanie zawierające nieobsługiwany identyfikator wyjątku licencji powoduje odpowiedź HTTP 404.