Mantis
Mantis — свободно распространяемая система отслеживания ошибок в программных продуктах (bugtracker). Обеспечивает взаимодействие разработчиков с пользователями, позволяет пользователям заводить сообщения об ошибках и отслеживать дальнейший процесс работы над ними со стороны разработчиков.
Система имеет гибкие возможности конфигурирования, что позволяет настраивать её не только для работы над программными продуктами, но и в качестве системы учёта заявок для helpdesk.
[[#ref_{{{1}}}|↑]] Может также упоминаться (и с некоторыми оговорками использоватся) как:
- «система учета заданий»
- «система контроля дел»
- «система регистрации инцидентов»
- «система управления требованиями» и т. п.
Система построена по принципу «клиент-сервер», поэтому не требует для работы установки специального ПО и работает через веб-браузер.
Преимущества и возможности[править | править код]
Некоторые преимущества Mantis:
- Бесплатная система;
- Легкость инсталляции;
- Веб-интерфейс и платформонезависимость;
- Многоязычность;
- Интеграция с почтовой системой;
- Поиск;
- Система фильтров/запросов;
- Настраиваемость/расширяемость (ядро, модули, кастомизация);
Принципы интерфейса[править | править код]
- Быстрый доступ к основным сценариям использования;
- Простая навигация;
- Сложные функции доступны, но не «нагружают интерфейс»;
- «Резиновая верстка» веб-интерфейса: адаптируется к размеру окна броузера;
- Минимум графики и ненужных «бантиков».
- Нет фреймов, анимации и Javascript.
Формат версий системы[править | править код]
Версии Mantis нумеруются в распространенном формате «major.minor.micro» (например 0.15.8), где
- Major
- Нумеруют значительные изменения в ядре системы.
- Minor
- Добавление нового функционала или значительные правки старого.
- Micro
- Исправления багов или добавление очень мелких «фич».
В данный момент мы используем версию 1.0.6.
Основные понятия[править | править код]
Ключевым понятием системы (как и во всех системах-трекерах) является вопрос («Issue») — некоторое задание, вопрос, запрос, обращение, рекламация по поводу ошибки в системе, или просто сообщение, требующее обратной связи, и назначение системы — регистрация и предоставление заинтересованным лицам целостной информации о состоянии этого «вопроса», включая интерфейсы редактирования, запроса и поиска, механизмы почтового и RSS-оповещений.
Сущность «Вопрос» имеет набор атрибутов, работа с которыми — редактирование и запросы — является основными сценариями использования Mantis.
Опишем эти атрибуты.
Атрибуты вопроса[править | править код]
«Инициатор» («Reporter»)[править | править код]
Кто создал/поставил вопрос. Теоретически поле редактируемое, но злоупотреблять редактированием нежелательно (только для исправления ошибки).
«Видимость» («View Status»)[править | править код]
Видимость вопроса («общая» / «ограниченная»). Необходим для обеспечения конфиденциальности серьезных вопросов.
«Категория» («Category»)[править | править код]
Функциональная или организационная часть проекта, к которой относится поставленный вопрос (задавать категорию не обязательно). Близким аналогом «категории» Mantis является «Component» Bugzilla (но не «Category» из Bugzilla).
«Воспроизводимость» («Reproducibility»)[править | править код]
- «всегда» («always»);
- «иногда» («sometimes»);
- «произвольно» ("«random»);
- «не проверялась» («have not tried»);
- «не воспроизводится» («unable to reproduce»);
- «неприменима» («N/A»).
«Состояние» («Status»)[править | править код]
- «новый»(«new»)
- новый вопрос;
- «нужен отклик» («feedback»)
- требуется дополнительная информация, инициаторам вопроса нужно проявить внимание.
- «рассмотрен» («acknowledged»)
- с вопросом ознакомились, но подтверждения (бага) еще не было, ответственный не назначен.
- «подтвержден» («confirmed»)
- confirmed and reproducible (typically set by an Updater or other Developer)
- «назначен» («assigned»)
- вопрос назначен разработчику;
- «отработан» («resolved»)
- вопрос вроде решен (баг вроде зафиксен или по крайней мере сделан патч), ожидается подтверждение что все хорошо;
- «закрыт» («closed»)
- Вопрос закрыт.
«Серьезность» («Severity»)[править | править код]
- «блокада» («block»)
- блокирует большую часть работы в проекте;
- «авария» («crash»)
- приводит к «падению» приложения (или даже операционной системы);
- «большая» («major»)
- баг, важность большая;
- «малая» («minor»)
- баг, но малая важность;
- «неудобство» («tweak»)
- неудобство в использовании — нужна «подгонка»;
- «текст/опечатка» («text»)
- небольшая текстовая ошибка/опечатка;
- «тривиальная» («trivial»)
- мелкие придирки;
- «новведение» («feature»)
- запрос нового функционала.
«Платформа» («Platform»)[править | править код]
«Операционная система» («OS»)[править | править код]
«Версия ОС» («OS Version»)[править | править код]
«Трудоемкость» («Projection»)[править | править код]
«Примерный срок» («ETA»)[править | править код]
«Сборка продукта» («Product Build»)[править | править код]
«Настраиваемые поля» («Custom Fields»)[править | править код]
Настраиваемые поля — это дополнительные к основным, атрибуты вопроса, которых можно «активировать» в отдельных проектах. Интерфейс заведение и редактирования доступен для администраторов через «Управление/управление настраиваемыми полями» («Manage/manage custom fields»)
Атрибуты настраиваемого поля:
- «Название» («Name»)
- «Тип» («Type»)
- Ограничения
-
- «Допустимые значения» («Possible Values»)
- «Значение по умолчанию» («Default Value»)
- «Регулярное выражение» («Regular Expression»): Если задано, то используется регулярное выражение для валидации вводимого значения. Например, проверка на целое число: «/^-?([0-9])*$/».
- Ограничения на длину поля
-
- «Наименьшая длина» («Min. Length»):
- «Наибольшая длина» («Max. Length»):
- Значение «0» не проверяется!
- Необходимые права на чтение и запись
-
- «Доступ на чтение» («Read Access»)
- «Доступ на запись» («Write Access»)
- Как и где показывать поле
-
- «Показывать только на расширенных страницах» («Display Only On Advanced Page»);
- «Показывать при создании вопроса» («Display When Reporting Issues»);
- «Показывать при изменении вопроса» («Display When Updating Issues»):;
- «Показывать при отработке» («Display When Resolving Issues»);
- «Показывать при закрытии» («Display When Closing Issues»);
- «Требовать при создании нового вопроса» («Required On Report»);
- «Требовать при изменении» («Required On Update»);
- «Требовать при отработке» («Required On Resolve»);
- «Требовать при закрытии» («Required On Close»).
Типы полей:
- «строка» («string»)
- Текстовая строка длиной до 255 символов
- «e-mail»
- строка email-адреса, до 255 символов длиной. При показе, гиперлинкуется «mailto»-ссылкой.
- «целое» («numeric»)
- «вещественное» («float»)
- «перечисление» («enumeration»)
- Список текстовых строк, разделенный символом «|». Значение по умолчанию, если задано, должно быть среди элементов этого списка. Показывается как выпадающий список.
- «список» («list»)
- Аналогично типу «перечисление», только показывается как список выбора (не выпадающий).
- «список с множественным выбором» («multiselection list»)
- Аналогично типу «список», но можно выбирать несколько элементов списка (или ни один).
- «галочка» («checkbox»)
- Аналогично типу «список с множественным выбором», только вместо несколько значений выбираются с помощью галочек на чекбоксах, а не на списке выбора.
- «Дата» («Date»)
- Дата, показывается в виде выпадающих меню для дня, месяца и года. Значение по умолчанию должно быть в формате «yyyy-mm-dd».
{{{1}}} |
Если вы делаете поле обязательным («Требовать при …»), то лучше убрать галочку с «Показывать только на расширенных страницах», иначе пользователи будут постоянно страдать от ошибок валидации («требуемое поле не заполнено» и т. п.).
Проект[править | править код]
Сущность «Проект» предназначена для тематической группировки вопросов, и регулирования доступа к ним пользователей. Он соответствует, например, программному продукту или просто направлению разработки (или иной деятельности). Аналогом «проекта» Mantis является «Product» Bugzilla.
Интерфейс управления проектами доступен пользователям с достаточными полномочиями (администраторам), по вкладкам «Управление/Управление проектами» («Manage/manage projects»).
Атрибуты проекта следующие:
- «Название проекта» («Project Name»)
- Заметим, может изменяться после создания.
- «Состояние» («Status»)
-
- «разрабатываемый» («development»)
- «выпущенный» («release»)
- «стабильный» («stable»)
- «устаревший» («obsolete»)
- «Активна» («Enabled»)
- Ставить новые вопросы можно только в активный проект. Править и добавлять комментарии можно и в вопросах неактивных проектов.
- «Видимость» («View Status»)
- «общая» («public»): Проекты видны всем пользователям системы.
- «ограниченная» («private»): Такие проекты видны только пользователям выбранным для этого проекта, или имеющим достаточные привилегии («администраторы»), чтобы видеть «private» проекты.
- «Путь для загружаемых файлов» («Upload File Path»)
- Если Mantis настроен, чтобы хранить аттачменты и прочие BLOB-объекты на файловой системе (что предпочтительней, если ожидается, что их размер будет больше 2Mb), то здесь нужно задать относительный (по отношению к инсталляции Mantis) путь к каталогу для загружаемых файлов. Можно держать все файлы в одном каталоге, можно каталог для аттачментов делать свой, для каждого проекта отдельно. Указываемый каталог должен быть создан администратором заранее, и должны быть выданы права на запись и чтение для пользователя, из под которого запущен Mantis.
- «Подробности» («Description»)
- Описание проекта.
Внутри проекта можно заводить:
- Подпроекты: обладают всей атрибутикой обычного проекта, и в общем, речь идет не о «вложении» одного проекта в другой, а об отношении «подчиненности». Например, проект «ERP-Документация» может быть общим подпроектом для нескольких проектов разработки различных ERP-подсистем;
- Категории: функциональное или организационное подразделение проекта. В каждой категории можно указать ответственного пользователя. Близким аналогом «категории» Mantis является «Component» Bugzilla (но не «Category» из Bugzilla).
- Версии: например версии программного продукта. После заведения, для каждого вопроса-бага, можно указывать, в какой версии он возник, а в какой — исправлен.
- «Настраиваемые поля» («Custom Fields») — все вопросы проекта могут обрести дополнительные атрибуты, из заведенных ранее на уровне самой системы. Например, если Mantis используется только как внешняя bug-tracking система, а управление заданиями на разработку в компании ведется в другой системе (Jira, Bugzilla или просто другая инсталляция Mantis), то можно завести атрибут «Task ID», куда прописывать идентификатор задачи из внутренней системы.
Также в проект можно назначить группу пользователей (а если проект «с ограниченной видимостью» — то и нужно),
причем можно индивидуально настроить их права в этом проекте (либо установив их на уровне прав по умолчанию в системе).
Основные страницы веб-интерфейса[править | править код]
«Главная» («Main»)[править | править код]
Название «главная» видимо чисто историческое, раньше это была первая страница, на которую пользователь попадал после логина в систему. На этой страниц публикуются как специфичные для отдельного проекта новости, так и общие для всей системы (См. описание #«изменение новостей» («Edit News»). Количество публикуемых новостей (наиболее свежих) настраивается в системе, остальные новости доступны через интерфейс просмотра архива: ссылка «Архивы» («Archives»).
[[#ref_{{{1}}}|↑]] Разобраться с «RSS».
«Моя сводка» («My View»)[править | править код]
«Список вопросов» («View Issues»)[править | править код]
Основное окно для выбора и просмотра списка (таблицы) вопросов.
Для выбора подмножества вопросов применяются так называемые «Фильтры», являющиеся по сути «QBE»-запросами по всем атрибутам. Можно использовать заранее приготовленные личные или общие хранимые фильтры, либо создать новый фильтр непосредственно на этой странице — интерфейс построения запроса показывается над таблицей вопросов (чтобы показать интерфейс надо нажать на «плюсик» около поля «Поиск:» («Search:»)). Само поле «Поиск:» («Search:») используется для поиска ключевого слова в атрибутах «Суть»/ («Summary»), в описании, в идентификаторе (в комментариях не ищет).
Список выбранных вопросов показывается в виде таблицы, где набор столбцов фиксирован в следующем порядке:
- «P»
- Приоритет
- «Номер» («ID»)
- Числовой идентификатор вопроса. Гиперссылка ведет на страницу просмотра данного вопроса (в простом или расширенном виде, в зависимости от настроек).
- #
- Число комментариев. Причем, если недавно («недавно» настраивается) был добавлен комментарий, число будет выделено жирным шрифтом.
- «Категория» («Category»)
- Категория вопроса.
- #«Серьезность» («Severity»)
- Выделяется жирным если серьезность высока («major», «crash», «block»), а вопрос не решен.
- #«Состояние» («Status»)
- Помимо состояния вопроса, если провести над этим полем мышью, появится всплывающая подсказка с атрибутом #«Решение» («Resolution»).
- «Изменен» («Updated»)
- Дата последнего изменения. Если изменения произошло в период заданный в поле «Изменялись за посл. часов» («Changed(hrs)»), то дата будет выделена жирным.
- «Суть» («Summary»)
- Краткое описание.
«Клик» на шапке каждой колонке приводит к сортировке по данному столбцу, повторный «клик» изменяет направление сортировки. По умолчанию используется сортировка по дате последнего изменения («свежие сначала»). Каждая запись в таблице расцвечена в соответствии со статусом вопроса (цвета настраиваются в конфигурации инсталляции Mantis).
«Создать вопрос» («Report Issue»)[править | править код]
«журнал изменений» («Change Log»)[править | править код]
«статистика» («Summary»)[править | править код]
«документация» («Docs»)[править | править код]
«управление» («Manage»)[править | править код]
«изменение новостей» («Edit News»)[править | править код]
«моя учетная запись» («My Account»)[править | править код]
«Просмотр вопроса» («Viewing Issue»)[править | править код]
Детальный просмотр вопроса.
Простой вид и расширенный вид отличается только набором атрибутов. Так, если переключиться из «простого» в «расширенный вид» (по соответствующей ссылке-вкладке в правом верхнем углу), то будут показаны дополнительные атрибуты, такие как #«Платформа» («Platform»), #«Операционная система» («OS»), #«Версия ОС» («OS Version»), #«Трудоемкость» («Projection»), #«Примерный срок» («ETA»), #«Сборка продукта» («Product Build»). В остальном, поведение форм эквивалентно.
Cсылка «напомнить» («Send a reminder») выводит на форму напоминания о вопросе сотрудникам из проекта: «Указанным адресатам будет отправлено напоминание о желательности реакции на этот вопрос. Они также автоматически войдут в состав тех, кто отслеживает вопрос. Впоследствии адресаты могут отказаться от отслеживания кнопкой 'Не отслеживать'. Текст этого напоминания будет сохранен в вопросе.»
Cсылка «печать» («Print») выводит на «версию для печати» данного запроса:никаких редактируемых полей, виджетов, и вообще «ничего лишнего» — только сверстанный во все окно броузера досье вопроса (включая комментарии и историю).
В принципе, назначения всех полей-атрибутов вопроса понятны (См. #Атрибуты).
Ниже полей атрибутов, расположен набор кнопок-действий:
- «Изменить вопрос» («Update Issue»)
- переход на страницу редактирования всех атрибутов.
- «Назначить» («Assign To»)
- Cмена ответственного за этот вопрос (выбирается из выпадающего списка).
- «Изм.состояние на» («Change Status To»)
- Смена состояния (выбирается из выпадающего списка). После нажатия на эту кнопку появится дополнительное окно ввода комментария («поясняющего» изменение) и дозапроса некоторых атрибутов, например:
- «Номер дубля» («Duplicate ID») — если вопрос закрывается, как дублирующий.
- «Ответственный»(«Assigned to») — если вопрос рассмотрен, и назначается ответственный.
- «Решен в версии» («Fixed in Version») — для решенных вопросов.
- Дополнительные поля, видимые при изменении или решении вопроса.
- «Отслеживать» («Monitor/Unmonitor Issue»)
- слежение за изменениями вопроса с помощью почтовых извещений;
- «Клонировать» («Create Clone»)
- создать копию текущего вопроса. Пользователь направляется на страницу #«Создать вопрос» («Report Issue»), где все поля заполнены аналогично текущему запросу, +преполагается связь с «исходным» вопросом.
- «Повторно открыть» («Reopen Issue»)
- Виден только для закрытых вопросов, предназначен для повторного их открытия.
- «Переместить вопрос» («Move Issue»)
- Перемещения вопроса в другой проект.
- «Удалить вопрос» («Delete Issue»)
- Окончательное удаление вопроса.
{{{1}}} |
Рекомендуется этим никогда не пользоваться, разве что вопрос был условно говоря, «мусорный», (или содержал конфиденциальную информацию, которую нельзя было помещать в систему). Вместо этого надо установить, что вопрос разрешен, и выставить соответствующее решение.
Ниже находится панель «Связи» («Relationships»), отражающая связи вопроса с другими вопросами. Могут быть следующие типы связей:
- «зависит от/блокирует» («parent of/child of»)
- Пользователь будет предупреждаться, при попытке закрыть «родительский» вопрос, если вопросы-"потомки" еще не решены.
- «связан с» («related to»)
- Равноправная информационная связь.
- «дублирует/имеет дубль» («duplicate of/has duplicate»)
- Связывает вопросы-дубликаты.
Далее располагается панель отслеживающих этот вопрос сотрудников.
Еще ниже — форма для загрузки файловых вложений.
Далее — форма ввода комментария и список ранее введенных комментариев.
И завершает страницу история изменений вопроса.
«Изменить вопрос» («Bug Update»)[править | править код]
Аналогично странице #«Просмотр вопроса» («Viewing Issue»), включая «простой» и «расширенный» виды, только здесь все атрибуты вопроса редактируемы, и есть возможность удалять комментарии или ограничивать их видимость.
{{{1}}} |
Однако рекомендуется не злоупотреблять редактированием некоторых атрибутов, например, менять атрибуты
#«Инициатор» («Reporter») и #«Категория» («Category») стоит только если произошла ошибка при заведении вопроса.
Русификация Mantis[править | править код]
Начиная с MySQL 5.0, нужно явно задавать кодировку соединения (utf-8 или cp1251, в зависимости от выбранной русской локализации Mantis). Этот баг уже зарегистрирован http://www.mantisbt.org/bugs/print_bug_page.php?bug_id=6782 , и возможно уже исправлен в последующих версиях, но в версии 1.0.6 (если база под MySQL 5.0), нужно добавить строчку-определение кодировки в функцию db_connect, файла core/database_api.php: <code-php>
$t_result = $g_db->Connect($p_hostname, $p_username, $p_password, $p_database_name ); $g_db->Execute ("SET NAMES utf8");
</code-php> При этом стоит использовать только «Настройки/Язык» из русских языков стоит использовать только «russian_utf8».
Системные требования[править | править код]
Для работы программы требуется:
- веб-сервер (например, Apache, IIS ).
- поддержка языка PHP.
- база данных MySQL.
См. также[править | править код]
Ссылки[править | править код]
По крайней мере часть этого текста взята с ресурса http://lib.custis.ru/ под лицензией GDFL.Список авторов доступен на этом ресурсе в статье под тем же названием.