Partager via


licenses.nuget.org

Rationale

Avec l’introduction des expressions de licence, il est devenu indispensable de disposer d’un service fiable fournissant un texte de référence pour les identificateurs de licence individuels, les identificateurs d’exception ou les expressions de licence. Ce service doit également avoir un schéma d’URL stable non sujet aux liens rompus, ce qui nous permet de l’utiliser de manière sécurisée pour fournir une compatibilité descendante aux anciens clients.

Licenses.nuget.org remplit ce rôle. Nuget.org l’utilise pour fournir la référence au texte de licence pour les packages qui spécifient leur licence à l’aide d’une expression de licence. L’utilisation de nuget pack ou la création d’un package avec d’autres outils clients définit l’élément licenseUrl pour qu’il pointe vers license.nuget.org afin de fournir une compatibilité ascendante avec les anciens clients ne prenant pas en charge l’élément license.

Texte de licence et d’exception

Les informations et les exceptions de licence affichées sur licenses.nuget.org sont copiées à partir du référentiel de données de liste de licences du projet SPDX. Le format d’affichage des informations est très proche du format utilisé par le site web SPDX lui-même, par exemple, voir MIT sur licenses.nuget.org et MIT sur SPDX.org.

Les licences non approuvées par l’Open Source Initiative ou la Free Software Foundation ne sont pas hébergées sur licenses.nuget.org et sont exclues.

Plusieurs styles en plus du texte brut sont utilisés dans l’affichage de la licence. Selon la FAQ sur les données de la liste de licences SPDX, le texte rouge est considéré comme remplaçable et le texte bleu est considéré comme omissible. Pour plus d’informations sur les données de la liste des licences SPDX, consultez leur FAQ et la spécification du modèle de licence SPDX.

Notez que les données sont copiées de SPDX vers licenses.nuget.org par nuget.org à l’instant donné. Si un identificateur de licence est approuvé par l’Open Source Initiative ou la Free Software Foundation, mais qu’il n’apparaît pas sur licenses.nuget.org, veuillez signaler un problème. L’équipe nuget.org travaille pour mettre à jour la validation du chargement du package avec les données les plus récentes de SPDX sur licenses.nuget.org et nuget.org.

Si vous, en tant qu’auteur de package, n’êtes pas satisfaits du texte de licence partagé disponible sur licenses.nuget.org, vous pouvez envisager d’utiliser texte de licence incorporé (<license type="file">) au lieu d’une expression de licence pour votre package NuGet. Cela vous permet de personnaliser entièrement vos termes de contrat de licence et d’inclure du texte personnalisé dans le package.

Protocol

Licenses.nuget.org est destiné à être visualisé par les utilisateurs dans leur navigateur. Aucune réponse lisible par machine n’est fournie. Le protocole HTTPS doit être utilisé et les demandes sont censées être construites d’une certaine manière. Seules les demandes GET sont prises en charge. Il accepte les expressions de licence et les identificateurs d’exception de licence en entrée de la manière spécifiée ci-dessous. Notez que tous les éléments des expressions de licence sont sensibles à la casse. Toute entrée dans le fichier licences.nuget.org l’est donc également.

Expressions de licence

Requête

Les expressions de licence (y compris les cas triviaux où l’expression se compose d’une seule licence) doivent être encodées dans une URL et utilisées comme chemin dans la demande à licences.nuget.org.

Expression de licence URL à utiliser
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+)

Le service prend uniquement en charge les identificateurs de licence et les identificateurs d’exception de licence acceptés par nuget.org. Cela signifie notamment que seuls les identificateurs de licence approuvés par l’Open Source Initiative ou la Free Software Foundation seront acceptés. Toutes les expressions de licence contenant des identificateurs de licence ou d’exception de licence non pris en charge ou non conformes à la syntaxe d’expression de licence sont considérées comme non valides.

Response

Licenses.nuget.org répond aux demandes contenant des expressions de licence valides avec un code d’état HTTP 200 et une page web contenant une description de l’expression de licence :

  • si l’expression de licence fournie contient un identificateur de licence unique, une page web contenant ce texte de référence de licence est retournée ;
  • si l’expression de licence fournie est une expression de licence composite, une page web contenant l’expression de licence avec des liens vers des références à une licence ou une exception de licence est retournée.

Toute demande contenant une expression de licence non valide entraîne une réponse HTTP 404.

Exceptions de licence

Requête

Les identificateurs d’exception de licence doivent être encodés sous forme d’URL et utilisés comme chemin d’accès dans la requête à licenses.nuget.org. Un seul identificateur d’exception de licence peut être fourni par requête unique. Aucun caractère supplémentaire à part l’identificateur d’exception de licence ne peut être présent dans la partie chemin de l’URL.

Identificateur d’exception de licence URL à utiliser
FLTK-exception https://licenses.nuget.org/FLTK-exception
openvpn-openssl-exception https://licenses.nuget.org/openvpn-openssl-exception

Response

Licenses.nuget.org répond à une demande contenant un identificateur d’exception de licence connu avec une réponse HTTP 200 et une page web contenant le texte de référence pour l’exception de licence spécifiée.

Toute demande contenant un identificateur d’exception de licence non pris en charge entraîne une réponse HTTP 404.