BugTracking/BugzillaMiniHowto — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(Import from freesource.info)
 
м (Заведение нового бага: уточнения про security group и summary)
 
(не показано 30 промежуточных версий 8 участников)
Строка 1: Строка 1:
{{MovedFromFreesourceInfo|AltLinux/BugTracking/BugzillaMiniHowto}}
 
 
 
== ALT Linux Bugzilla mini-HOWTO ==
 
== ALT Linux Bugzilla mini-HOWTO ==
  
''Как театр начинает с вешалки, так и багзилла начинается с регистрации. Конечно же, всегда есть возможность зайти в театр, поглазеть на афиши идущих в этом сезоне спектаклей (поиск существующих багов в багзиле) , но тогда пропадает самое главное достоинство -- интерактивность происходящего. Напомню, что речь идет о театре, находящемся по адресу [https://bugzilla.altlinux.org/ https://bugzilla.altlinux.org/] Внешний вид театра классический. Конечно, это не греческий амфитеатр, но в то же время сделан по образу и подобию многих таких же построек.''
+
''Как театр начинает с вешалки, так и багзилла начинается с регистрации. Конечно же, всегда есть возможность зайти в театр, поглазеть на афиши идущих в этом сезоне спектаклей (поиск существующих багов в багзиле), но тогда пропадает самое главное достоинство интерактивность происходящего. Напомню, что речь идет о театре, находящемся по адресу [https://bugzilla.altlinux.org/ bugzilla.altlinux.org] Внешний вид театра классический. Конечно, это не греческий амфитеатр, но в то же время сделан по образу и подобию многих таких же построек.''
  
Скажу сразу, что вдаваться в подробности устройства театра "Глюкозавр" (c) pilot@ я не собираюсь, и рассказывать, что происходит за сценой -- у меня цели тоже нет. Моя задача провести вас в зал, дать так сказать, контрамарку $)
+
Скажу сразу, что вдаваться в подробности устройства театра «Глюкозавр» (c) pilot@ я не собираюсь, и рассказывать, что происходит за сценой у меня цели тоже нет. Моя задача провести вас в зал — дать, так сказать, контрамарку $)
  
Итак, коллективный дух взял верх или желание иметь отклик от систем перебороло лень.  
+
Итак, коллективный дух взял верх или желание иметь отклик от систем перебороло лень.
  
''' Регистрация '''
+
=== Регистрация ===
  
Для тех, кто уже имеет постоянный именной абонемент, этот абзац скорее всего будет не интересен, и я предлагаю пропустить его, дабы не тратить драгоценное время. Остальным же сообщаю, что для регистрации в Bugzilla на главной странице присутствует линк с гордым именем <tt>Регистрация</tt>/<tt>New Account</tt> (самая нижняя строка, вторая справа ссылка слева от <tt>Вход в систему</tt>/<tt>Login</tt>). Все что нужно указать на появившейся странице по ссылке -- это только реальный email (первое поле). Ну а дальше система вышлет на зарегистрированный электронный адрес письмо, в котором будет содержаться пароль. Пароль можно будет поменять при первом входе в систему (<tt>Команды: Параметры</tt>/<tt>Actions: Preferences</tt>).
+
Для тех, кто уже имеет постоянный именной абонемент, этот абзац скорее всего будет неинтересен, и я предлагаю пропустить его, дабы не тратить драгоценное время. Остальным же сообщаю, что для регистрации в Bugzilla на главной странице присутствует линк с гордым именем <tt>Регистрация</tt>/<tt>New Account</tt> (самая нижняя строка, вторая справа ссылка слева от <tt>Вход в систему</tt>/<tt>Login</tt>). Все, что нужно указать на появившейся странице по ссылке это только реальный email (первое поле). Ну а дальше система вышлет на зарегистрированный электронный адрес письмо, в котором будет содержаться пароль. Пароль можно будет поменять при первом входе в систему (<tt>Команды: Параметры</tt>/<tt>Actions: Preferences</tt>).
  
 
Получив доступ в систему, можем смело действовать.
 
Получив доступ в систему, можем смело действовать.
  
''' Поиск существующих ошибок '''
+
=== Поиск существующих ошибок ===
  
 
Итак, поищем описание проблемы среди имеющихся (регистрации не требует):
 
Итак, поищем описание проблемы среди имеющихся (регистрации не требует):
Строка 21: Строка 19:
 
* в появившейся форме выбираем продукт, например <tt>Sisyphus</tt>;
 
* в появившейся форме выбираем продукт, например <tt>Sisyphus</tt>;
 
* в поле <tt>Компонент</tt>/<tt>Component</tt> вводим название пакета, для которого ищем проблему (здесь тоже действует автодополнение);
 
* в поле <tt>Компонент</tt>/<tt>Component</tt> вводим название пакета, для которого ищем проблему (здесь тоже действует автодополнение);
* в принципе на этом можно остановиться и нажать кнопку <tt>Поиск</tt>/<tt>Search</tt>. В этом случае мы получим полный список известных проблем для заданного пакета (компонента). Можно сузить список найденных проблем, задав определенный статус (<tt>UNCONFIRMED</tt> -- неподтвержденный, <tt>NEW</tt> -- новый, <tt>RESOLVED</tt> -- (раз)решенный, <tt>CLOSED</tt> -- закрытый, <tt>REOPENED</tt> -- открытый повторно и т.д.). Это, несомненно, сократит количество найденных багов.
+
* в принципе на этом можно остановиться и нажать кнопку <tt>Поиск</tt>/<tt>Search</tt>. В этом случае мы получим полный список известных проблем для заданного пакета (компонента). Можно сузить список найденных проблем, задав определённый статус:
* каждая страничка багрепорта похожа по своей структуре на плоский тред форума. Т.е. внутри может быть беседа одного, двух или более лиц по существу поставленной проблемы. Также там могут находится патчи и возможные (временные) исправления проблемы или предложения разработчику (имеются в виду не поздравления с днем рождения или другими праздниками, и не предложения утопиться в ближайшем пруду, а желание реализовать ту или иную недостающую функциональность).
+
** <tt>UNCONFIRMED</tt> неподтвержденный,
* если при попытке открыть багрепорт получаем <tt>Access Denied. You are not authorized to access bug #nnnn.</tt> -- скорее всего, проблема или имеет отношение к безопасности и до сих пор не публична, или помечена как таковая по ошибке.
+
** <tt>NEW</tt> новый,
 +
** <tt>RESOLVED</tt> (раз)решённый,
 +
** <tt>CLOSED</tt> закрытый,
 +
** <tt>REOPENED</tt> открытый повторно,
 +
и т. д. Это, несомненно, сократит количество найденных багов.
 +
* каждая страничка багрепорта похожа по своей структуре на плоский тред форума. То есть внутри может быть беседа одного, двух или более лиц по существу поставленной проблемы. Также там могут находится патчи и возможные (временные) исправления проблемы или предложения разработчику (имеются в виду не поздравления с днем рождения или другими праздниками, и не предложения утопиться в ближайшем пруду, а желание реализовать ту или иную недостающую функциональность).
 +
* если при попытке открыть багрепорт получаем <tt>Access Denied. You are not authorized to access bug #nnnn.</tt> скорее всего, проблема или имеет отношение к безопасности и до сих пор не публична, или помечена как таковая по ошибке.
 +
 
 +
Если в списке найденных ошибок в разумный срок не нашлось то, чего нам нужно или о чем мы хотим поделиться с майнтейнером пакета — значит, нам нужно завести новую запись об ошибке.
 +
 
 +
=== Поиск ошибки по номеру ===
 +
 
 +
Еще одна разновидность поиска — по номеру ошибки. Допустим, вам пришло уведомление от глюкоробота или же где-то на просторах интернета вы встретили упомнинание вида «#6629» со смысловым смещением (указанием) в сторону багзилы. В этом случае достаточно ввести «магические цифры» (номер ошибки, 6629 в нашем примере) в поле в шапке или подвале страницы поле рядом с кнопкой <tt>Поиск</tt>/<tt>Search</tt> и нажать оную. Система сразу же переместит вас на страницу с описанием ошибки (если такая зарегистрирована).
  
Если в списке найденных ошибок в разумный срок не нашлось то, чего нам нужно или о чем мы хотим поделиться с майнтейнером пакета -- значит, нам нужно завести новую запись об ошибке.
+
Как вариант, можно вбить руками адрес <tt>bugzilla.altlinux.org/nnnn</tt>.
  
''' Поиск ошибки по номеру '''
+
=== Поиск с помощью packages.altlinux.org ===
  
Еще одна разновидность поиска, поиск по номеру ошибки. Допустим вам пришло уведомление от глюко-робота, или же где-то на просторах интернета вы встретили упомнинание вида "#6629", со смысловым смещением (указанием) в стороную багзилы. В этом случае, достаточно ввести "магические цифры" (номер ошибки, 6629 в нашем примере) в поле в шапке или подвале страницы поле рядом с кнопкой <tt>Поиск</tt>/<tt>Search</tt> и нажать оную. Система сразу же переместит вас на страницу с описанием ошибки (если такая зарегистрирована).
+
На сайте [http://packages.altlinux.org/ru packages.altlinux.org] находите пакет, на который вы хотите повесить отчёт об ошибке, например, [http://packages.altlinux.org/ru/Sisyphus/srpms/kde5-krusader kde5-krusader] -- и щёлкаете по заголовку '''[https://packages.altlinux.org/ru/Sisyphus/srpms/kde5-krusader/bugs Bugs and FR]'''; в результате попадаете на страницу, где отмечены все ошибки (баги) и пожелания, "повешенные" на данный пакет.
  
''' Заведение нового бага '''
+
=== Заведение нового бага ===
  
* жмем кнопку <tt>Зарегистрировать ошибку</tt>/<tt>New bug</tt>
+
* Жмём кнопку <tt>Зарегистрировать ошибку</tt>/<tt>New bug</tt>
* если логин (email)/пароль введены еще не были, система спросит их и предложит выбрать раздел - вешаем ли мы баг на дистрибутивы, в нестабильную ветку или на неправильно работающий web-сайт ALT Linux. После этого выберем "продукт", на который вешаем баг. Под продуктом подразумеваются конкретная часть системы, как-то дистрибутив, Sisyphus, документация, переводы. Определившись, на что именно вешаем багу -- выбираем нужный продукт. В некоторых разделах этот шаг отсутствует
+
* Если логин (email)/пароль введены ещё не были, система спросит их и предложит выбрать раздел вешаем ли мы баг на дистрибутивы, в нестабильную ветку или на неправильно работающий web-сайт ALT Linux. После этого выберем «продукт», на который вешаем баг. Под продуктом подразумеваются конкретная часть системы, как-то дистрибутив, Sisyphus, документация, переводы. Определившись, на что именно вешаем багу выбираем нужный продукт. В некоторых разделах этот шаг отсутствует.
* Дальше заполняем поле <tt>Комопонент</tt>/<tt>Component</tt> (пакет, на который мы вешаем багу или конкретный web-сайт). Если компонентов в данном продукте мало - там будет выпадающий список, если много - поле ввода с автодополнением.
+
* Дальше заполняем поле <tt>Компонент</tt>/<tt>Component</tt> (пакет, на который мы вешаем багу, или конкретный web-сайт). Если компонентов в данном продукте мало там будет выпадающий список, если много поле ввода с автодополнением.
* Следующее поле (<tt>Платформа</tt>/<tt>Platform</tt>) можно оставить без изменений, если только ваша ошибка не проявляется исключительно на 64-битной системе или на системе с процессорами ARM или [[BugTracking/PowerPC|PowerPC]].
+
* Следующее поле (<tt>Платформа</tt>/<tt>Platform</tt>) можно оставить без изменений, если только ваша ошибка не проявляется исключительно на 64-битной системе или на системе с процессорами ARM или PowerPC.
* А вот поле <tt>Severity</tt> имеет глубинный смысл, значение которого хранит в себе сурьезность заводимого сообщения об ошибке. Если сомневаетесь -- оставьте <tt>Normal</tt>.
+
* А вот поле <tt>Severity</tt> имеет [[Bug Severity Policy|глубинный смысл]], ведь это сурьёзность заводимого сообщения об ошибке. Если сомневаетесь оставьте <tt>Normal</tt>.
** <tt>blocker</tt> -- наиболее чреватые проблемами ошибки, включая серьёзные проблемы безопасности или функциональности;
+
** <tt>blocker</tt> наиболее чреватые проблемами ошибки, включая серьёзные проблемы безопасности или функциональности;
** <tt>critical</tt> -- критичные для функционирования пакета;
+
** <tt>critical</tt> критичные для функционирования пакета;
** <tt>major</tt> -- выдающиеся относительно обычных;
+
** <tt>major</tt> выдающиеся относительно обычных;
** <tt>normal</tt> -- "обычные" (умолчание);
+
** <tt>normal</tt> — «обычные» (умолчание);
** <tt>minor</tt> -- незначительные, но тем не менее;
+
** <tt>minor</tt> незначительные, но тем не менее;
** <tt>trivial</tt> -- тривиальные в исправлении (например, опечатки в описании пакета или меню);
+
** <tt>trivial</tt> тривиальные в исправлении (например, опечатки в описании пакета или меню);
** <tt>enhancement</tt> -- не сообщение об ошибке, а предложение по улучшению.
+
** <tt>enhancement</tt> не сообщение об ошибке, а предложение по улучшению.
* Если ошибка касается безопасности -- есть отдельная галочка <tt>Security group</tt> (злоупотреблять не стоит -- баг можно направить в эту группу только при его открытии, а снять пометку могут только члены этой группы).
+
* Если ошибка касается безопасности и предоставляемая информация имеет чувствительный характер — есть отдельная галочка <tt>Security group</tt> (злоупотреблять не стоит баг можно направить в эту группу только при его открытии, а снять пометку могут только члены этой группы; баги с пометками видят только члены сразу всех групп, на которые проставлены пометки).
* Заполняем поле <tt>Краткое описание</tt>/<tt>Summary</tt>. В этом поле можно в двух-трех-десяти словах (одним предложением) описать суть проблемы, чтобы легче было искать и ориентироваться другим пользователям глюкозавра. Принцип "краткость -- сестра таланта" здесь действует как никогда.
+
* Заполняем поле <tt>Суть</tt>/<tt>Summary</tt>. В этом поле можно в двух-трех-десяти словах (одним предложением) описать суть проблемы, чтобы легче было искать и ориентироваться другим пользователям глюкозавра. '''Принцип «краткость — сестра таланта» здесь действует как никогда.'''
* поле <tt>Подробное описание</tt>/<tt>Description</tt> подразумевает полное (детальное) описание проблемы.
+
* Поле <tt>Подробное описание</tt>/<tt>Description</tt> подразумевает полное (детальное) описание проблемы.
* Если все поля заполнены верно, то жмем кнопку <tt>Сохранить</tt>/<tt>Commit</tt>.
+
* Если все поля заполнены верно, то жмём кнопку <tt>Сохранить</tt>/<tt>Commit</tt>.
  
Скорее всего ошибка будет добавлена в базу и майнтейнер пакета будет уведомлен по электронной почте о неисправности в его пакете.
+
Скорее всего, ошибка будет добавлена в базу и майнтейнер пакета будет уведомлен по электронной почте о неисправности в его пакете.
  
К существующему описанию ошибки можно добавить коментарий или прикрепить файл (патч, описание, пример). Майнтейнер в состоянии изменить статус ошибки (по мере необходимости или завершенности) или перенаправить ее другому майнтейнеру. Пользователь может переоткрыть ошибку (изменить статус на <tt>REOPEN</tt>) в случае, если ошибка осталась или проявилась в новой версии или несколько версий спустя.
+
К существующему описанию ошибки можно добавить комментарий или прикрепить файл (патч, описание, пример). Майнтейнер в состоянии изменить статус ошибки (по мере необходимости или завершённости) или перенаправить её другому майнтейнеру. Пользователь может переоткрыть ошибку (изменить статус на <tt>REOPEN</tt>) в случае, если ошибка осталась или проявилась в новой версии или несколько версий спустя.
  
Информация о дальнейшей активности в рамках описанной или подписанной (полем <tt>Исполнитель</tt>/<tt>Assign to</tt> можно переложить ответственность на другого разработчика; для дополнения списка уведомляемых есть <tt>Подписка</tt>/<tt>Cc:</tt>) ошибки будет сваливаться на указанный при регистрации электронный адрес. Под активностью подразумевается изменение статуса ошибки, коментарии других пользователей, добавление патчей или текстовых файлов и т.д. (к слову, все это вы можете настроить по своему вкусу). Кого добавлять в список Сс: можно узнать, например, из Changelog пакета (например, если маинтейнером пакета является некая packaging team, то стОит добавить в Сс: несколько человек из нее). Но при этом указывать в поле Сс: нужно по формату <login@altlinux.org> (.ru не примется).
+
Информация о дальнейшей активности в рамках описанной или подписанной (полем <tt>Исполнитель</tt>/<tt>Assign to</tt> можно переложить ответственность на другого разработчика; для дополнения списка уведомляемых есть <tt>Подписка</tt>/<tt>Cc:</tt>) ошибки будет сваливаться на указанный при регистрации электронный адрес. Под активностью подразумевается изменение статуса ошибки, комментарии других пользователей, добавление патчей или текстовых файлов и т. д. (к слову, все это вы можете настроить по своему вкусу). Кого добавлять в список Сс: — можно узнать, например, из Changelog пакета (например, если маинтейнером пакета является некая packaging team, то стоит добавить в Сс: несколько человек из неё); автоматически добавляются указанные в [[ACL]] пакета. При этом указывать в поле Сс: следует в формате <tt><login@altlinux.org></tt>.
  
'''Закрытие бага'''
+
=== Закрытие бага ===
  
Майнтейнер пакета может исправить (или не исправить) ошибку и изменить ее статус на <tt>RESOLVED</tt> (исправлена), при этом указывается способ исправления (resolution) ошибки:
+
Майнтейнер пакета может исправить (или не исправить) ошибку и изменить её статус на <tt>RESOLVED</tt> (исправлена), при этом указывается способ исправления (resolution) ошибки:
* <tt>FIXED</tt> -- ошибка исправлена, как правило, исправлением исходных кодов или spec-файла.
+
* <tt>FIXED</tt> ошибка исправлена, как правило, исправлением исходных кодов или spec-файла.
* <tt>NOTABUG</tt> -- майнтейнер считает, что сообщение об ошибке некорректно (например, если это не баг, а фича).
+
* <tt>NOTABUG</tt> майнтейнер считает, что сообщение об ошибке некорректно (например, если это не баг, а фича).
* <tt>WONTFIX</tt> -- майнтейнер признал наличие ошибки, но по каким-то причинам не собирается ее исправлять.
+
* <tt>WONTFIX</tt> майнтейнер признал наличие ошибки, но по каким-то причинам не может или не собирается ее исправлять.  Также применяется для случаев, когда действительная ошибка осталась на пакете, который более не поддерживается в Sisyphus и по факту отсутствует в репозитории.
* <tt>DUPLICATE</tt> -- сообщение об ошибке является копией другой ранее внесенной в базу ошибки, майнтейнер должен указать ее номер.
+
* <tt>DUPLICATE</tt> сообщение об ошибке дублирует другую ранее внесенную в базу кляузу, майнтейнер должен указать ее номер.
* <tt>WORKSFORME</tt> -- майнтейнер не может воспроизвести ошибку и просит у пользователя дополнительную информацию.
+
* <tt>WORKSFORME</tt> майнтейнер не может воспроизвести ошибку и просит у пользователя дополнительную информацию.
Если исправление ошибки удовлетворило пользователя (например, он скачал обновленную версию пакета и убедился в исправлении), пользователь должен изменить статус ошибки на <tt>CLOSED</tt> (закрыта). Если исправление не удовлетворило пользователя, он может переоткрыть ошибку, изменив статус на <tt>REOPEN</tt>.
+
Если исправление ошибки удовлетворило пользователя (например, он скачал обновлённую версию пакета и убедился в исправлении), пользователь должен изменить статус ошибки на <tt>CLOSED</tt> (закрыта). Если исправление не удовлетворило пользователя, он может переоткрыть ошибку, изменив статус на <tt>REOPEN</tt> (см. тж. чуть ниже).
  
К сожалению, пользователю трудно обнаруживать исправленные (<tt>FIXED</tt>), но не закрытые (<tt>CLOSED</tt>) ошибки, поскольку такие ошибки не обнаруживаются стандартным поиском "My bugs". Для обнаружения таких ошибок рекомендуется воспользоваться поиском по ошибкам, имеющим статус <tt>FIXED</tt>, или использовать гиперссылку в письме, которую вы получите после изменения майнтейнером статуса ошибки на <tt>FIXED</tt>.
+
К сожалению, пользователю трудно обнаруживать исправленные (<tt>FIXED</tt>), но не закрытые (<tt>CLOSED</tt>) ошибки, поскольку такие ошибки не обнаруживаются стандартным поиском «My bugs». Для обнаружения таких ошибок рекомендуется воспользоваться поиском по ошибкам, имеющим статус <tt>FIXED</tt>, или использовать гиперссылку в письме, которую вы получите после изменения майнтейнером статуса ошибки на <tt>FIXED</tt>.
  
 
Не вполне, но местами всё же применимый [https://bugzilla.redhat.com/bugzilla/page.cgi?id=bug_status.html CV баги].
 
Не вполне, но местами всё же применимый [https://bugzilla.redhat.com/bugzilla/page.cgi?id=bug_status.html CV баги].
  
''И напоследок, старайтесь пользоваться театром, не причиняя вреда и неудобства другим зрителям или актерам. Актер должен чувствовать себя комфортно на сцене, а зритель -- в зале. Чем больше полезной информации донесет зритель до актера, тем больше вероятности, что актер осчастливит зрителя свой блестящей игрой $)''
+
''И напоследок, старайтесь пользоваться театром, не причиняя вреда и неудобства другим зрителям или актёрам. Актёр должен чувствовать себя комфортно на сцене, а зритель в зале. Чем больше полезной информации донесёт зритель до актёра, тем больше вероятности, что актёр осчастливит зрителя свой блестящей игрой $)''
  
В частности, если у вас проблема с каким-то пакетом, а не "вообще" - указывайте его версию.
+
В частности, если у вас проблема с каким-то пакетом, а не «вообще» — указывайте его версию.
  
И ещё - не вешайте баги "отсутствует перевод" или "ошибка в переводе", особенно если заметно что проблема в консерватории (ну то есть в дирекции театра :)). В этом случае лучше сделать перевод и прислать его разработчикам программы. Мантейнерам хватает забот, и не все они переводчики.
+
И ещё не вешайте баги «отсутствует перевод» или «ошибка в переводе», особенно если заметно что проблема в консерватории (ну то есть в дирекции театра :)). В этом случае лучше сделать или поправить перевод и прислать его разработчикам программы. Мантейнерам хватает забот, и не все они переводчики.
 +
 
 +
=== Переоткрыть или повесить новый? ===
 +
 
 +
[https://bugzilla.altlinux.org/show_bug.cgi?id=5771#c35 > Переоткрою. Чуть-чуть бы доделать.]
 +
 
 +
Не надо так делать — у каждой хорошей баги должны быть чёткие начало, формулировка и конец. Когда начинаются бесконечные самоуточняющиеся портянки, незаметно растёт наклад времени на их разбор и «diff» для выяснения, что ж там ещё; теряют точность ссылки на багу в %changelog (или же приходится сопоставлять и время); многих подобное подвигает в сторону «забить».
 +
 
 +
Проверено на случае, где «портянки» дошли до клинических и в итоге пришлось писать внутренний регламент.
 +
 
 +
Есть отдельная проблема — есть отдельная бага.
  
 
=== Полезности ===
 
=== Полезности ===
Строка 82: Строка 102:
 
'''Закладка на панели, по клику на которую спрашивается номер бага для открытия.'''
 
'''Закладка на панели, по клику на которую спрашивается номер бага для открытия.'''
  
Добавьте в букмарки (в папку "toolbar") такую ссылку:
+
Добавьте в букмарки (в папку «toolbar») такую ссылку (в одну строчку):
<pre>javascript:q = "" + (window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : document.selection.createRange().text); if (!q) q = prompt("You didn't select any text.  Enter altbug id:", ""); if (q!=null) location=("https://bugzilla.altlinux.org/"+q); void 0</pre>
+
<source lang="java">
 +
javascript:q = "" + (window.getSelection ? window.getSelection() :  
 +
document.getSelection ? document.getSelection() :  
 +
document.selection.createRange().text);  
 +
if (!q) q = prompt("You didn't select any text.  Enter altbug id:", "");  
 +
if (q!=null) location=("https://bugzilla.altlinux.org/"+q); void 0
 +
</source>
  
 
==== Firefox/Mozilla Internet Keyword ====
 
==== Firefox/Mozilla Internet Keyword ====
  
'''Переход к багу с номером NNN при вбивании в строку адреса altbug NNN'''
+
''Переход к багу с номером NNN при вбивании в строку адреса altbug NNN либо всем багам пакета ABC по altbug ABC''
  
 
Добавьте закладку со следующими параметрами:
 
Добавьте закладку со следующими параметрами:
  
Имя (Name): любое
+
* Имя (Name): <tt>ALT Linux Bugzilla</tt>
Адрес (Location): http://bugzilla.altlinux.org/%s
+
* Адрес (Location): <tt><nowiki>https://bugzilla.altlinux.org/%s</nowiki></tt>
Краткое имя (Keyword): altbug
+
* Краткое имя (Keyword): <tt>altbug</tt>
 +
 
 +
Может также пригодиться расширение [https://addons.mozilla.org/en-US/firefox/addon/8703 URL Alias], рекомендуемое [http://lists.altlinux.org/pipermail/sisyphus/2009-June/340044.html legion@].
  
 
==== Opera Search Engine ====
 
==== Opera Search Engine ====
  
'''Переход к багу с номером NNN при вбивании в строку адреса altbug NNN'''
+
''Переход к багу с номером NNN при вбивании в строку адреса altbug NNN''
  
Добавьте Search Engine (Tools -> Preferences -> Search -> Add) со следующими параметрами:
+
Добавьте Search Engine {{nav|Tools|Preferences|Search|Add}} со следующими параметрами:
  
Имя (Name): ALT Linux Bugzilla
+
* Имя (Name): <tt>ALT Linux Bugzilla</tt>
Краткое имя (Keyword): altbug
+
* Краткое имя (Keyword): <tt>altbug</tt>
Адрес (Address): http://bugzilla.altlinux.org/%s
+
* Адрес (Address): <tt><nowiki>https://bugzilla.altlinux.org/%s</nowiki></tt>
  
 
==== Opera Search Field ====
 
==== Opera Search Field ====
  
'''Поле ввода типа "google search" для перехода к багу по номеру'''
+
''Поле ввода типа «google search» для перехода к багу по номеру''
  
Добавьте Search Engine, созданный на предыдущем шаге, на любую панель инструментов: (Right Click) -> Customize -> Buttons -> Search. Перетащите "ALT Linux Bugzilla" в нужное вам место на панели инструментов.
+
Добавьте Search Engine, созданный на предыдущем шаге, на любую панель инструментов: {{nav|(Right Click)|Customize|Buttons|Search}}. Перетащите «ALT Linux Bugzilla» в нужное вам место на панели инструментов.
  
 
=== Ссылки ===
 
=== Ссылки ===
 
* [https://bugzilla.altlinux.org/docs/html/using.html Руководство по эксплуатации Bugzilla (en)]
 
* [https://bugzilla.altlinux.org/docs/html/using.html Руководство по эксплуатации Bugzilla (en)]
* [http://lib.custis.ru/index.php/Bugzilla О Bugzilla по-русски]
+
* [http://lib.custis.ru/Bugzilla О Bugzilla по-русски]
* [http://www.developers.org.ua/archives/egorfine/2008/04/03/effective-bug-reports/ Эффективные баг-репорты]
+
* [http://egorfine.com/ru/articles/effective-bugreports/ Эффективные баг-репорты]
* [http://www.linux.com/article.pl?sid=07/03/07/2012225 A dozen tips for testing free software]
+
* [http://www.chiark.greenend.org.uk/~sgtatham/bugs-ru.html Как эффективно сообщать об ошибках] ([http://www.chiark.greenend.org.uk/~sgtatham/bugs.html How to Report Bugs Effectively])
* [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html How to Report Bugs Effectively]
 
 
* [https://bugs.eclipse.org/bugs/bugwritinghelp.html How to Write a Useful Bug Report]
 
* [https://bugs.eclipse.org/bugs/bugwritinghelp.html How to Write a Useful Bug Report]
 
* [http://developer.mozilla.org/en/docs/Bug_writing_guidelines Bug Writing Guidelines]
 
* [http://developer.mozilla.org/en/docs/Bug_writing_guidelines Bug Writing Guidelines]
 +
* [[Файл:New_bug.jpg|[http://www.youtube.com/watch?v=t1TLReSv75o&feature=youtu.be Видеоролик "Создание запроса на улучшение пакета"]] [http://www.youtube.com/watch?v=t1TLReSv75o&feature=youtu.be Видеоролик "Создание запроса на улучшение пакета"]
 +
 +
{{Category navigation|title=HOWTO|category=HOWTO|sortkey={{SUBPAGENAME}}}}
 +
{{Category navigation|title=BugTracking|category=BugTracking|sortkey={{SUBPAGENAME}}}}

Текущая версия на 12:52, 12 июля 2017

ALT Linux Bugzilla mini-HOWTO[править]

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

Скажу сразу, что вдаваться в подробности устройства театра «Глюкозавр» (c) pilot@ я не собираюсь, и рассказывать, что происходит за сценой — у меня цели тоже нет. Моя задача провести вас в зал — дать, так сказать, контрамарку $)

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

Регистрация[править]

Для тех, кто уже имеет постоянный именной абонемент, этот абзац скорее всего будет неинтересен, и я предлагаю пропустить его, дабы не тратить драгоценное время. Остальным же сообщаю, что для регистрации в Bugzilla на главной странице присутствует линк с гордым именем Регистрация/New Account (самая нижняя строка, вторая справа ссылка слева от Вход в систему/Login). Все, что нужно указать на появившейся странице по ссылке — это только реальный email (первое поле). Ну а дальше система вышлет на зарегистрированный электронный адрес письмо, в котором будет содержаться пароль. Пароль можно будет поменять при первом входе в систему (Команды: Параметры/Actions: Preferences).

Получив доступ в систему, можем смело действовать.

Поиск существующих ошибок[править]

Итак, поищем описание проблемы среди имеющихся (регистрации не требует):

  • кликаем по ссылке Поиск/Search внизу страницы;
  • в появившейся форме выбираем продукт, например Sisyphus;
  • в поле Компонент/Component вводим название пакета, для которого ищем проблему (здесь тоже действует автодополнение);
  • в принципе на этом можно остановиться и нажать кнопку Поиск/Search. В этом случае мы получим полный список известных проблем для заданного пакета (компонента). Можно сузить список найденных проблем, задав определённый статус:
    • UNCONFIRMED — неподтвержденный,
    • NEW — новый,
    • RESOLVED — (раз)решённый,
    • CLOSED — закрытый,
    • REOPENED — открытый повторно,

и т. д. Это, несомненно, сократит количество найденных багов.

  • каждая страничка багрепорта похожа по своей структуре на плоский тред форума. То есть внутри может быть беседа одного, двух или более лиц по существу поставленной проблемы. Также там могут находится патчи и возможные (временные) исправления проблемы или предложения разработчику (имеются в виду не поздравления с днем рождения или другими праздниками, и не предложения утопиться в ближайшем пруду, а желание реализовать ту или иную недостающую функциональность).
  • если при попытке открыть багрепорт получаем Access Denied. You are not authorized to access bug #nnnn. — скорее всего, проблема или имеет отношение к безопасности и до сих пор не публична, или помечена как таковая по ошибке.

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

Поиск ошибки по номеру[править]

Еще одна разновидность поиска — по номеру ошибки. Допустим, вам пришло уведомление от глюкоробота или же где-то на просторах интернета вы встретили упомнинание вида «#6629» со смысловым смещением (указанием) в сторону багзилы. В этом случае достаточно ввести «магические цифры» (номер ошибки, 6629 в нашем примере) в поле в шапке или подвале страницы поле рядом с кнопкой Поиск/Search и нажать оную. Система сразу же переместит вас на страницу с описанием ошибки (если такая зарегистрирована).

Как вариант, можно вбить руками адрес bugzilla.altlinux.org/nnnn.

Поиск с помощью packages.altlinux.org[править]

На сайте packages.altlinux.org находите пакет, на который вы хотите повесить отчёт об ошибке, например, kde5-krusader -- и щёлкаете по заголовку Bugs and FR; в результате попадаете на страницу, где отмечены все ошибки (баги) и пожелания, "повешенные" на данный пакет.

Заведение нового бага[править]

  • Жмём кнопку Зарегистрировать ошибку/New bug
  • Если логин (email)/пароль введены ещё не были, система спросит их и предложит выбрать раздел — вешаем ли мы баг на дистрибутивы, в нестабильную ветку или на неправильно работающий web-сайт ALT Linux. После этого выберем «продукт», на который вешаем баг. Под продуктом подразумеваются конкретная часть системы, как-то дистрибутив, Sisyphus, документация, переводы. Определившись, на что именно вешаем багу — выбираем нужный продукт. В некоторых разделах этот шаг отсутствует.
  • Дальше заполняем поле Компонент/Component (пакет, на который мы вешаем багу, или конкретный web-сайт). Если компонентов в данном продукте мало — там будет выпадающий список, если много — поле ввода с автодополнением.
  • Следующее поле (Платформа/Platform) можно оставить без изменений, если только ваша ошибка не проявляется исключительно на 64-битной системе или на системе с процессорами ARM или PowerPC.
  • А вот поле Severity имеет глубинный смысл, ведь это сурьёзность заводимого сообщения об ошибке. Если сомневаетесь — оставьте Normal.
    • blocker — наиболее чреватые проблемами ошибки, включая серьёзные проблемы безопасности или функциональности;
    • critical — критичные для функционирования пакета;
    • major — выдающиеся относительно обычных;
    • normal — «обычные» (умолчание);
    • minor — незначительные, но тем не менее;
    • trivial — тривиальные в исправлении (например, опечатки в описании пакета или меню);
    • enhancement — не сообщение об ошибке, а предложение по улучшению.
  • Если ошибка касается безопасности и предоставляемая информация имеет чувствительный характер — есть отдельная галочка Security group (злоупотреблять не стоит — баг можно направить в эту группу только при его открытии, а снять пометку могут только члены этой группы; баги с пометками видят только члены сразу всех групп, на которые проставлены пометки).
  • Заполняем поле Суть/Summary. В этом поле можно в двух-трех-десяти словах (одним предложением) описать суть проблемы, чтобы легче было искать и ориентироваться другим пользователям глюкозавра. Принцип «краткость — сестра таланта» здесь действует как никогда.
  • Поле Подробное описание/Description подразумевает полное (детальное) описание проблемы.
  • Если все поля заполнены верно, то жмём кнопку Сохранить/Commit.

Скорее всего, ошибка будет добавлена в базу и майнтейнер пакета будет уведомлен по электронной почте о неисправности в его пакете.

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

Информация о дальнейшей активности в рамках описанной или подписанной (полем Исполнитель/Assign to можно переложить ответственность на другого разработчика; для дополнения списка уведомляемых есть Подписка/Cc:) ошибки будет сваливаться на указанный при регистрации электронный адрес. Под активностью подразумевается изменение статуса ошибки, комментарии других пользователей, добавление патчей или текстовых файлов и т. д. (к слову, все это вы можете настроить по своему вкусу). Кого добавлять в список Сс: — можно узнать, например, из Changelog пакета (например, если маинтейнером пакета является некая packaging team, то стоит добавить в Сс: несколько человек из неё); автоматически добавляются указанные в ACL пакета. При этом указывать в поле Сс: следует в формате <login@altlinux.org>.

Закрытие бага[править]

Майнтейнер пакета может исправить (или не исправить) ошибку и изменить её статус на RESOLVED (исправлена), при этом указывается способ исправления (resolution) ошибки:

  • FIXED — ошибка исправлена, как правило, исправлением исходных кодов или spec-файла.
  • NOTABUG — майнтейнер считает, что сообщение об ошибке некорректно (например, если это не баг, а фича).
  • WONTFIX — майнтейнер признал наличие ошибки, но по каким-то причинам не может или не собирается ее исправлять. Также применяется для случаев, когда действительная ошибка осталась на пакете, который более не поддерживается в Sisyphus и по факту отсутствует в репозитории.
  • DUPLICATE — сообщение об ошибке дублирует другую ранее внесенную в базу кляузу, майнтейнер должен указать ее номер.
  • WORKSFORME — майнтейнер не может воспроизвести ошибку и просит у пользователя дополнительную информацию.

Если исправление ошибки удовлетворило пользователя (например, он скачал обновлённую версию пакета и убедился в исправлении), пользователь должен изменить статус ошибки на CLOSED (закрыта). Если исправление не удовлетворило пользователя, он может переоткрыть ошибку, изменив статус на REOPEN (см. тж. чуть ниже).

К сожалению, пользователю трудно обнаруживать исправленные (FIXED), но не закрытые (CLOSED) ошибки, поскольку такие ошибки не обнаруживаются стандартным поиском «My bugs». Для обнаружения таких ошибок рекомендуется воспользоваться поиском по ошибкам, имеющим статус FIXED, или использовать гиперссылку в письме, которую вы получите после изменения майнтейнером статуса ошибки на FIXED.

Не вполне, но местами всё же применимый CV баги.

И напоследок, старайтесь пользоваться театром, не причиняя вреда и неудобства другим зрителям или актёрам. Актёр должен чувствовать себя комфортно на сцене, а зритель — в зале. Чем больше полезной информации донесёт зритель до актёра, тем больше вероятности, что актёр осчастливит зрителя свой блестящей игрой $)

В частности, если у вас проблема с каким-то пакетом, а не «вообще» — указывайте его версию.

И ещё — не вешайте баги «отсутствует перевод» или «ошибка в переводе», особенно если заметно что проблема в консерватории (ну то есть в дирекции театра :)). В этом случае лучше сделать или поправить перевод и прислать его разработчикам программы. Мантейнерам хватает забот, и не все они переводчики.

Переоткрыть или повесить новый?[править]

> Переоткрою. Чуть-чуть бы доделать.

Не надо так делать — у каждой хорошей баги должны быть чёткие начало, формулировка и конец. Когда начинаются бесконечные самоуточняющиеся портянки, незаметно растёт наклад времени на их разбор и «diff» для выяснения, что ж там ещё; теряют точность ссылки на багу в %changelog (или же приходится сопоставлять и время); многих подобное подвигает в сторону «забить».

Проверено на случае, где «портянки» дошли до клинических и в итоге пришлось писать внутренний регламент.

Есть отдельная проблема — есть отдельная бага.

Полезности[править]

Firefox/Mozilla bookmarklet[править]

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

Добавьте в букмарки (в папку «toolbar») такую ссылку (в одну строчку):

javascript:q = "" + (window.getSelection ? window.getSelection() : 
document.getSelection ? document.getSelection() : 
document.selection.createRange().text); 
if (!q) q = prompt("You didn't select any text.  Enter altbug id:", ""); 
if (q!=null) location=("https://bugzilla.altlinux.org/"+q); void 0

Firefox/Mozilla Internet Keyword[править]

Переход к багу с номером NNN при вбивании в строку адреса altbug NNN либо всем багам пакета ABC по altbug ABC

Добавьте закладку со следующими параметрами:

  • Имя (Name): ALT Linux Bugzilla
  • Адрес (Location): https://bugzilla.altlinux.org/%s
  • Краткое имя (Keyword): altbug

Может также пригодиться расширение URL Alias, рекомендуемое legion@.

Opera Search Engine[править]

Переход к багу с номером NNN при вбивании в строку адреса altbug NNN

Добавьте Search Engine Tools ▷ Preferences ▷ Search ▷ Add со следующими параметрами:

  • Имя (Name): ALT Linux Bugzilla
  • Краткое имя (Keyword): altbug
  • Адрес (Address): https://bugzilla.altlinux.org/%s

Opera Search Field[править]

Поле ввода типа «google search» для перехода к багу по номеру

Добавьте Search Engine, созданный на предыдущем шаге, на любую панель инструментов: (Right Click) ▷ Customize ▷ Buttons ▷ Search. Перетащите «ALT Linux Bugzilla» в нужное вам место на панели инструментов.

Ссылки[править]