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

From Free Pascal wiki
Jump to navigationJump to search
m
 
(46 intermediate revisions by 5 users not shown)
Line 1: Line 1:
 
{{How do I create a bug report}}
 
{{How do I create a bug report}}
  
Если Вы обнаружили ошибку в Лазарусе и хотите сообщить о ней разработчикам, эта статья расскажет как это сделать.
+
Этот документ содержит некоторые рекомендации по использованию [https://gitlab.com/freepascal.org/ багтрекера] FPC/Lazarus в качестве репортера. Этот документ написан для пользователей FPC / Lazarus, которые выявляют ошибки, имеют рекомендации, хотят отправить исправления или найти другие проблемы и хотят сообщить о них команде разработчиков Lazarus.
  
== Проблемы с компиляцией Лазаруса ==
+
== Ошибки компиляции кода ==
Если у Вас возникли проблемы с компиляцией SVN версии Лазаруса, то Вам следует написать об этом либо в  [http://www.lazarus.freepascal.org/modules.php?op=modload&name=StaticPage&file=index&sURL=maill почтовую рассылку] либо спросить о проблеме на IRC канале #lazarus-ide, сервера irc.freenode.net. Скорее всего, кто-то ещё уже столкнулся с этой же проблемой и вскоре она будет решена.
+
Если у вас есть ошибки при компиляции кода из последней версии SVN, пожалуйста, свяжитесь с соответствующим [http://freepascal.org/maillist.var списком рассылки FPC] или [http://lists.lazarus-ide.org/listinfo списком рассылки Lazarus], или лучше присоединитесь к IRC-каналу <b>#fpc</b> или <b>#lazarus-ide</b> на irc.freenode.net. Тогда проблема должна решаться более оперативно.
  
== Сообщение об ошибке ==
+
== Вход в систему / Создание новой учетной записи ==
'''Перед тем как сообщить о новой ошибке, следует убедится в том, что о ней не сообщалось ранее.'''
+
Вы должны войти в систему, чтобы иметь возможность редактировать или отправлять сообщения об ошибках. Если вы вошли в систему как гость, вам необходимо сначала выйти из системы (гости не могут создавать отчеты, только просматривать их). Если у вас уже есть учетная запись, перейдите на [https://gitlab.com/users/sign_in страницу входа], в противном случае создайте новую учетную запись на  [https://gitlab.com/users/sign_up странице регистрации].
Создание дублирующих сообщений не поможет в устранении ошибок, а, наоброт, отнимет у разработчиков время.
 
  
Для поиска сообщений об ошибке:
+
== Проверка на наличие существующей ошибки в трекере==
 +
Используйте строку поиска в [https://gitlab.com/groups/freepascal.org/-/issues Обзоре проблем]. Подсказка: поиск не является интеллектуальным; например, если у вас возникли проблемы с использованием TEdit.SelStart, выполните поиск по запросу «SelStart».
  
* Используйте [http://bugs.freepascal.org/view_all_set.php?type=3&source_query_id=1482 страницу поиска].
+
Если проблема уже была опубликована:
* Укажите слова, необходимые для поиска, в поле Search и нажмите Apply Filter
+
* переоткройте ее, если отчет об ошибке был решен или закрыт - используйте кнопку Reopen Issue (переоткрыть вопрос)
(Совет): Поиск очень простой, если у вас возникли проблемы с использованием метода TEdit.SelStart, попробуйте искать слова "SelStart". Например: если кто-то сообщил об ошибке с текстом "I've a problem using TEdit and SelStart method". Поиск по слову "TEdit.SetStart" не найдёт это сообщение, зато поиск "SelStart" даст необходимый результат.
+
* добавьте примечание, если вы снова воспроизвели эту ошибку в ситуации, отличной от указанной
 +
* Вы можете настроить систему для отслеживания изменений в этом отчете об ошибках - используйте кнопку Monitor Issue (отслеживание проблемы)
  
Если об ошибке уже сообщили:
+
{{Note| Вам необходимо войти в систему для выполнения этих операций, см. раздел [[How_do_I_create_a_bug_report/ru#.D0.92.D1.85.D0.BE.D0.B4_.D0.B2_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.83_.2F_.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BD.D0.BE.D0.B2.D0.BE.D0.B9_.D1.83.D1.87.D0.B5.D1.82.D0.BD.D0.BE.D0.B9_.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8|Вход в систему / Создание новой учетной записи]]}}
* Добавьте сообщение, если ошибку можно воспроизвести другим способом, от уже указанных
 
* Если ошибка помечена как исправленная (Resolved) или сообщение уже закрыто (Closed), то вы можете октрыть её повтороно, нажав на кнопку "Reopen Issue". (Некоторые ошибки исправленны только в SVN версии. Не открывайте сообщение об ошибке повторно, если вы не используете SVN версию Лазаруса. Все исправления в SVN версии будут включены в следующий релиз)
 
* Вы можете отслеживать ошибку нажав "Monitor Issue". При этом Вас будут уведомлять о всех измнениях с этой ошибкой.
 
  
Внимание: чтобы выполнять указанные операции Вам нужно зарегестрироваться в системе и войти под своим аккаунтом: см[[#Вход в систему/Создание аккаунта]].
+
== Что следует публиковать в багтрекере? ==
 +
* Баги: если вы обнаружили ошибки, глюки или другие дефекты в [[FPC]] или [[Lazarus]]
 +
* Предложения: если вы нашли лучший способ сделать что-либо
 +
* Улучшения: если вы можете заставить что-то работать лучше
  
== Создание сообщения об ошибке ==
+
Пожалуйста, обратите внимание: багтрекер '''не''' предназначен для "бытовых" вопросов. Они должны задаваться на [http://forum.lazarus.freepascal.org/ форуме].
# Откройте страницу [http://bugs.freepascal.org/set_project.php?project_id=1 Lazarus баг-трекера]
 
# Вы должны войти в трекер под своим аккаунтом.
 
# Октройте страницу [http://bugs.freepascal.org/bug_report_advanced_page.php Report Issue]. Заполните как можно больше информации об ошибке. Чем более точные данные, тем лучше. Обязательно укажите, что происходит "не так" и "как должно работать". После заполнения полей нажмите кнопку Submit Report
 
Важные информация об ошибке:
 
* '''КАК ВОСПРОИЗВЕСТИ ОШИБКУ''' Если разработчикам не удасться её воспроизвети, то исправление займёт гораздо больше времени.
 
* Widgetset и Операционная система
 
* Версия Лазаруса (официальный релиз (его номер) или SVN версия (номер ревизии)
 
* Если ошибка приводит к падению программы или Лазаруса, то приложите стек вызовов. Обычно он пишется в консоль программы. Подробнее вы можете узнать [[Creating a Backtrace with GDB|здесь]].
 
  
* Если есть возможность то '''обязательно''' добавьте к сообщению об ошибке небольшой тестовый проект, который воспроизводит ошибку.
+
* Для создания отчета перейдите в [https://gitlab.com/groups/freepascal.org/lazarus/-/issues багтрекер Lazarus]. Вы должны быть залогированы в системе, см. раздел [[How_do_I_create_a_bug_report/ru#.D0.92.D1.85.D0.BE.D0.B4_.D0.B2_.D1.81.D0.B8.D1.81.D1.82.D0.B5.D0.BC.D1.83_.2F_.D0.A1.D0.BE.D0.B7.D0.B4.D0.B0.D0.BD.D0.B8.D0.B5_.D0.BD.D0.BE.D0.B2.D0.BE.D0.B9_.D1.83.D1.87.D0.B5.D1.82.D0.BD.D0.BE.D0.B9_.D0.B7.D0.B0.D0.BF.D0.B8.D1.81.D0.B8| Создание новой учетной записи]].
* Если ошибка связана с графикой (графическим интерфейсом программы), то сделайте скришоты
+
* Перейдите на страницу [https://gitlab.com/groups/freepascal.org/-/issues Report Issue] (Сообщить о проблеме). Заполните столько, сколько вы можете и знаете. Чем конкретнее, тем лучше.
* Если есть возможность проверить ошибку на разных системах, то обязательно протестируйте. Это поможет понять, является ли ошибка системозависимой или нет. А значит ускорит её исправление.
+
 
* Ускорить устранение ошибки, поможет предложенный Вами, за её решение, [[Bounties|бонус]]. Устранять ошибки могут не только разработчики Лазаруса, но и любой программист владеющий FPC/Lazarus-ом.
+
=== Баг ===
 +
* Важными полями являются поля ОС и программного Продукта, а также действия по воспроизведению этой проблемы. Если разработчики не смогут воспроизвести проблему, они не смогут и начать ее исправлять! Не забудьте упомянуть вашу конкретную архитектуру/конфигурацию (32- или 64-бит, с прямым(BOM-BE) или младшим(BOM-LE) порядком байтов, если оба возможны на вашей платформе, версия вашей операционной системы).
 +
* Если возможно, <b>загрузите небольшое тестовое приложение, которое воспроизводит баг</b>. Это, скорее всего, ускорит исправление.
 +
* Если есть какая-то графическая ошибка, полезно загрузить (частично) скриншот (в формате png или jpeg, но не в формате bmp).
 +
* Если это падение среды, попробуйте создать обратную трассировку. См. [[Creating_a_Backtrace_with_GDB/ru|создание файла обратной трассировки с помощью GDB]] для получения дополнительной информации.
 +
* Вы можете попытаться воспроизвести ошибку на как можно большем количестве различных платформ - это поможет определить, является ли это специфической проблемой виджета.
 +
* Если у вас есть возможное решение, вы можете добавить патч - см. [[Creating_A_Patch/ru]], который ускорит процесс.
 +
* Вы можете ускорить исправление ошибки, назначив вознаграждение, см. [[Bounties|Поощрения]].
 +
 
 +
=== Регрессия, вызванная определенной ревизией ===
 +
Если вы можете найти ревизию в транке, которая вызвала ошибку, пожалуйста, включите также в сообщение ее номер ревизии SVN. Отчет обычно присваивается автору этой редакции.
 +
Вы можете найти нужную ревизию с помощью "bisect"-процесса, который представляет собой двоичный поиск по ревизиям. Есть инструменты, которые помогут с этим:
 +
* Команда Git [https://git-scm.com/docs/git-bisect git bisect]. Git быстр в этой операции, потому что вся история ревизий является локальной, и ничего не нужно извлекать с сервера.
 +
* Perl-скрипт [http://search.cpan.org/dist/App-SVN-Bisect/bin/svn-bisect svn-bisect], доступный в CPAN. Он имитирует команду "git bisect", но работает непосредственно с данными SVN.
 +
 
 +
=== Предложение ===
 +
Объясните свою идею. Может быть полезен макет графического интерфейса или пример другого инструмента, использующего эту функцию.
 +
 
 +
=== Улучшение ===
 +
* Если вы реализовали новую функцию в исходном коде или улучшили документацию в файлах XML, создайте патч - см. [[Creating_A_Patch/ru|Создание исправления]].
 +
* Если вы улучшили перевод в языковом .po-файле, приложите весь .po-файл (а не diff).
 +
* Если у вас есть другой файл ресурса, например значок, прикрепите его к сообщению.
  
 
=== Перевод сообщений на английский язык ===
 
=== Перевод сообщений на английский язык ===
  
Ошибки следует описывать на английском языке. Если английским Вы владеете недостаточно хорошо, то Вы можете использовать on-line переводчики (например: http://translate.google.com/).  
+
Ошибки следует описывать на английском языке. Если английским Вы владеете недостаточно хорошо, то Вы можете использовать online переводчики (например: http://translate.google.com/).  
  
 
При описании ошибки, следует указать, что Вы пользовались переводчиком: "Sorry for my English, I'm using translator"
 
При описании ошибки, следует указать, что Вы пользовались переводчиком: "Sorry for my English, I'm using translator"
Line 46: Line 60:
 
Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru
 
Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru
  
=== Вход в систему/Создание аккаунта ===
+
==Вложения==
Вам нужно быть зарегестрированным пользователем, чтобы править или добавлять новые сообщения об ошибках.
+
Если вы добавляете вложения исходного кода или примера проекта для отчета об ошибке ('''настоятельно рекомендуется''', см. [[Tips on writing bug reports|Советы по написанию отчетов об ошибках]]), пожалуйста, заархивируйте их, используя предпочтительно эти форматы:
Вы так же можете войти в систему, как анонимный пользователь, но вы сможете только просматривать сообщения.
+
* zip (.zip)
Если у вас уже есть аккаунт, то для входа в систему вам нужно зайти на эту [http://bugs.freepascal.org/login_page.php страницу]. Если у вас нет аккаунта, то вам следует зарегестрироваться [http://bugs.freepascal.org/signup_page.php здесь].
+
* 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(Закрыта): правопреемник закрыл (и предположительно исправил или отклонил) проблему.
 +
 
 +
==См.также==
 +
* [[Tips_on_writing_bug_reports|Советы по написанию отчетов об ошибках]]
 +
* [[Creating A Patch]] Если вы изменили исходный код для реализации решения, эта статья поможет вам наиболее эффективно добавить его в отчет об ошибках, чтобы разработчики могли как можно быстрее добавить его в основной код.
 +
* [[Database bug reporting]] Специальная информация и примеры программ для ошибок базы данных
 +
* [[Moderating the bug tracker]]
 +
* Следующая страница содержит полезные советы о том, [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(Закрыта): правопреемник закрыл (и предположительно исправил или отклонил) проблему.

См.также