Compartir a través de


licenses.nuget.org

Análisis razonado

Con la introducción de las expresiones de licencia, surgió el requisito de disponer de un servicio fiable que proporcionase un texto de referencia para identificadores de licencia, identificadores de excepción o expresiones de licencia individuales. Un requisito adicional de este servicio consiste en tener un esquema de dirección URL estable, que no sea susceptible a la degradación de vínculos, para poder usarlo sin riesgos a fin de proporcionar compatibilidad con versiones anteriores para clientes antiguos.

Licenses.nuget.org desempeña este rol a la perfección. NuGet.org lo usa para proporcionar la referencia de texto de la licencia para los paquetes que especifiquen su licencia con una expresión de licencia. nuget pack o el empaquetado con otras herramientas de cliente establecen el elemento licenseUrl de modo que apunte a licenses.nuget.org para ofrecer compatibilidad con versiones anteriores de clientes antiguos que no admiten el elemento license.

Texto de licencia y excepción

La información sobre licencias y excepciones de licencia que se muestra en licenses.nuget.org se copió del repositorio de datos de la lista de licencias del proyecto SPDX. El formato en que se muestra la información imita fielmente el formato que se utiliza en el propio sitio web de SPDX, por ejemplo, consulte MIT en licenses.nuget.org y MIT en SPDX.org.

Las licencias que no aprobadas de código abierto o de la fundación para el software libre no se hospedan en licenses.nuget.org y están excluidas.

En la presentación de la licencia se utilizan varios estilos, además de texto sin formato. Según las preguntas frecuentes sobre los datos de la lista de licencias SPDX, el texto en rojo se considera reemplazable y el texto en azul se considera omisible. Para más información general sobre los datos de la lista de licencias SPDX, consulte las preguntas frecuentes y la especificación de la plantilla de licencia SPDX.

Tenga en cuenta que nuget.org copia los datos de SPDX a licenses.nuget.org de forma ad hoc. Si un identificador de licencia está aprobado por la iniciativa de código abierto o la fundación para el software libre pero no aparece en licenses.nuget.org, informe un problema, y el equipo de nuget.org trabajará para actualizar licenses.nuget.org y la validación de carga de paquetes de nuget.org con los datos más recientes de SPDX.

Si como autor de un paquete no está satisfecho con el texto de licencia compartido disponible en licenses.nuget.org, puede considerar el uso de texto de licencia incrustado (<license type="file">) en lugar de una expresión de licencia para su paquete NuGet. Esto le permite personalizar completamente sus términos de licencia e incluir el texto personalizado dentro del paquete.

Protocolo

Licenses.nuget.org está pensado para que los usuarios lo visualicen en sus exploradores; no se proporcionan respuestas que pueda leer una máquina. Se debe usar el protocolo HTTPS y se espera que las solicitudes se construyan de una manera determinada. Solo admite solicitudes GET y acepta expresiones de licencia o identificadores de excepción de licencia como una entrada de la manera que se indica a continuación. Tenga en cuenta que todos los elementos de las expresiones de licencia distinguen mayúsculas de minúsculas y, por lo tanto, también lo hacen todas las entradas en licenses.nuget.org.

Expresiones de licencia

Solicitar

Las expresiones de licencia (incluidos los casos triviales en los que la expresión consta de una sola licencia) deben codificarse como URL y usarse como ruta de acceso en la solicitud a licenses.nuget.org.

Expresión de licencia Dirección URL que se debe usar
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+)

El servicio solo admite identificadores de licencia e identificadores de excepción de licencia aceptados por nuget.org. En particular, esto significa que solo se aceptarán los identificadores de licencia aprobados por la Iniciativa de código abierto o la Fundación para el software libre. Todas las expresiones de licencia que contienen identificadores de licencia o identificadores de excepción de licencia no admitidos, o que no se ajustan a la sintaxis de expresión de licencia, se consideran no válidas.

Respuesta

Para responder a las solicitudes que contienen expresiones de licencia válidas, licenses.nuget.org envía un código de estado HTTP 200 y una página web que incluye una descripción de la expresión de licencia:

  • Si la expresión de licencia proporcionada contiene un solo identificador de licencia, se devuelve una página web que contiene ese texto de referencia de la licencia.
  • Si la expresión de licencia proporcionada es una expresión de licencia compuesta, se devuelve una página web que contiene la expresión de licencia con vínculos a referencias de la licencia individual o de la excepción de licencia.

Las solicitudes que contengan una expresión de licencia no válida generarán una respuesta HTTP 404.

Excepciones de licencia

Solicitar

Los identificadores de excepción de licencia deben estar codificados con dirección URL y usarse como ruta de acceso en la solicitud para licenses.nuget.org. Solo se puede proporcionar un único identificador de excepción de licencia en una única solicitud. En la parte de la ruta de acceso de la dirección URL no puede haber ningún carácter adicional, aparte del identificador de excepción de licencia.

Identificador de excepción de licencia Dirección URL que se debe usar
FLTK-exception https://licenses.nuget.org/FLTK-exception
openvpn-openssl-exception https://licenses.nuget.org/openvpn-openssl-exception

Respuesta

Para responder a una solicitud con un identificador de excepción de licencia conocido, licenses.nuget.org envía una respuesta HTTP 200 y una página web que contiene el texto de referencia para la excepción de licencia especificada.

Todas las solicitudes que contengan un identificador de excepción de licencia no admitido producirán una respuesta HTTP 404.