NMU: различия между версиями
м (absurdofied) |
Нет описания правки |
||
Строка 10: | Строка 10: | ||
Данное Policy регламентирует взаимоотношения между мейнтейнерами. Для правил выполнения массовых NMU роботами см. [[MassNMU|полиси по массовым NMU]]. | Данное Policy регламентирует взаимоотношения между мейнтейнерами. Для правил выполнения массовых NMU роботами см. [[MassNMU|полиси по массовым NMU]]. | ||
== Условия | В данном Policy регулируются два вопроса: | ||
* Условия выдачи NMU | |||
* Технологические требования к NMU | |||
== Условия выдачи NMU == | |||
NMU выполняется в случае выполнения одного из нижеследующих условий: | NMU выполняется в случае выполнения одного из нижеследующих условий: | ||
Строка 17: | Строка 22: | ||
# Отсутствие реакции мейнтейнера на ошибки с серьёзностью [[BugSeverityPolicy|Blocker]] в {{altbug}} в течение 12 часов | # Отсутствие реакции мейнтейнера на ошибки с серьёзностью [[BugSeverityPolicy|Blocker]] в {{altbug}} в течение 12 часов | ||
== Общие соображения == | === Общие соображения === | ||
Перед тем, как делать NMU, следует постараться найти контакт с текущим мейнтейнером при помощи отчёта об ошибке в {{altbug|}}. Всё общение с мейнтейнером должно быть зафиксировано в bugzilla для упрощения дальнейшей работы администратора ACL, арбитра или безконфликтной комиссии. | Перед тем, как делать NMU, следует постараться найти контакт с текущим мейнтейнером при помощи отчёта об ошибке в {{altbug|}}. Всё общение с мейнтейнером должно быть зафиксировано в bugzilla для упрощения дальнейшей работы администратора ACL, арбитра или безконфликтной комиссии. | ||
Строка 24: | Строка 29: | ||
Одновременно с заливкой NMU рекомендуется указать мейнтейнеру на git с исправлением (если мейнтейнер использует gear) либо приложить к ошибке в {{altbug}} патч. | Одновременно с заливкой NMU рекомендуется указать мейнтейнеру на git с исправлением (если мейнтейнер использует gear) либо приложить к ошибке в {{altbug}} патч. | ||
== | === Управление доступом === | ||
Мейнтейнер предоставляет или изымает возможность NMU на ведомые им пакеты при помощи [[Git.alt/Справочник#Управление ACL пакетов|git.alt]]. | |||
В случае отсутствия реакции мейнтейнера на запросы по предоставлению доступа, право на NMU предоставляет один из [[ACLAdmin|администраторов ACL]]. | |||
== Технологические требования к NMU == | |||
* Изменения должны быть минимальными и настолько неинтрузивными, насколько это возможно (не следует «зачищать» спек, передвигать модули или файлы, и вообще, чинить то, что не сломано — этим следует заниматься мейнтейнерам). | * Изменения должны быть минимальными и настолько неинтрузивными, насколько это возможно (не следует «зачищать» спек, передвигать модули или файлы, и вообще, чинить то, что не сломано — этим следует заниматься мейнтейнерам). | ||
* К NMU предъявляются обычные требования попадания пакета в репозиторий (в частности, наследование по коммитам при использовании gear). | * К NMU предъявляются обычные требования попадания пакета в репозиторий (в частности, наследование по коммитам при использовании gear). | ||
Строка 38: | Строка 49: | ||
Если для исправления необходимо обновление версии в репозитории, то NMU выполняется с изменением версии программы и установкой релиза пакета в <tt>alt1</tt>. | Если для исправления необходимо обновление версии в репозитории, то NMU выполняется с изменением версии программы и установкой релиза пакета в <tt>alt1</tt>. | ||
== Дополнительная информация == | == Дополнительная информация == |
Версия от 15:46, 2 мая 2009
NMU (Non-Maintainer Upload) — обновление пакета не сопровождающим его.
Рамки Policy
Данное Policy регламентирует взаимоотношения между мейнтейнерами. Для правил выполнения массовых NMU роботами см. полиси по массовым NMU.
В данном Policy регулируются два вопроса:
- Условия выдачи NMU
- Технологические требования к NMU
Условия выдачи NMU
NMU выполняется в случае выполнения одного из нижеследующих условий:
- Без предварительного оповещения мейнтейнера NMU может выполняться при подготовке security-исправлений, требующих приватной подготовки согласно Security Policy (до того момента, как Security Policy принята, такими считаются только исправления, для которых организуется Coordinated Release Date (CRD)). В этом случае мейнтейнер должен быть извещён не позднее, чем пакет будет отправлен в репозиторий.
- Отсутствие реакции мейнтейнера на ошибки с серьёзностью Critical в bugzilla.altlinux.org в течение двух недель.
- Отсутствие реакции мейнтейнера на ошибки с серьёзностью Blocker в bugzilla.altlinux.org в течение 12 часов
Общие соображения
Перед тем, как делать NMU, следует постараться найти контакт с текущим мейнтейнером при помощи отчёта об ошибке в bugzilla.altlinux.org. Всё общение с мейнтейнером должно быть зафиксировано в bugzilla для упрощения дальнейшей работы администратора ACL, арбитра или безконфликтной комиссии.
В случае отсутствия реакции мейнтейнера на ошибку в течении установленного в данном Policy времени следует добавить комментарий к ошибке с запросом на NMU и подготовить обновление.
Одновременно с заливкой NMU рекомендуется указать мейнтейнеру на git с исправлением (если мейнтейнер использует gear) либо приложить к ошибке в bugzilla.altlinux.org патч.
Управление доступом
Мейнтейнер предоставляет или изымает возможность NMU на ведомые им пакеты при помощи git.alt.
В случае отсутствия реакции мейнтейнера на запросы по предоставлению доступа, право на NMU предоставляет один из администраторов ACL.
Технологические требования к NMU
- Изменения должны быть минимальными и настолько неинтрузивными, насколько это возможно (не следует «зачищать» спек, передвигать модули или файлы, и вообще, чинить то, что не сломано — этим следует заниматься мейнтейнерам).
- К NMU предъявляются обычные требования попадания пакета в репозиторий (в частности, наследование по коммитам при использовании gear).
- Если в spec-файле отсутствует поле Packager, то его необходимо добавить и указать в нём мейнтейнера пакета.
- Changelog пакета должен начинаться с «NMU:». В changelog так же должен быть указан номер ошибки в формате, допускающем автоматическое закрытие ошибок. Мейнтейнеру следует сохранить или импортировать эту запись при дальнейшем сопровождении пакета.
Не забывайте и Гиппократа: «превыше всего, не навреди». Пусть лучше на пакете будет висеть открытый багрепорт по серьёзной проблеме, чем она будет «разрешена» нерабочим патчем или даже исправлена, но при этом будет сломано ещё что-нибудь.
Версионирование
Если исправление можно сделать в рамках той же upstream-версии пакета, что находится в репозитории, то в значение тэга Release пакета необходимо добавить дополнительное число, отделённое точкой и по нумерации начинающееся с единицы, чтобы не пересечься с обычной нумерацией версий и релизов у основного мейнтейнера.
Например, пакет, собранный ранее мейнтейнером с релизом alt3 и автоматически пересобранный ранее QA Team Robot с релизом alt3.1, при NMU должен получить релиз alt3.1.1.
Если для исправления необходимо обновление версии в репозитории, то NMU выполняется с изменением версии программы и установкой релиза пакета в alt1.
Дополнительная информация
Эта секция не является нормативной
NMU и запрос на добавление в список мейнтейнеров — это разные вещи. Если вам хочется принять участие в поддержке пакета — обратитесь к мейнтейнеру и попросите его добавить вас в ACL пакета или группу. Если мейнтейнер не отзывается — имеет смысл забрать пакет себе.
После введения в строй сборки из git-репозиториев стала доступной следующая простая форма реализации NMU: вы формируете обычное задание на сборку и даёте на него ссылку мейнтейнерам, которые могут её посмотреть и дать подтверждение. Получив подтверждение, вы просто отправляете это же задание на повторную сборку.
Помните, что NMU — это акт помощи, мейнтейнер может быть благодарен за неё. При этом ответственность за судьбу пакета несёт мейнтейнер, и поэтому он вправе в дальнейших сборках пакета делать то, что сочтёт нужным.
Стоит приложить разумные усилия к тому, чтобы облегчить мейнтейнеру принятие решения — приложением к письму или багрепорту патча, ссылкой на конкретный коммит или репозиторий в git.alt, наконец, доброжелательным отношением.