Использование системы отслеживания ошибок QGIS
Эта статья является кратким руководством по использованию системы отслеживания ошибкок (багтрекера, от англ. bug tracking system) Quantum GIS. В первую очередь она предназначена для пользователей, которые хотят оказать посильную помощь разработчикам и сделать QGIS лучше.
Общие сведения
Багтрекер это система, позволяющая вести учет ошибок, найденных в программном продукте, а также пожеланий пользователей. Quantum GIS использует в качестве багтрекера Redmine — открытую систему управления проектами, написанную на Ruby. Расположен багтрекер по адресу http://hub.qgis.org/.
Просматривать записи в redmine могут все желающие, но для полноценного использования системы необходимо зарегистрироваться. Так как QGIS является одним из проектов OSGeo, для входа в redmine используется OSGeo ID (регистрационная форма).
После получения OSGeo ID открываем страницу http://hub.qgis.org/ и в правом верхнем углу жмем на ссылку «Войти». После ввода своих регистрационных данных мы попадем в систему.
Сначала стоит озаботиться настройкой своей учетной записи: переходим по ссылке «My account» в правом верхнем углу, на открывшейся странице заполняем поля формы:
- Firstname
- Lastname
- Email (на указанную почту будут приходить уведомления)
Здесь же можно указать предпочитаемый язык интерфейса (используется только после авторизации в системе), временную зону и порядок отображения записей. Рекомендуется установить отправку оповещений хотя бы в режим «Only for things I watch or I'm involved in», что позволит оперативно реагировать на изменения и комментарии.
Общение в багтрекере ведется на английском языке.
Сообщаем об ошибке
Итак, в процессе работы обнаружена какая-то ошибка (или нам кажется, что это ошибка). Сначала нужно убедиться, что ошибка воспроизводится:
- пробуем вызвать ошибку на этом же наборе данных
- пробуем вызвать ошибку на другом наборе данных
- иногда причиной ошибок могут быть модули. Поэтому, если активированы какие-либо модули — поочередно отключаем их и пробуем воcпроизвести ошибку
В процессе, по возможности, собираем доступную отладочную информацию, предшествующую возникновению ошибки (отладочные сообщения в консоли, сообщения из окна Message Log в последних версия QGIS). Если есть возможность, лучше проверять на последней версии, так называемый master (он же trunk), или использовать последнюю ночную сборку. Также имеет смысл проверить и последнюю «стабильную версию» (на момент написания статьи это 1.7.3)
Далее, проверяем, а не сообщал ли о ней кто-то еще: открываем в браузере страницу http://hub.qgis.org/projects/quantum-gis/issues и при помощи фильтров пытаемся найти нашу ошибку. Также можно выполнять поиск по ключевым словам http://hub.qgis.org/search/index/
После того, как имеется четкий воспроизводимый пример и тестовый набор данных (если ошибка возникает на каких-то специфических данных) и мы убедились, что этой ошибки в багтрекере нет можно оформлять сообщение:
- авторизуемся в багтрекере при помощи своего OSGeo ID
- переходим к проекту Quantum GIS Desktop
- открываем страницу добавления нового сообщения «New Issue»
- заполняем форму
При заполнении формы нужно обращать внимание на следующие моменты:
- в поле Tracker указывается тип сообщения: ошибка (Bug)
- в поле Subject — короткое и ясное описание ошибки
- Description — развернутое описание ошибки с указанием последовательности действий для воспроизведения, версиями используемого ПО, платформы (ОС) и любой другой полезной информации
- в поле Priority указывается предполагаемая важность ошибки (в последствии может быть изменена администраторами). Сейчас используется такая классификация:
- Low — ошибка не мешающая повседневному использованию QGIS, и, вероятно, легко исправляющаяся
- Normal — значение по умолчанию, применяется к большинству сообщений об ошибках и запросам нового функционала
- High — ошибка оказывающая значительное влияние на удобство использования в некоторых случаях, в то же время не мешающая использовать QGIS для других задач
- Urgent — делает использование QGIS практически невозможным или приводит к потере данных
- Immediate — делает использование QGIS полностью не возможным или приводит к полной потере данных
- Component — здесь указывается подсистема, в которой возникает ошибка
- Affected version — если ошибка возникает в какой-то определенной версии QGIS, стоит указать эту версию (по умолчанию master). Т.к. поле пока не позволяет указывать несколько версий одновременно, указывайте самую старую проверенную версию, а в поле Description перечислите все проверенные
- Target version — здесь указывается к выходу какой, по вашему мнению, версии QGIS данная ошибка должна быть исправлена. Но это не значит, что она обязательно будет исправлена к выходу именно этой версии
- Platform и Platform version — соответственно название и версия используемой ОС
- флаг Patch supplied устанавливается, если вы исправили ошибку самостоятельно и приложили к сообщению патч, исправляющий эту ошибку
- флаг Causes crash or corruption устанавливается, если ошибка приводит к падению QGIS или потере данных
- Assigned to — если вы знаете кто отвечает за данную подсистему, можете указать разработчика в этом поле
- поле Files используется для загрузки дополнительных данных (тестовый набор данных, скриншоты, патчи и т.д.)
Перед отправкой сообщения проверьте форматирование, воспользовавшись кнопкой «Preview».
После отправки сообщения стоит «подписаться» на него, нажав на «Watch». Это позволит вам быть в курсе всех изменений, касающихся данной ошибки. Например, разработчики закрою ошибку или кто-то оставит комментарий, в этих случаях вы получите уведомление на почту.
Избегайте редактирования уже отправленных комментариев за исключением исправления опечаток, во всех остальных случаях лучше добавить еще один комментарий.
Поскольку разработчиков не так уж и много и все они занимаются проектом в свободное время не стоит расчитывать, что ваша ошибка будет сразу же исправлена.
Оставляем пожелание
Если для полного счастья вам не хватает какой-то функции или возможности, об этом тоже стоит сообщать разработчикам. Для этого используется все тот же багтрекер и та же страница «New Issue». Незначительные отличия только в заполнении формы:
- в поле Tracker указывается тип сообщения: запрос нового функционала (Feature)
- Subject — короткое и ясное описание недостающей функции
- Description — развернутое описание
Необходимо учитывать, что новый функционал добавляется исключительно в разрабатываемую ветку (master), и при использовании «стабильной» версии вы не увидите новых функций даже после закрытия соответсвующего тикета.
Bounty
Если ошибка или пожелание зафиксированы в багтрекере и никто ими не занимается, а вам именно эта ошибка очень мешает или нехватает именно вот этой функции, можно попробовать еще одно средство — Bounty.
Bounty (премия) это некоторое вознаграждение, которое вы готовы выплатить разработчику, исправившему ошибку или реализовавшему функционал. Работает это следующим образом:
- если соответсвующая ошибка уже есть в трекере, то ее необходимо отредактировать, установив поле Tracker в Bounty. Или же сразу создать сообщение такого типа
- в поле Bounty value in euros указывается размер вознаграждения
- ссылка на тикет добавляется на страницу http://hub.qgis.org/wiki/quantum-gis/Bugs
Также стоит связаться с Paolo Cavalini, который поможет в правильной организации процесса.