Введение в почтовый сервер управления и обработки ошибок

Кроме request@bugs.debian.org, позволяющего получать по электронной почте данные об ошибке и документацию, существует control@bugs.debian.org, позволяющий управлять сообщениями об ошибках.

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

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

Пожалуйста, прочитайте подробности работы с почтовыми серверами и список общих команд, доступных на обоих серверах, в введении в работу сервера запросов на веб-сайте, в файле bug-log-mailserver.txt, либо послав команду help любому из серверов.

Краткое описание почтовых серверов доступно на веб-сайте, в файле bug-mailserver-refcard.txt, или при отправке на сервер команды refcard.

Команды, доступные на почтовом сервере управления

Основные Управление версиями Дублирование Прочее
reassign номер_ошибки пакет [ версия ]

Делает запись о том, что ошибка #номер_ошибки на самом деле относится к пакету пакет. Это может использоваться для задания информации о пакете, если пользователь забыл включить псевдозаголовок, или для изменения сопоставления, сделанного ранее. Никакие уведомления никому не посылаются (за исключением обычной информации об обработке запроса).

Если вы предоставили версию, система отслеживания ошибок отметит, что ошибке подвержена данная версия нового принятого пакета.

Можно назначить ошибку двум пакетам за один раз, введя их названия через запятую. Однако это допустимо, только если ошибка может быть исправлена в любом из двух пакетов. В противном случае необходимо продублировать сообщение об ошибке для другого пакета.

reopen номер_ошибки [ адрес_создателя | = | ! ]

Заново открывает ошибку #номер_ошибки, если она закрыта.

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

Если вы укажете адрес_создателя, создателем будет считаться обладатель этого адреса. Если вы хотите сами считаться создателем заново открытого сообщения об ошибке, вы можете либо указать свой собственный адрес, либо просто поставить !.

Обычно стоит предупредить человека, которого вы собираетесь записать создателем сообщения, что вы заново открываете ошибку, чтобы уведомление, посылаемое при её новом закрытии, не стало для него неожиданностью.

Если ошибка не закрыта, reopen не делает ничего, даже не меняет запись о создателе сообщения. Чтобы поменять создателя открытого сообщения об ошибке, используйте команду submitter. Имейте в виду, что первоначальный отправитель получит сообщение об этом изменении.

Если ошибка была записана как бывшая закрытой в конкретной версии пакета, но вернулась в более поздней версии, то лучше использовать команду found.

found номер_ошибки [ версия ]

Записывает, что ошибка #номер_ошибки была выявлена в данной версии пакета, с которым она связана. Версия может быть полной версией вида пакет_с_исходным_кодом/версия

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

Если версия не указана, тогда список исправленных версий для ошибки очищается. Это идентично поведению команды reopen. Версия может быть полной версией вида пакет_с_исходным_кодом/версия

Эта команда отметит сообщение об ошибке как неисправленное, только если версия не указана, или же отмечена та версия, которая эквивалентна (или выше) самой высокой версии, отмеченной как исправленная. (Если вы уверены в желании отметить ошибку как неисправленную, используйте reopen вместе с found.)

Эта команда была введена в предпочтение к reopen, так как было сложно добавить версию к её командному синтаксису без внесения неясностей.

notfound номер_ошибки версия

Удаляет запись о том, что ошибка #номер_ошибки встречена в указанной версии пакета, которому она была назначена. Версия может быть полной версией вида пакет_с_исходным_кодом/версия

Это отличается от закрытия ошибки для этой версии в том, что ошибка также не будет помечена как исправленная в этой версии; никакой информации об этой версии не будет известно. Она предназначена для исправления ошибок в записи о том, когда ошибка была найдена.

fixed номер_ошибки версия

Показывает, что ошибка #номер_ошибки была исправлена в данной версии пакета, которому она назначена. Версия может быть полной версией вида пакет_с_исходным_кодом/версия

Это не означает, что ошибка будет помечена как закрытая, это лишь добавляет другую версию, в которой ошибка была исправлена. Для того чтобы закрыть ошибку и отметить её исправленной в определённой версии, используйте адрес bugnumber-done.

notfixed номер_ошибки версия

Удаляет запись о том, что ошибка #номер_ошибки была исправлена в данной версии. Версия может быть полной версией вида пакет_с_исходным_кодом/версия

Эта команда эквивалентна командам found и notfound, следующим одна за другой (found удаляет fixed в определённой версии, а notfound удаляет found) с тем исключением, что ошибка не открывается заново, если версия, в которой найдена ошибка, выше, чем любая существующая исправленная версия. Это необходимо для исправления ошибок в записи того, когда ошибка была исправлена; в большинстве случаев вам нужна команда found, а не notfixed.

submitter номер_ошибки адрес_создателя | !

Изменяет запись об отправителе ошибки #номер_ошибки на адрес_создателя.

Если вы хотите сами считаться создателем сообщения об ошибке, вы можете либо указать свой собственный адрес, либо просто поставить !.

В то время как команда reopen изменяет создателей и других ошибок, слитых с той, которая открывается заново, submitter не влияет на слитые ошибки.

forwarded номер_ошибки адрес

Отмечает, что сообщение об ошибке номер_ошибки было отправлено разработчику оригинального пакета по адресу адрес. Она сама не пересылает сообщение. Это может использоваться для исправления существующего неправильного адреса пересылки или для добавления нового к ошибке, которая ранее не была помечена как перенаправленная. В адресе обычно задаётся URI или адрес эл. почты. Использование URI, где это возможно, позволяет инструментам запрашивать удалённую систему отслеживания ошибок (например, bugzilla) о состоянии ошибки.

Пример:

      forwarded 12345 http://bugz.illa.foo/cgi/54321
    
notforwarded номер_ошибки

Убирает все записи о том, что ошибка номер_ошибки была переслана автору оригинального пакета. Если ошибка не помечена как перенаправленная, то не делает ничего.

retitle номер_ошибки новое_название

Изменяет название сообщения об ошибке на заданное (по умолчанию им является содержимое заголовка Subject (тема) первоначального сообщения об ошибке). Также изменит названия всех отчётов об ошибках, с которыми слита эта ошибка.

severity номер_ошибки важность

Устанавливает уровень важности ошибки #номер_ошибки в важность. Пользователю, сообщившему об ошибке, уведомление не посылается.

Допустимые уровни важности: critical, grave, serious, important, normal, minor, wishlist.

Их значение см. в общей документации по системе отслеживания ошибок для разработчика.

affects номер_ошибки [ + | - | = ] пакет [ пакет ... ]

Указывает, что ошибка влияет на другой пакет. В случае, если номер_ошибки вызывает сбой в пакете, хотя ошибка на самом деле находится в пакете, которому она назначена, эта команда приведёт к тому, что ошибка будет отображаться в списке ошибок пакета. Обычно используется, если ошибка достаточно серьёзна, чтобы привести к множеству сообщений от пользователей, направленных не для нужного пакета. = устанавливает affects ("оказывает действие на") на список данных пакетов и является действием по умолчанию, если не указано ни одного пакета; - удаляет данные пакеты из списка affects; + добавляет данные пакеты к списку affects и является действием по умолчанию, если пакеты даны.

summary номер_ошибки [номер_сообщения | текст краткого описания]

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

Если номер_сообщения не указан, то краткое описание удаляется. Номер_сообщения — это номер из списка сообщений, выводящихся cgi-сценарием отчётов об ошибке. Если дан номер-сообщения 0, используется текущее сообщение (то есть сообщение, которое было отправлено по адресу control@bugs.debian.org и которое содержит команду управления кратким содержанием).

Если номер-сообщения не является ни числом, ни пустой строкой, предполагается, что это текст, который следует установить в качестве краткого описания.

outlook номер_ошибки [номер-сообщения | текст перспективы]

Выбирает сообщения для использования в качестве перспективы (outlook) для исправления ошибки (или текущего статуса исправления ошибки). Первый параграф этого сообщения, не являющийся псевдозаголовком/управляющим, анализируется и устанавливается в качестве перспективы этой ошибки, отображающейся вверху страницы с отчётом об ошибке. Это полезно для координации с другими, кто работает над исправлением этой ошибки (например, в рамках bug squashing party).

Если не указан номер-сообщения, то перспектива удаляется. Номер-сообщения — это номер из списка сообщений, выводящихся cgi-сценарием отчётов об ошибке. Если дан номер-сообщения 0, используется текущее сообщение (то есть, сообщение, которое было отправлено по адресу control@bugs.debian.org и которое содержит команду управления перспективой).

Если номер-сообщения не является ни числом, ни пустой строкой, предполагается, что это текст, который следует установить в качестве перспективы.

clone номер_ошибки новый идентификатор [ новые идентификаторы ... ]

Управляющая команда clone позволяет вам продублировать сообщение об ошибке. Это полезно в случае, когда одно сообщение на самом деле относится к нескольким различным ошибкам. Новые идентификаторы — это отрицательные числа, разделённые пробелами, которые могут использоваться в последующих командах управления для ссылки на созданные дубликаты. Для каждого нового идентификатора создаётся новое сообщение.

Пример использования:

          clone 12345 -1 -2
          reassign -1 foo
          retitle -1 foo: foo sucks
          reassign -2 bar
          retitle -2 bar: bar sucks when used with foo
          severity -2 wishlist
          clone 123456 -3
          reassign -3 foo
          retitle -3 foo: foo sucks
          merge -1 -3
    
merge номер_ошибки номер_ошибки ...

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

Перед тем как ошибки можно будет слить, они должны быть в точности в одном и том же состоянии: либо все открыты, либо все закрыты; с одним и тем же адресом пересылки автору, либо не помечены как перенаправленные; все сопоставлены одному и тому же пакету или пакетам (требуется точное соответствие строк с названиями пакетов); все иметь одну и ту же важность. Если вначале они находятся не в одном и том же состоянии, вам следует использовать команды reassign, reopen и т.д. для приведения их в одинаковое состояние перед отправкой команды merge. Названия сообщений не обязаны совпадать и никак не изменяются этой командой. Метки также не обязаны совпадать и будут объединены.

Если какая-либо из ошибок, перечисленных в команде merge, уже слита с другими ошибками, то сливаются все сообщения об ошибках, слитые с любой из перечисленных. Слияние подобно эквивалентности — оно рефлексивно, транзитивно и симметрично.

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

Слитые сообщения устаревают одновременно и только тогда, когда каждое отдельное сообщение будет удовлетворять критериям устаревания.

forcemerge номер_ошибки номер_ошибки ...

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

Нужно учесть, что это делает возможным закрыть ошибку при слиянии; если вы сделаете это, вы несёте ответственность за уведомление людей, предоставивших ошибки, соответствующим сообщением о закрытии.

unmerge номер_ошибки

Отсоединяет сообщение об ошибке от других сообщений, с которыми оно слито. Если указанная ошибка слита с несколькими другими, они остаются слиты друг с другом, удаляется только их связь с указанной ошибкой.

Если слито много сообщений об ошибках и вы хотите разделить их на две группы слитых ошибок, вы должны отсоединить каждое сообщение одной из новых групп по отдельности, и затем слить их в новую группу.

Одной командой unmerge вы можете отсоединить только одно сообщение. Если вы хотите отсоединить несколько ошибок, включите в сообщение несколько команд unmerge.

tags номер_ошибки [ + | - | = ] метка [ метка ... ] [ + | - | = метка ... ]

Устанавливает метки для сообщения об ошибке #номер_ошибки. Пользователю, сообщившему об ошибке, уведомление не отправляется. Если перед меткой стоит символ +, то метка добавляется, метки с - удаляются, а при использовании = метки будут установлены в соответствии с заданным списком независимо от текущего состояния. Промежуточные +, - или = изменяют действия над последующей меткой. По умолчанию метки добавляются.

Пример:

          # то же, что 'tags 123456 + patch'
          tags 123456 patch

          # то же, что 'tags 123456 + help security'
          tags 123456 help security

          # добавить метки 'fixed' и 'pending'
          tags 123456 + fixed pending

          # снять метку 'unreproducible'
          tags 123456 - unreproducible

          # установить метки 'moreinfo' и 'unreproducible' и снять все остальные
          tags 123456 = moreinfo unreproducible

          # снять метку 'moreinfo' и установить метку 'patch'
          tags 123456 - moreinfo + patch
    

Возможные метки: patch, wontfix, moreinfo, unreproducible, help, security, upstream, pending, confirmed, ipv6, lfs, d-i, l10n, newcomer, a11y, ftbfs, fixed-upstream, fixed, fixed-in-experimental, potato, woody, sarge, etch, lenny, squeeze, wheezy, jessie, stretch, buster, bullseye, bookworm, sid, experimental, sarge-ignore, etch-ignore, lenny-ignore, squeeze-ignore, wheezy-ignore, jessie-ignore, stretch-ignore, buster-ignore, bullseye-ignore, bookworm-ignore .

Их значение см. в общей документации по системе отслеживания ошибок для разработчика.

block номер_ошибки by ошибка ...
Пометить, что исправление для первой ошибки блокируется другими перечисленными ошибками.
unblock номер_ошибки by ошибка ...
Пометить, что исправление для первой ошибки больше не блокируется другими перечисленными ошибками.
close номер_ошибки [ исправленная_версия ] (не рекомендуется)

Закрывает сообщение об ошибке #номер_ошибки.

Пользователю, отправившему сообщение об ошибке, посылается уведомление, но (в отличие от отправки сообщения по адресу номер_ошибки-done@bugs.debian.org) в уведомление не включается текст письма, закрывшего ошибку. Сопровождающий, закрывший ошибку, должен убедиться (вероятно, послав отдельное письмо), что сообщивший об ошибке пользователь знает, почему она была закрыта. Поэтому использование этой команды не рекомендуется. См. информацию для разработчиков о том, как правильно закрывать ошибки.

Если вы предоставили исправленную_версию, система отслеживания ошибок отметит, что ошибка была исправлена в данной версии пакета.

package [ имя_пакета ... ]

Последующие команды будут относиться только к ошибкам в указанных пакетах. Можно перечислить несколько пакетов. Если пакеты не указаны, последующие команды будут относиться ко всем ошибкам. Эту возможность следует использовать для страховки от использования неверных номеров ошибок.

Пример:

          package foo
          reassign 123456 bar 1.0-1

          package bar
          retitle 123456 bar: bar sucks
          severity 123456 normal

          package
          severity 234567 wishlist
    
owner номер_ошибки адрес | !

Делает адрес "хозяином" ошибки #номер_ошибки. Хозяин ошибки берёт на себя ответственность за её исправление. Это полезно для распределения обязанностей в команде сопровождающих пакета.

Если вы хотите стать хозяином ошибки сами, можно либо указать ваш собственный электронный адрес, либо использовать сокращение !.

noowner номер_ошибки
Удаляет запись о каком-либо хозяине ошибки помимо основного сопровождающего пакета. Если у ошибки не зафиксирован хозяин, ничего не делает.
archive номер_ошибки
Архивирует ошибку, которая когда-то была заархивирована, но в настоящее время не в архиве, если ошибка удовлетворяет условиям для архивации, игнорируя время.
unarchive номер_ошибки
Разархивирует ошибку, которая ранее была заархивирована. Разархивирование обычно должно быть сделано совместно с reopen и found/fixed, как необходимо. Ошибки, которые были разархивированы, могут быть заархивированы командой archive, принимая во внимание, что соблюдаются условия, не основанные на времени. Вам не следует использовать разархивирование для того, чтобы сделать тривиальные изменения заархивированных ошибок (такие как изменение того, кто подал отчёт об ошибке); главной целью разархивирования является возможность открытия заново ошибок, которые были заархивированы без вмешательства администраторов системы отслеживания ошибок.
#...
Однострочный комментарий. Символ # должен быть в начале строки. Текст комментария будет включён в уведомления отправителю и сопровождающим. Его можно использовать для указания причин ваших действий.
quit
stop
thank
thanks
thankyou
thank you
--
Отдельной строкой, после которой могут быть пробелы, указывает серверу управления прекратить обработку письма. Оставшаяся его часть может включать объяснения, подписи или что-то ещё — она никак не обрабатывается сервером управления.

Другие страницы системы отслеживания ошибок:


Debian BTS administrators <owner@bugs.debian.org>

Debian bug tracking system
Copyright © 1999 Darren O. Benham, 1997, 2003 nCipher Corporation Ltd, 1994-1997 Ian Jackson.