Difference between revisions of "How do I create a bug report/ru"

From Free Pascal wiki
Jump to navigationJump to search
 
(5 intermediate revisions by the same user not shown)
Line 35: Line 35:
 
* Если это падение среды, попробуйте создать обратную трассировку. См. [[Creating_a_Backtrace_with_GDB/ru|создание файла обратной трассировки с помощью GDB]] для получения дополнительной информации.
 
* Если это падение среды, попробуйте создать обратную трассировку. См. [[Creating_a_Backtrace_with_GDB/ru|создание файла обратной трассировки с помощью GDB]] для получения дополнительной информации.
 
* Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
 
* Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
* Если у вас есть возможное решение, вы можете добавить патч - см. [[Creating A Patch]], который ускорит процесс.
+
* Если у вас есть возможное решение, вы можете добавить патч - см. [[Creating_A_Patch/ru]], который ускорит процесс.
* Вы можете ускорить исправление ошибки, назначив вознаграждение, см. [[Bounties]].
+
* Вы можете ускорить исправление ошибки, назначив вознаграждение, см. [[Bounties|Поощрения]].
  
 
=== Регрессия, вызванная определенной ревизией ===
 
=== Регрессия, вызванная определенной ревизией ===
Line 49: Line 49:
 
=== Улучшение ===
 
=== Улучшение ===
 
* Если вы реализовали новую функцию в исходном коде или улучшили документацию в файлах XML, создайте патч - см. [[Creating_A_Patch/ru|Создание исправления]].  
 
* Если вы реализовали новую функцию в исходном коде или улучшили документацию в файлах XML, создайте патч - см. [[Creating_A_Patch/ru|Создание исправления]].  
* Если вы улучшили перевод в языковом .po-файле, приложите весь .po-файл (а не diff). * Если у вас есть другой файл ресурса, например значок, прикрепите его к сообщению.
+
* Если вы улучшили перевод в языковом .po-файле, приложите весь .po-файл (а не diff).  
 +
* Если у вас есть другой файл ресурса, например значок, прикрепите его к сообщению.
  
 
=== Перевод сообщений на английский язык ===
 
=== Перевод сообщений на английский язык ===
Line 58: Line 59:
  
 
Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru
 
Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru
 
== Ошибки отладчика ==
 
Частая ситуация, при которой программа может не запускаться, из-за отладчика, выдавая подобное сообщение:
 
 
[[Image:Lazarus_error_ru.png|top]]
 
 
* Для того, чтобы выяснить в чём проблема, '''ОБЯЗАТЕЛЬНО''' вместе с сообщением об ошибке, добавляйте
 
файл, содержащий вывод отладчика:
 
 
Вид (View) -> Окна отладки (Debugging Window) -> Вывод отладчика (Debugger Output).
 
 
Скопируйте '''всё''' содержимое окна, и сохраните в файл.
 
 
* Укажите операционную систему и версию Лазаруса.
 
 
* Если есть возможность, проверьте с другими версиями отладчика, либо более поздними версиями Лазаруса (SVN версией) - возможно, что эта ошибка уже была устранена.
 
 
=== Общее решение проблемы с gdb отладчиком ===
 
Просто отключить его!
 
 
Окружение (Environment) -> Параметры ... (Options) -> Отладчик (Debugger) -> Тип отладчика и путь (Debugger type and path) -> none
 
 
Но отлаживаться придётся, используя журналирование (writeln), а также использовать свои знания кода и работы алгоритма программы.
 
 
=== error 193 ===
 
 
Если, при просмотре вывода отладчика, вам встретится подобная строка:
 
 
  &"Error creating process C:/Documents and Settings/UserName/Projects/project1.exe, (error 193)\n"
 
 
Ошибка возникает, если полный путь проекта содержит пробел(ы). Решение - сохранить проект в другую папку (без пробелов).
 
 
Это не ограничение Лазаруса или FPC, это ограничение отладчика.
 
  
 
==Вложения==
 
==Вложения==
Если вы добавляете исходный код или примеры проектов вложения для отчета об ошибках ('''настоятельно рекомендуется''', см. [[Tips_on_writing_bug_reports|Советы по написанию отчетов об ошибках]]), пожалуйста, заархивируйте их, используя предпочтительно следующие форматы:
+
Если вы добавляете вложения исходного кода или примера проекта для отчета об ошибке ('''настоятельно рекомендуется''', см. [[Tips on writing bug reports|Советы по написанию отчетов об ошибках]]), пожалуйста, заархивируйте их, используя предпочтительно эти форматы:
 
* zip (.zip)
 
* zip (.zip)
 
* gzip (.gz)  
 
* gzip (.gz)  
 
* tar.gzip (.tgz/.tar.gz)
 
* tar.gzip (.tgz/.tar.gz)
  
Другие форматы, такие как 7zip, Bzip и RAR, тоже подойдут. В наше время инструменты для них легко доступны.
+
Другие форматы, такие как 7zip, Bzip и RAR, тоже подходят. В настоящее время инструменты для них легко доступны.
  
 
==Понимание Report Status(статуса сообщения)==
 
==Понимание Report Status(статуса сообщения)==
 +
 
Проблема может иметь следующие состояния:
 
Проблема может иметь следующие состояния:
* New (новая): она вошла в систему отслеживания ошибок, но не была назначена, признана, подтверждена или решена.
+
* Open, but no assignee(s) (открыта, но без правопреемника(ов)): никому не поручена.
* Acknowledged (признана): команда Lazarus обнаружила проблему и установила ее своей целью, хотя они не обязательно проверяли, что ошибка действительно существует
+
* Open and 1 or more assignees (открыта и 1 или более уполномоченных): проблема была поручена одному или нескольким разработчикам Lazarus, которые попытаются исправить/реализовать ее.
* Confirmed (подтверждена): член команды Lazarus продублировал ошибку или согласен с тем, что эта функция должна быть реализована
+
* Проблема имеет метку "Status: Confirmed" (Статус: Подтверждено): член команды Lazarus продублировал ошибку или согласен с тем, что функция должна быть реализована
* Assigned (назначена): проблема была назначена разработчику Lazarus, который попытается ее исправить/реализовать
+
* Проблема имеет пометку "Status: Feedback"(Статус: обратная связь): репортер должен оставить отзыв, чтобы ответить на любые вопросы, заданные командой Lazarus, или подтвердить, что проблема устранена удовлетворительно.
* Resolved (решена): человек, которому была назначена проблема, посчитал, что проблема может быть закрыта. Затем он также устанавливает разрешение, например, '''fixed''' (зафиксирована) или '''not an issue''' (не является проблемой).
+
* Closed(Закрыта): правопреемник закрыл (и предположительно исправил или отклонил) проблему.
* Feedback (Обратная связь): репортер должен предоставить отзыв, чтобы ответить на любые вопросы, заданные командой Lazarus, или подтвердить, что проблема устранена удовлетворительно.
 
* Closed (закрыта): репортер проверил исправление и согласен с исправлением. Периодически решаемые проблемы, которые не были закрыты репортером, будут закрыты администратором системы отслеживания ошибок.
 
  
 
==См.также==
 
==См.также==
 +
* [[Tips_on_writing_bug_reports|Советы по написанию отчетов об ошибках]]
 
* [[Creating A Patch]] Если вы изменили исходный код для реализации решения, эта статья поможет вам наиболее эффективно добавить его в отчет об ошибках, чтобы разработчики могли как можно быстрее добавить его в основной код.
 
* [[Creating A Patch]] Если вы изменили исходный код для реализации решения, эта статья поможет вам наиболее эффективно добавить его в отчет об ошибках, чтобы разработчики могли как можно быстрее добавить его в основной код.
 
* [[Database bug reporting]] Специальная информация и примеры программ для ошибок базы данных
 
* [[Database bug reporting]] Специальная информация и примеры программ для ошибок базы данных
 
* [[Moderating the bug tracker]]
 
* [[Moderating the bug tracker]]
 
* Следующая страница содержит полезные советы о том, [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html как эффективно сообщать об ошибках].
 
* Следующая страница содержит полезные советы о том, [http://www.chiark.greenend.org.uk/~sgtatham/bugs.html как эффективно сообщать об ошибках].

Latest revision as of 23:51, 15 June 2022

Afrikaans (af) Deutsch (de) English (en) français (fr) português (pt) русский (ru)

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

Ошибки компиляции кода

Если у вас есть ошибки при компиляции кода из последней версии SVN, пожалуйста, свяжитесь с соответствующим списком рассылки FPC или списком рассылки Lazarus, или лучше присоединитесь к IRC-каналу #fpc или #lazarus-ide на irc.freenode.net. Тогда проблема должна решаться более оперативно.

Вход в систему / Создание новой учетной записи

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

Проверка на наличие существующей ошибки в трекере

Используйте строку поиска в Обзоре проблем. Подсказка: поиск не является интеллектуальным; например, если у вас возникли проблемы с использованием TEdit.SelStart, выполните поиск по запросу «SelStart».

Если проблема уже была опубликована:

  • переоткройте ее, если отчет об ошибке был решен или закрыт - используйте кнопку Reopen Issue (переоткрыть вопрос)
  • добавьте примечание, если вы снова воспроизвели эту ошибку в ситуации, отличной от указанной
  • Вы можете настроить систему для отслеживания изменений в этом отчете об ошибках - используйте кнопку Monitor Issue (отслеживание проблемы)
Light bulb  Примечание: Вам необходимо войти в систему для выполнения этих операций, см. раздел Вход в систему / Создание новой учетной записи

Что следует публиковать в багтрекере?

  • Баги: если вы обнаружили ошибки, глюки или другие дефекты в FPC или Lazarus
  • Предложения: если вы нашли лучший способ сделать что-либо
  • Улучшения: если вы можете заставить что-то работать лучше

Пожалуйста, обратите внимание: багтрекер не предназначен для "бытовых" вопросов. Они должны задаваться на форуме.

Баг

  • Важными полями являются поля ОС и программного Продукта, а также действия по воспроизведению этой проблемы. Если разработчики не смогут воспроизвести проблему, они не смогут и начать ее исправлять! Не забудьте упомянуть вашу конкретную архитектуру/конфигурацию (32- или 64-бит, с прямым(BOM-BE) или младшим(BOM-LE) порядком байтов, если оба возможны на вашей платформе, версия вашей операционной системы).
  • Если возможно, загрузите небольшое тестовое приложение, которое воспроизводит баг. Это, скорее всего, ускорит исправление.
  • Если есть какая-то графическая ошибка, полезно загрузить (частично) скриншот (в формате png или jpeg, но не в формате bmp).
  • Если это падение среды, попробуйте создать обратную трассировку. См. создание файла обратной трассировки с помощью GDB для получения дополнительной информации.
  • Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
  • Если у вас есть возможное решение, вы можете добавить патч - см. Creating_A_Patch/ru, который ускорит процесс.
  • Вы можете ускорить исправление ошибки, назначив вознаграждение, см. Поощрения.

Регрессия, вызванная определенной ревизией

Если вы можете найти ревизию в транке, которая вызвала ошибку, пожалуйста, включите также в сообщение ее номер ревизии SVN. Отчет обычно присваивается автору этой редакции. Вы можете найти нужную ревизию с помощью "bisect"-процесса, который представляет собой двоичный поиск по ревизиям. Есть инструменты, которые помогут с этим:

  • Команда Git git bisect. Git быстр в этой операции, потому что вся история ревизий является локальной, и ничего не нужно извлекать с сервера.
  • Perl-скрипт svn-bisect, доступный в CPAN. Он имитирует команду "git bisect", но работает непосредственно с данными SVN.

Предложение

Объясните свою идею. Может быть полезен макет графического интерфейса или пример другого инструмента, использующего эту функцию.

Улучшение

  • Если вы реализовали новую функцию в исходном коде или улучшили документацию в файлах XML, создайте патч - см. Создание исправления.
  • Если вы улучшили перевод в языковом .po-файле, приложите весь .po-файл (а не diff).
  • Если у вас есть другой файл ресурса, например значок, прикрепите его к сообщению.

Перевод сообщений на английский язык

Ошибки следует описывать на английском языке. Если английским Вы владеете недостаточно хорошо, то Вы можете использовать online переводчики (например: http://translate.google.com/).

При описании ошибки, следует указать, что Вы пользовались переводчиком: "Sorry for my English, I'm using translator"

Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru

Вложения

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

  • zip (.zip)
  • gzip (.gz)
  • tar.gzip (.tgz/.tar.gz)

Другие форматы, такие как 7zip, Bzip и RAR, тоже подходят. В настоящее время инструменты для них легко доступны.

Понимание Report Status(статуса сообщения)

Проблема может иметь следующие состояния:

  • Open, but no assignee(s) (открыта, но без правопреемника(ов)): никому не поручена.
  • Open and 1 or more assignees (открыта и 1 или более уполномоченных): проблема была поручена одному или нескольким разработчикам Lazarus, которые попытаются исправить/реализовать ее.
  • Проблема имеет метку "Status: Confirmed" (Статус: Подтверждено): член команды Lazarus продублировал ошибку или согласен с тем, что функция должна быть реализована
  • Проблема имеет пометку "Status: Feedback"(Статус: обратная связь): репортер должен оставить отзыв, чтобы ответить на любые вопросы, заданные командой Lazarus, или подтвердить, что проблема устранена удовлетворительно.
  • Closed(Закрыта): правопреемник закрыл (и предположительно исправил или отклонил) проблему.

См.также