Использование системы отслеживания ошибок QGIS

Материал из GIS-Lab
Перейти к навигации Перейти к поиску
Эта страница является черновиком статьи.


Эта статья является кратким руководством по использованию системы отслеживания ошибок (багтрекера, от англ. 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/ и в правом верхнем углу жмем на ссылку «Войти». После ввода своих регистрационных данных мы попадем в систему.

Стартовая страница багтрекера QGIS

Сначала стоит озаботиться настройкой своей учетной записи: переходим по ссылке «My account» в правом верхнем углу, на открывшейся странице заполняем поля формы:

  • Firstname
  • Lastname
  • Email (на указанную почту будут приходить уведомления)
Редактирование учетной записи

Здесь же можно указать предпочитаемый язык интерфейса (используется только после авторизации в системе), временную зону и порядок отображения записей. Рекомендуется установить отправку оповещений хотя бы в режим «Only for things I watch or I'm involved in», что позволит оперативно реагировать на изменения и комментарии.

Общение в багтрекере ведется на английском языке. 

Сообщаем об ошибке

Итак, в процессе работы обнаружена какая-то ошибка (или нам кажется, что это ошибка). Сначала нужно убедиться, что ошибка воспроизводится:

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

Также стоит привлечь к процессу проверки других пользователей и тем самым не только ускорить процесс, но и собрать больше информации о самой ошибке (например, что она проявляется только на какой-то конкретной версии или только в какой-то определенной ОС). Для этого авторизуемся на форуме GIS-Lab, и в разделе Oшибки QGIS форума QGIS создаем сообщение с описанием ошибки, предварительно ознакомившись с правилами оформления.

В процессе, по возможности, собираем доступную отладочную информацию, предшествующую возникновению ошибки (отладочные сообщения в консоли, сообщения из окна 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». Это позволит вам быть в курсе всех изменений, касающихся данной ошибки. Например, разработчики закрою ошибку или кто-то оставит комментарий, в этих случаях вы получите уведомление на почту.

Избегайте редактирования уже отправленных комментариев за исключением исправления опечаток, во всех остальных случаях лучше добавить еще один комментарий. Обратите внимание, что есть две кнопки редактирования «Update»: одна вверху, на уровне заголовка сообщения, а вторая — внизу, под последним комментарием. Верхняя кнопка используется для изменения самого сообщения (например, можно изменить приоритет или дополнить список систем, на которых ошибка воспроизводится), а нижняя используется для добавления нового комментария.

Отправленное сообщение

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

Оставляем пожелание

Если для полного счастья вам не хватает какой-то функции или возможности, об этом тоже стоит сообщать разработчикам. Но для начала лучше убедиться, что наши запросы не слишком экзотичны. Для этого предназначен раздел Предложения форума QGIS. Читаем правила, создаем новую тему и собираем комментарии. Если большинство предложение восприняло положительно, идем оформлять пожелание (feature request).

Для этого используется все тот же багтрекер и та же страница «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, который поможет в правильной организации процесса.

Ccылки

  1. How to report bugs
  2. Squash bugs for money