Редактирование: NMU

Перейти к: навигация, поиск

Внимание: Вы работаете как анонимный пользователь. Ваш IP-адрес будет записан в историю изменений этой страницы.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
{{Policy
+
{{DraftPolicy
|responsible=Антон Фарыгин (rider)
+
|responsible=rider@
|since=01.05.2009
+
|discussion_link=http://lists.altlinux.org/pipermail/devel/2009-April/168651.html
 +
|discussion_since=02.04.2009
 
}}
 
}}
__NOTOC__
+
'''NMU''' (Non-Maintainer Upload) — обновление пакета не сопровождающим его.
Версия 1.1.
 
  
'''NMU''' (Non-Maintainer Upload) — обновление пакета не сопровождающим его.
+
'''Следует различать NMU и запрос на добавление в список мейнтейнеров! (acl пакета) '''
  
== Рамки Policy ==
+
После введения сборки из git-репозиториев условия NMU существенно упростились: если ваше изменение простое, то вы просто формируете задание на сборку и даёте на него ссылку мейнтейнерам, которые могут посмотреть и дать подтверждение.  Получив подтверждение, вы отправляете это же задание на повторную сборку. В случае крупных изменений действуют обычные правила NMU.
  
Данное Policy регламентирует взаимоотношения между мейнтейнерами. Для правил выполнения массовых NMU роботами см. [[MassNMU|полиси по массовым NMU]].
+
Помните, что NMU — это акт помощи, мейнтейнер может быть благодарен за неё. При этом ответственность за судьбу пакета несёт мейнтейнер и поэтому он вправе в дальнейших сборках пакета делать то, что сочтёт нужным.
  
В данном Policy регулируются два вопроса:
+
Стоит приложить разумные усилия к тому, чтобы облегчить мейнтейнеру принятие решения — приложением к письму или багрепорту патча, ссылкой на конкретный коммит или репозиторий в git.alt, наконец, доброжелательным отношением.
* Условия выдачи NMU
 
* Технологические требования к NMU
 
 
 
== Условия выдачи NMU ==
 
  
 +
== Условия, требующие подготовки NMU ==
 
NMU выполняется в случае выполнения одного из нижеследующих условий:
 
NMU выполняется в случае выполнения одного из нижеследующих условий:
 +
# Отсутствие реакции мейнтейнера на ошибки с Серьёзностью Critical или Blocker в {{altbug|}} в течение двух недель.
 +
# Наличие проблем с безопасностью или наличие фатальных ошибок в пакете. Представитель security team или администратор репозитария (а так-же любой член команды, на усмотрение администратора репозитария) имеет право сделать NMU немедленно после публикации информации о проблеме с безопасностью в пакете или обнаружения в нём фатальной ошибки. Фатальной считается ошибка, приводящая к неработоспособности существенной части репозитария. Автор NMU в случае экстренного изменения пакета обязан проинформировать мантейнера пакета не позднее, чем данный пакет будет отправлен на сборку в репозитарий.
 +
# Не собираемость пакета в изменённой сборочной среде (например при обновлении gcc, glibc и т. д.) и отсутствии положительной реакции мейнтейнера на сообщение в bugzilla в течении двух недель.
  
# Без предварительного оповещения мейнтейнера NMU может выполняться при подготовке security-исправлений, требующих приватной подготовки согласно Security Policy (до того момента, как Security Policy принята, такими считаются только исправления, для которых организуется Coordinated Release Date (CRD)). В этом случае мейнтейнер должен быть извещён не позднее, чем пакет будет отправлен в репозиторий.
+
== Общие соображения ==
# Отсутствие реакции мейнтейнера на ошибки с серьёзностью [[BugSeverityPolicy|Critical]] в {{altbug}} в течение двух недель.
+
Перед тем, как делать NMU, следует постараться найти контакт с текущим мейнтейнером — обязательно при помощи отчёта об ошибке в {{altbug|}}. Разумеется, никто не запрещает пообщаться с мейнтейнером по электронной почте, IM, телефону или лично, по мере возможности и уместности. Формально, всё общение с мейнтейнером должно быть зафиксировано в bugzilla, для упрощения дальнейшей работы арбитра или конфликтной комиссии, если такая понадобится.
# Отсутствие реакции мейнтейнера на ошибки с серьёзностью [[BugSeverityPolicy|Blocker]] в {{altbug}} в течение 12 часов
 
 
 
=== Общие соображения ===
 
Перед тем, как делать NMU, следует постараться найти контакт с текущим мейнтейнером при помощи отчёта об ошибке в {{altbug|}}. Всё общение с мейнтейнером должно быть зафиксировано в bugzilla для упрощения дальнейшей работы администратора ACL, арбитра или безконфликтной комиссии.
 
  
В случае отсутствия реакции мейнтейнера на ошибку в течении установленного в данном Policy времени следует добавить комментарий к ошибке с запросом на NMU и подготовить обновление.
+
Если в течение срока от суток до двух недель, в зависимости от срочности проблемы (серьёзная с безопасностью или разваливающая существенную часть репозитория, мешающая не единицам пакетов и/или пользователей), положительный ответ в bugzilla не поступил или проблема не исправлена — следует добавить комментарий с запросом на NMU к багам в {{altbug|}} и готовить обновление, если оно ещё не собрано для своих нужд.
  
Одновременно с заливкой NMU рекомендуется указать мейнтейнеру на git с исправлением (если мейнтейнер использует gear) либо приложить к ошибке в {{altbug}} патч.
+
Одновременно с заливкой NMU настойчиво рекомендуется указать мейнтейнеру на git с исправлением (если мейнтейнер использует gear), либо приложить к багам патч (в противном случае).
  
=== Управление доступом ===
+
== Правила подготовки NMU ==
Мейнтейнер предоставляет или изымает возможность NMU на ведомые им пакеты при помощи [[Git.alt/Справочник#acl|git.alt acl]] и [[Git.alt/Справочник#task_approve|git.alt task approve]].
+
* Изменения должны быть минимальными и настолько неинтрузивными, насколько это возможно (не следует «зачищать» спек, передвигать модули или файлы и вообще чинить то, что не сломано — этим следует заниматься мейнтейнерам).
 
 
В случае отсутствия реакции мейнтейнера на запросы по предоставлению доступа, право на NMU предоставляет один из [[ACLAdmin|администраторов ACL]].
 
 
 
== Технологические требования к NMU ==
 
 
 
* Изменения должны быть минимальными и настолько неинтрузивными, насколько это возможно (не следует «зачищать» спек, передвигать модули или файлы, и вообще, чинить то, что не сломано — этим следует заниматься мейнтейнерам).
 
 
* К NMU предъявляются обычные требования попадания пакета в репозиторий (в частности, наследование по коммитам при использовании gear).
 
* К NMU предъявляются обычные требования попадания пакета в репозиторий (в частности, наследование по коммитам при использовании gear).
* Если в spec-файле отсутствует поле <tt>Packager</tt>, то его необходимо добавить и указать в нём мейнтейнера пакета.<ref>Однако, ср. [[ACL#@everybody|текущее поведение acl для заливок через @everybody]]: "Принадлежность пакета при таких заливках не меняется." Т.е. в таком случае на самом деле в нынешней ситуации принадлежность не должна поменяться и при отсутствии поля <tt>Packager</tt>.</ref>
+
* Если в spec-файле отсутствует поле <tt>Packager</tt>, то его необходимо добавить и указать в нём мейнтейнера пакета.
* Changelog пакета должен начинаться с «NMU:». В changelog так же должен быть указан номер ошибки в формате, допускающем [[Changelogs_guide#.D0.90.D0.B2.D1.82.D0.BE.D0.B7.D0.B0.D0.BA.D1.80.D1.8B.D1.82.D0.B8.D0.B5_.D0.B1.D0.B0.D0.B3.D0.BE.D0.B2|автоматическое закрытие ошибок]]. Мейнтейнеру следует сохранить или импортировать эту запись при дальнейшем сопровождении пакета.
+
* Строка в changelog пакета должна содержать слово «NMU», а также ссылки на номера багрепортов. Мейнтейнеру следует сохранить или импортировать эту запись при дальнейшем сопровождении пакета.
  
Не забывайте и Гиппократа: «превыше всего, не навреди». Пусть лучше на пакете будет висеть открытый багрепорт по серьёзной проблеме, чем она будет «разрешена» нерабочим патчем или даже исправлена, но при этом будет сломано ещё что-нибудь.
+
Не забывайте и Гиппократа: «превыше всего, не навреди». Лучше на пакете будет висеть открытый багрепорт по серьёзной проблеме, чем она будет «разрешена» нерабочим патчем или даже исправлена, но сломано ещё что-нибудь.
  
 
=== Версионирование ===
 
=== Версионирование ===
Если исправление можно сделать в рамках той же upstream-версии пакета, что находится в репозитории, то в значение тэга Release пакета необходимо добавить дополнительное число, отделённое точкой и по нумерации начинающееся с единицы, чтобы не пересечься с обычной нумерацией версий и релизов у основного мейнтейнера.
+
Если исправление можно сделать в рамках той же upstream-версии пакета, что находится в репозитории, то в версию (релиз) необходимо добавить дополнительное число, отделённое точкой и по нумерации начинающееся с единицы, чтобы не пересечься с нормальной нумерацией версий у основного мейнтейнера.
 
 
Например, пакет, собранный ранее мейнтейнером с релизом <tt>alt3</tt> и автоматически пересобранный ранее QA Team Robot с релизом <tt>alt3.1</tt>, при NMU должен получить релиз <tt>alt3.1.1</tt>.
 
 
 
Если для исправления необходимо обновление версии в репозитории, то NMU выполняется с изменением версии программы и установкой релиза пакета в <tt>alt1</tt>.
 
 
 
Также, во избежание появления в релизе расчесок вида <tt>alt3.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1</tt>
 
допускаются суффиксы вида <tt>alt<M>{,.n}</tt>, где <M> релиз выставленный мантейнером, а n -- цифра инкрементируемая при NMU.
 
 
 
Также, как исключение, сборки в рамках @qa team могут иметь суффикс <tt>alt<M>{,.qaN}</tt>,
 
где <M> релиз выставленный мантейнером, а N -- цифра, инкрементируемая при NMU.
 
  
== Дополнительная информация ==
+
Таким образом, пакет, собранный мейнтейнером с релизом <tt>alt3</tt> и автоматически пересобранный QA Team Robot с релизом <tt>alt3.1</tt> при NMU должен получить релиз <tt>alt3.1.1</tt>.
  
''Эта секция не является нормативной''
+
Если для исправления необходимо обновление версии в репозитории, то NMU выполняется с нормальной нумерацией.
  
NMU и запрос на добавление в список мейнтейнеров — это разные вещи. Если вам хочется принять участие в поддержке пакета — обратитесь к мейнтейнеру и попросите его добавить вас в ACL пакета или группу. Если мейнтейнер не отзывается — имеет смысл [[ACLPolicy|забрать пакет себе]].
+
== Управление доступом ==
 +
Мейнтейнер предоставляет или изымает возможность NMU на ведомые им пакеты при помощи [[Git.alt/Справочник#Управление ACL пакетов|git.alt]].
  
После введения в строй сборки из git-репозиториев стала доступной следующая простая форма реализации NMU:
+
В случае отсутствия реакции мейнтейнера на запросы по предоставлению доступа, право на NMU предоставляет один из администраторов репозитория.
вы формируете обычное задание на сборку и даёте на него ссылку мейнтейнерам, которые могут её посмотреть и дать подтверждение.
 
Получив подтверждение, вы просто отправляете это же задание на повторную сборку.
 
 
 
Помните, что NMU — это акт помощи, мейнтейнер может быть благодарен за неё. При этом ответственность за судьбу пакета несёт мейнтейнер, и поэтому он вправе в дальнейших сборках пакета делать то, что сочтёт нужным.
 
 
 
Стоит приложить разумные усилия к тому, чтобы облегчить мейнтейнеру принятие решения — приложением к письму или багрепорту патча, ссылкой на конкретный коммит или репозиторий в git.alt, наконец, доброжелательным отношением.
 
  
 
== Ссылки ==
 
== Ссылки ==
* [[BugSeverityPolicy|Уровни серьёзности ошибок]]
+
* [http://www.debian.org/doc/developers-reference/ch-pkgs.en.html#s-nmu Debian NMU Policy]
* [[ACL|Общая информация об ACL]]
 
* [[Git.alt/Справочник#.D0.A3.D0.BF.D1.80.D0.B0.D0.B2.D0.BB.D0.B5.D0.BD.D0.B8.D0.B5_ACL_.D0.BF.D0.B0.D0.BA.D0.B5.D1.82.D0.BE.D0.B2|Справочник по управлению ACL в git.alt]]
 
 
 
== Примечания ==
 
<references />
 
  
 
[[Категория:Sisyphus]]
 
[[Категория:Sisyphus]]

Обратите внимание, что все добавления и изменения текста статьи рассматриваются, как выпущенные на условиях лицензии CC-BY-SA-3.0.

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Вики-разметка
Заголовки: 1-го: == ==, 2-го: === ===, 3-го: ==== ==== уровня.
Быстрая вставка: «» | [[]] [[|]] {{}} {{|}} [[Категория:]] [[altbug:]] <source lang=""></source> <pre></pre> <!-- -->.
Определения: {{man|}} {{lists|}} {{cmd|}} {{path|}} {{prg|}} {{pkg|}} {{term|}} {{span||}} {{altbug|}}
Выделение: ''italics'', '''bold''', <tt>моноширинный</tt>, <code>код</code>.
Списки: * ненумерованный список, ** вложенный список, # нумерованный список, ## вложенный нумерованный список, *# вложенный смешанный список, ;список :определений.
Verbatim: Пробел в начале строки или <pre>Явный тэг</pre>
Ссылки: [http://www.altlinux.ru/ внешние], [[Main Page|внутренние]], [http://altlinux.ru], [[Main Page]]
Шаблоны: {{Crap}} {{D}} {{Policy}} {{DraftPolicy}} {{Merge|}} {{Улучшение}} {{Тимовец|}}

Шаблоны, используемые на этой странице: