Поделиться через


Резервирование префикса ИД пакета

Владельцы пакета могут защищать и подтверждать свою личность, резервируя префиксы идентификаторов. Потребители пакета получают дополнительную информацию о том, что в идентифицирующих свойствах используемого ими пакета содержатся соответствующие действительности данные.

На сайте nuget.org и в Visual Studio 2017 версии 15.4 и более поздних для пакетов, которые были отправлены владельцами, зарезервировавшими префикс идентификатора, отображается визуальный индикатор при условии, что пакет соответствует требованиям к именованию зарезервированных префиксов идентификаторов. По приведенной ниже ссылке вы можете узнать больше о последствиях резервирования префикса идентификатора, а также о том, как владелец может применять префикс идентификатора.

Сведения о резервировании префикса идентификатора

При резервировании префикса идентификатора в коллекции на сайте nuget.org и в Visual Studio выполняется ряд действий. Кроме того, функция резервирования префиксов идентификаторов поддерживает некоторые расширенные сценарии, например установку общедоступного префикса или делегирование подмножеств префиксов нескольким владельцам.

Резервирование префикса идентификатора на сайте nuget.org

При резервировании префикса на сайте nuget.org происходит следующее:

  1. Резервирование префикса связывается с владельцем или группой владельцев на сайте nuget.org.

  2. Каждый раз при отправке на сайт nuget.org пакета, идентификатор которого соответствует зарезервированному префиксу идентификатора, такой пакет будет приниматься только в том случае, если он был отправлен владельцем или владельцами, которые зарезервировали соответствующий префикс.

  3. Для любого пакета, который соответствует зарезервированному префиксу идентификатора и отправлен зарезервировавшими его владельцами, в Visual Studio 2017 версии 15.4 и более поздних, а также на сайте nuget.org будет показываться визуальный индикатор, указывающий на то, что пакет соответствует зарезервированному префиксу. Это справедливо при отправке как новых, так и существующих пакетов владельцами. Примечание. Индикатор в Visual Studio появляется только в том случае, если в качестве источника пакетов выбран один веб-канал.

  4. Все ранее существовавшие пакеты, которые соответствуют зарезервированному префиксу идентификатора, но при этом не принадлежат владельцу зарезервированного префикса, останутся без изменений (они не будут исключены из списка, но при этом также не будут сопровождаться визуальным индикатором). Кроме того, владельцы этих пакетов по-прежнему смогут отправлять новые версии пакета.

Эти изменения основываются на следующих условиях и определяют ряд дополнительных ограничений:

  • Визуальный индикатор для пакетов с несколькими владельцами появится даже в том случае, если префикс был зарезервирован всего одним владельцем.

  • Если для пакета с несколькими владельцами один или несколько владельцев зарезервировали префикс, а у одного или нескольких владельцев такого префикса нет, удалять других владельцев с зарезервированным префиксом смогут только те владельцы, у которых есть такой префикс. Владельцы, не имеющие зарезервированного префикса, не могут удалять владельцев с таким префиксом. При этом они могут удалять других владельцев, у которых также нет зарезервированного префикса.

  • Появляющийся визуальный индикатор пакета всегда отображается (таким образом гарантируется, что как минимум один владелец с зарезервированным префиксом будет всегда оставаться владельцем)

Расширенные сценарии резервирования префиксов

Далее описываются некоторые более сложные сценарии резервирования префиксов, в том числе делегирование подмножеств префиксов или назначение общедоступных префиксов. Резервирование префиксов может осуществляться по более сложному сценарию.

  • При резервировании владелец может запросить делегирование подмножеств префиксов (или префикса) другим владельцам. Например, если учетной записи Майкрософт принадлежит префикс Microsoft.*, а учетной записи aspnet требуется зарезервировать префикс Microsoft.AspNet.*, Майкрософт может делегировать префикс Microsoft.AspNet.* учетной записи aspnet.

  • При резервировании владелец также может назначить префикс общедоступным. В этом случае по-прежнему будет отображаться визуальный индикатор, указывающий на отправку пакета владельцем с зарезервированным префиксом, однако при этом не будет блокироваться отправка пакетов с этим префиксом другими владельцами. Такая модель эффективна в проектах с открытым исходным кодом с множеством участников. В этом случае главные или основные участники смогут резервировать префикс, который по-прежнему будет открыт для всех остальных участников.

Визуальный индикатор резервирования префикса

Если пакет отправлен владельцем, зарезервировавшим префикс, в коллекции nuget.org и в Visual Studio 2017 версии 15.4 или более поздней будет отображаться следующий визуальный индикатор:

Коллекция nuget.orgnuget.org Gallery

Visual StudioVisual Studio

Процесс подачи заявки на резервирование префикса идентификатора

  1. Ознакомьтесь с критериями приемлемости для резервирования префикса идентификатора.

  2. Определите префиксы, которые вы хотите зарезервировать, а также при необходимости любые расширенные сценарии резервирования, которые могут потребоваться.

  3. Отправьте по адресу account@nuget.org сообщение, в котором указываются отображаемое имя владельца на сайте nuget.org, а также запрашиваемые зарезервированные префиксы. Если вы делегируете подмножества префиксов нескольким владельцам, в сообщении должны быть указаны отображаемые имена всех владельцев и все подмножества префиксов.

После отправки заявки вы получите уведомление о ее принятии или отклонении (в этом случае будут указаны невыполненные критерии, из-за которых заявка была отклонена). Для подтверждения личности владельца мы можем попросить вас ответить на несколько дополнительных вопросов.

Критерии резервирования префикса идентификатора

При рассмотрении любых заявок на резервирование префикса идентификатора команда сайта NuGet.org оценивает соответствие приведенным ниже критериям. Обратите внимание, что для резервирования префикса не обязательно соблюдение всех критериев, однако если не удается получить достаточные свидетельства их выполнения, заявка может быть отклонена с указанием причин:

  1. Позволяет ли префикс идентификатора пакета надлежащим образом однозначно определить владельца резервирования?

  2. Определяет ли префикс идентификатора пакета общее понятие, которое не может принадлежать отдельному пользователю или организации? Старайтесь не резервировать префиксы идентификаторов короче четырех символов, а также не использовать общеупотребительные и широко известные слова.

  3. Не приведет ли резервирование префикса идентификатора пакета к неоднозначному восприятию, путанице или другим последствиям для участников сообщества?

При публикации пакетов на сайте NuGet.org в зарезервированном префиксе идентификатора необходимо учитывать следующие рекомендации.

  1. Достаточно ли четко и однозначно определены идентифицирующие свойства пакетов, соответствующие префиксу идентификатора пакета (в особенности сведения об авторе пакета)?

  2. Имеет ли пакет лицензию (на основе элемента метаданных license, а НЕ устаревшего элемента licenseUrl)?

  3. Если у пакетов есть значок, использующий элемент метаданных iconUrl, используют ли они и элемент метаданных icon? Удаление iconUrl не требуется, но необходимо использовать встроенные значки.

Ознакомьтесь с полным руководством по оптимальным методам создания пакетов в дополнение к указанным выше аспектам.

Сценарии с участием стороннего поставщика веб-канала

Если сторонний поставщик веб-канала желает реализовать собственную службу для резервирования префиксов, это можно сделать, изменив службу поиска для поставщиков веб-каналов NuGet версии 3. Изменение в службе поиска веб-каналов заключается в добавлении свойства verified. Клиент NuGet не будет поддерживать свойство, добавленное в веб-канале версии 2.

Дополнительные сведения см. в документации по службе поиска API.

Политика разрешения споров, связанных с резервированием префиксов идентификаторов пакетов

Если вы полагаете, что владельцу на сайте NuGet.org зарезервированный префикс идентификатора был назначен с нарушением указанных выше критериев, авторских прав или прав на товарные знаки, отправьте по адресу support@nuget.org сообщение, в котором необходимо указать рассматриваемый префикс идентификатора, его владельца, а также причины, по которым вы хотите оспорить резервирование этого префикса.