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

From Lazarus wiki
Jump to navigationJump to search
(Russian: How do I create a bug report)
 
 
(62 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Как создать сообщение об ошибке}}
+
{{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 View Issues].
+
Если проблема уже была опубликована:
* Укажите слова необходимые для поиска в поле Search и нажмите Apply Filter
+
* переоткройте ее, если отчет об ошибке был решен или закрыт - используйте кнопку Reopen Issue (переоткрыть вопрос)
(Совет): Поиск очень простой, если у вас возникли проблемы с использованием метода TEdit.SelStart, попробуйте искать "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 версию Лазаруса)
 
* Вы можете отслеживать ошибку нажав. "Monitor Issue". При этом Вас будут уведомлять о всех измнениях с этой ошибкой.
 
  
 +
== Что следует публиковать в багтрекере? ==
 +
* Баги: если вы обнаружили ошибки, глюки или другие дефекты в [[FPC]] или [[Lazarus]]
 +
* Предложения: если вы нашли лучший способ сделать что-либо
 +
* Улучшения: если вы можете заставить что-то работать лучше
  
Внимание: чтобы выполнять указанные операции Вам нужно зарегестрироваться в системе и войти под своим аккаунтом: см[[#Вход в систему/Создание аккаунта]].
+
Пожалуйста, обратите внимание: багтрекер '''не''' предназначен для "бытовых" вопросов. Они должны задаваться на [http://forum.lazarus.freepascal.org/ форуме].
  
== Enter the bug in the Lazarus Bug Tracker ==
+
* Для создания отчета перейдите в [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| Создание новой учетной записи]].
# Go to the [http://bugs.freepascal.org/set_project.php?project_id=1 Lazarus bug tracker]
+
* Перейдите на страницу [https://gitlab.com/groups/freepascal.org/-/issues Report Issue] (Сообщить о проблеме). Заполните столько, сколько вы можете и знаете. Чем конкретнее, тем лучше.  
# You need to be logged, see section [[#Logging/Creating new account]]
 
# Go to the [http://bugs.freepascal.org/bug_report_advanced_page.php Report Issue] page. Fill in as much as you can and know. The more specific, the better.
 
#* Important fields are the OS and Product fields and the steps to reproduce this issue. If an issue cannot be reproduced by the developers, they cannot start to fix it! Do not forget to mention, if you are using some exotic PC architecture (big endian or 64-bit).
 
#* It is often useful to upload a small test application that shows the bug, and this speeds up correcting it.
 
#* If there is some graphical error, it is useful to upload a (partial) screenshot (in png or jpeg, not bmp format).
 
#* If it is a crash, try to create a backtrace. See [[Creating a Backtrace with GDB]] for more info.
 
#* You can try to reproduce the bug on as many different platforms as you can - it helps to determinate if it is widget specific issue.
 
#* You can boost fixing the bug by submitting a bounty, see [[Bounties]].
 
  
 +
=== Баг ===
 +
* Важными полями являются поля ОС и программного Продукта, а также действия по воспроизведению этой проблемы. Если разработчики не смогут воспроизвести проблему, они не смогут и начать ее исправлять! Не забудьте упомянуть вашу конкретную архитектуру/конфигурацию (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"-процесса, который представляет собой двоичный поиск по ревизиям. Есть инструменты, которые помогут с этим:
Если у вас уже есть аккаунт, то для входа в систему вам нужно зайти на эту [http://bugs.freepascal.org/login_page.php страницу]. Если у вас нет аккаунта, то вам следует зарегестрироваться [http://bugs.freepascal.org/signup_page.php здесь].
+
* Команда 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).  
 +
* Если у вас есть другой файл ресурса, например значок, прикрепите его к сообщению.
 +
 
 +
=== Перевод сообщений на английский язык ===
 +
 
 +
Ошибки следует описывать на английском языке. Если английским Вы владеете недостаточно хорошо, то Вы можете использовать online переводчики (например: http://translate.google.com/).
 +
 
 +
При описании ошибки, следует указать, что Вы пользовались переводчиком: "Sorry for my English, I'm using translator"
 +
 
 +
Вы так же можете попросить помощи в переводе (и не только) на этом форуме: http://freepascal.ru
 +
 
 +
==Вложения==
 +
Если вы добавляете вложения исходного кода или примера проекта для отчета об ошибке ('''настоятельно рекомендуется''', см. [[Tips on writing bug reports|Советы по написанию отчетов об ошибках]]), пожалуйста, заархивируйте их, используя предпочтительно эти форматы:
 +
* 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(Закрыта): правопреемник закрыл (и предположительно исправил или отклонил) проблему.
 +
 
 +
==См.также==
 +
* [[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 00:51, 16 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(Закрыта): правопреемник закрыл (и предположительно исправил или отклонил) проблему.

См.также