Reservierung für Paket-ID-Präfixe

Paketbesitzer können ihre Identität schützen, indem sie ID-Präfixe reservieren. Paketnutzer erhalten zusätzliche Informationen, wenn die von ihnen genutzten Pakete bezüglich deren identifizierenden Eigenschaften nicht irreführend sind.

Auf nuget.org und in Visual Studio 2017 Version 15.4 oder höher wird für ein Paket eine Meldung angezeigt, dessen Besitzer mit einem reservierten Paket-ID-Präfix arbeitet, solange das Paket dem Namensmuster für reservierte ID-Präfixe entspricht. Im Verlauf dieses Artikels wird beschrieben, welche Aspekte bei der ID-Präfixreservierung zu beachten sind und wie ein Besitzer einen ID-Präfix anfordern kann.

Details zur ID-Präfixreservierung

Wenn ein Paket-ID-Präfix reserviert ist, hat das unterschiedliche Folgen im nuget.org-Katalog und in Visual Studio. Die ID-Präfixreservierung unterstützt auch fortgeschrittenere Szenarios, z. B. das Festlegen eines Präfixes auf „public“ (öffentlich) oder das Delegieren von Präfixteilmengen für mehrere Besitzer.

ID-Präfixreservierung auf nuget.org

Wenn ein Präfix auf nuget.org reserviert wird, geschieht Folgendes:

  1. Eine Präfixreservierung wird einem oder mehreren Besitzern auf nuget.org zugeordnet.

  2. Jedes Mal, wenn ein Paket auf nuget.org mit einer ID veröffentlicht wird, die mit dem reservierten ID-Präfix übereinstimmt, wird das Paket abgelehnt, es sei denn, es wird von den Besitzer veröffentlicht, die das ID-Präfix reserviert haben.

  3. Jedes Paket, das mit dem reservierten ID-Präfix übereinstimmt und von den Besitzern veröffentlicht wird, die das ID-Präfix reserviert haben, werden in Visual Studio 2017 Version 15.4 und höher und auf nuget.org Meldungen angezeigt. Dies gilt sowohl für neue als auch bereits vorhandene Pakete des Besitzers oder der Besitzer. Hinweis: Die Meldung in Visual Studio wird nur angezeigt, wenn ein einzelner Feed als Paketquelle ausgewählt wurde.

  4. Alle vorherigen vorhandenen Pakete, die mit dem reservierten ID-Präfix übereinstimmen aber nicht im Besitz des Besitzers des reservierten Präfixes sind, bleiben unverändert (sie werden nicht aus der Auflistung entfernt, aber es wird auch keine Meldung angezeigt). Außerdem können Besitzer dieser Pakete weiterhin neue Paketversionen veröffentlichen.

Diese Änderungen basieren auf den folgenden Bedingungen und führen zu einigen weiteren Einschränkungen:

  • Bei Paketen mit mehreren Besitzer muss nur einer der Besitzer ein reserviertes Präfix haben, damit für das Paket eine Meldung angezeigt markiert.

  • Wenn es mehrere Paketbesitzer gibt und einer oder mehrere Besitzer ein reserviertes Präfix haben und einer oder mehrere Besitzer kein reserviertes Präfix haben, können nur die Besitzer mit den reservierten Präfixen andere Besitzer mit reservierten Präfixen entfernen. Die Besitzer ohne reserviertes Präfix können keine Besitzer mit reserviertem Präfix entfernen. Sie können aber Besitzer ohne reserviertes Präfix entfernen.

  • Wenn für ein Paket eine Meldung angezeigt wird, sollte dies auch weiterhin geschehen. So wird sichergestellt, dass mindestens ein Besitzer mit dem reservierten Präfix auch weiterhin Besitzer bleibt.

Komplexe Präfixreservierungsszenarios

Es gibt einige weitere komplexere Präfixreservierungsszenarios, die im weiteren Verlauf beschrieben werden, z. B. die Delegierung von Subpräfixen und das Festlegen öffentlicher Präfixe. Im Folgenden sind komplexere Präfixreservierungen aufgelistet.

  • Bei der Präfixreservierung kann der Besitzer die Delegierung von Präfixteilmengen (oder des Präfixes) an andere Besitzer anfordern. Beispiel: Wenn Microsoft „Microsoft.*“ besitzt, aber aspnet „Microsoft.AspNet.*“ reservieren möchte, kann Microsoft festlegen, dass „Microsoft.AspNet.*“ an das Konto aspnet delegiert wird.

  • Bei der Präfixreservierung kann der Besitzer ein Präfix öffentlich machen. Dadurch wird weiterhin die Meldung angezeigt, dass das Paket ursprünglich ein reserviertes Präfix hat, aber zukünftige Paketveröffentlichungen mit dem Präfix durch einen beliebigen Besitzer werden nicht blockiert. Das ist besonders bei Open-Source-Projekten mit vielen Beitragenden nützlich – die primären oder Hauptbeiträger können das Präfix reservieren, aber es können dennoch alle Mitwirkenden etwas beitragen.

Meldung für reservierte Präfixe

Wenn ein Paket ein reserviertes Präfix aufweist, wird die unten gezeigte Meldung im nuget.org-Katalog und in Visual Studio 2017 Version 15.4 und höher angezeigt:

nuget.org Galerienuget.org Gallery

Visual StudioVisual Studio

Anforderungsprozess für eine ID-Präfixreservierung

  1. Sehen Sie sich die Anforderungskriterien für eine ID-Präfixreservierung an.

  2. Bestimmen Sie die Präfixe, die Sie reservieren möchten, sowie komplexere Präfixreservierungsszenarios, die Sie benötigen.

  3. Senden Sie eine E-Mail an account@nuget.org mit dem Anzeigenamen des Besitzers auf nuget.org sowie mit den angeforderten reservierten Präfixen. Wenn Sie Präfixteilmengen an mehrere Besitzer delegieren, achten Sie darauf, dass Sie die Anzeigenamen aller Besitzer und die Präfixteilmengen nennen.

Nachdem die Anforderung eingereicht wurde, werden Sie informiert, ob diese angenommen oder angelehnt wurde (ggf. mit den Gründen für die Ablehnung). Es kann sein, dass Sie zusätzliche Fragen beantworten müssen, um Ihre Identität zu klären.

Kriterien für die ID-Präfixreservierung

Bei der Überprüfung auf ID-Präfixreservierungen prüft das NuGet.org-Team die Anforderung anhand der unten aufgeführten Kriterien. Beachten Sie, dass nicht alle Kriterien erfüllt sein müssen, damit ein Präfix reserviert wird. Eine Anforderung kann aber abgelehnt werden, wenn nicht eindeutig nachgewiesen werden kann, dass ein Kriterium erfüllt wird (mit einer entsprechenden Erklärung):

  1. Identifiziert das Paket-ID-Präfix den Reservierungsbesitzer eindeutig und ordnungsgemäß?

  2. Ist das Paket-ID-Präfix zu allgemein, als dass es einem einzelnen Besitzer oder einer Organisation zugeordnet werden kann? Vermeiden Sie ID-Präfixreservierungen, die kürzer sind als vier Zeichen, und vermeiden Sie allgemeine oder generische Wörter.

  3. Wenn das Paket-ID-Präfix nicht reserviert würde, würde dies zu Mehrdeutigkeit, Verwirrung oder anderweitigen Nachteilen in der Community führen?

Wenn Sie im Rahmen Ihrer ID-Präfixreservierung Pakete in NuGet.org veröffentlichen, beachten Sie die folgenden Best Practices:

  1. Sind die identifizierenden Eigenschaften der Pakete, die mit dem Paket-ID-Präfix übereinstimmen, eindeutig und konsistent (insbesondere der Paketersteller)?

  2. Haben die Pakete eine Lizenz (durch das Metadatenelement license angegeben, nicht durch das veraltete licenseUrl)?

  3. Wenn die Pakete über ein Symbol verfügen (mit dem Metadatenelement „iconUrl“), verwenden sie dann auch das Metadatenelement icon? Es ist nicht erforderlich, die iconUrl zu entfernen, aber eingebettete Symbole müssen verwendet werden.

Lesen Sie zusätzlich zu den oben genannten Punkten den Leitfaden mit bewährten Methoden für die Paketerstellung.

Szenarios mit externen Feedanbietern

Wenn ein Drittanbieter für Feeds an der Implementierung eines eigenen Diensts zur Bereitstellung von Präfixreservierungen interessiert ist, kann er dies tun, indem er den Suchdienst in den NuGet v3-Feedanbieter ändert. Die Änderung im Feedsuchdienst besteht darin, die Eigenschaft verified hinzuzufügen. Der NuGet-Client unterstützt die hinzugefügte Eigenschaft nicht im v2-Feed.

Weitere Informationen finden Sie in der Dokumentation zum Suchdienst der API.

Anfechtungsrichtlinie für die Reservierung von Paket-ID-Präfixen

Wenn Sie der Meinung sind, dass einem Besitzer auf NuGet.org ein Paket-ID-Präfix zugewiesen wurde, das die aufgelisteten Kriterien nicht erfüllt oder gegen eingetragene Markenzeichen oder Copyrights verstößt, senden Sie eine E-Mail mit dem betreffenden ID-Präfix, dem Besitzer des ID-Präfixes und dem Grund für die Anfechtung der Zuweisung dieser Präfixreservierung an support@nuget.org.