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

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

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

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

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

Краткое описание почтовых серверов доступно на www-сайте, в файле 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 номер_ошибки

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

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

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

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

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

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

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

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

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

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

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

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

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

outlook номер_ошибки [номер-сообщения | 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 номер_ошибки номер_ошибки ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Пример:

        # то же, что '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

        # remove the moreinfo tag and add a patch tag
        tags 123456 - moreinfo + patch
  

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

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

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 номер_ошибки
Разархивирует ошибку, которая ранее была заархивирована. Разархивирование должно быть сделано совместно с переоткрытием и найдено/исправлено, если нужно. Ошибки, которые были разархивированы, могут быть заархивированы командой 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.