Spec-Zone.ru › Perl 5.38

perlthanks

СОДЕРЖАНИЕ

  • ИМЯ
  • СИНОПСИС
  • ОПИСАНИЕ
  • ПАРАМЕТРЫ
  • АВТОРЫ
  • СМОТРИТЕ ТАКЖЕ
  • ОШИБКИ

ИМЯ

perlbug - как подать отчет об ошибке в Perl

СИНОПСИС

perlbug

perlbug [ -v ] [ -a адрес ] [ -s тема ] [ -b тело | -f входной файл ] [ -F выходной файл ] [ -r адрес возврата ] [ -e редактор ] [ -c адрес администратора | -C ] [ -S ] [ -t ] [ -d ] [ -h ] [ -T ]

perlbug [ -v ] [ -r адрес возврата ] [ -ok | -okay | -nok | -nokay ]

perlthanks

ОПИСАНИЕ

Эта программа предназначена для помощи в составлении отчетов об ошибках (и благодарственных записок) по perl5 и модулям, которые поставляются с ним.

В большинстве случаев вы можете просто запустить её интерактивно из командной строки без каких-либо специальных аргументов и следовать подсказкам.

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

Отчеты об ошибках должны быть отправлены в систему отслеживания проблем GitHub по адресу https://github.com/Perl/perl5/issues. Адрес perlbug@perl.org больше не автоматически открывает тикеты. Вы можете использовать этот инструмент для составления отчета и сохранения его в файл, который затем можно отправить в систему отслеживания проблем.

В крайних случаях perlbug может работать недостаточно хорошо на вашей системе, чтобы провести вас через составление отчета об ошибке. В таких случаях вы можете использовать perlbug -d или perl -V для получения информации о конфигурации системы для включения в ваш отчет об ошибке.

При сообщении об ошибке, пожалуйста, проверьте этот список:

Какую версию Perl вы используете?

Введите perl -v в командной строке, чтобы узнать.

Используете ли вы последнюю выпущенную версию perl?

Посмотрите на http://www.perl.org/, чтобы узнать. Если вы не используете последнюю выпущенную версию, пожалуйста, попробуйте воспроизвести ошибку на последней стабильной версии.

Обратите внимание, что сообщения об ошибках в старых версиях Perl, особенно те, которые указывают, что вы также не протестировали текущую стабильную версию Perl, вероятно, получат меньше внимания от волонтеров, которые разрабатывают и поддерживают Perl, чем сообщения об ошибках в текущей версии.

Вы уверены, что у вас ошибка?

Значительное количество отчетов об ошибках, которые мы получаем, оказываются документально подтвержденными функциями Perl. Убедитесь, что проблема, с которой вы столкнулись, не является намеренной, просмотрев документацию, которая поставляется с дистрибутивом Perl.

Учитывая обширный объем документации Perl, это не тривиальная задача, но если вы можете указать на документацию, которая предполагает, что наблюдаемое вами поведение является *неправильным*, ваша проблема, скорее всего, получит больше внимания. Возможно, вы захотите начать с perldoc perltrap, чтобы получить указания на распространенные ловушки, в которые попадают новые (и опытные) программисты Perl.

Если вы не уверены в значении полученного сообщения об ошибке, проконсультируйтесь с perldoc perldiag для объяснения. Если сообщение не содержится в perldiag, оно, вероятно, не генерируется Perl. Возможно, вам повезёт, если вы обратитесь к документации вашей операционной системы.

Если вы работаете на платформе, отличной от UNIX, обратитесь к perldoc perlport, так как некоторые функции могут быть не реализованы или работать по-другому.

Вы можете попытаться выяснить, что происходит не так, используя отладчик Perl. Для получения информации об использовании отладчика см. perldoc perldebug.

Есть ли у вас подходящий тест-кейс?

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

Хороший тест-кейс имеет большинство из этих атрибутов: короткий, простой код; мало зависимостей от внешних команд, модулей или библиотек; без платформенно-зависимого кода (если это не платформа-специфическая ошибка); чёткое, простое описание.

Хороший тест-кейс практически всегда является хорошим кандидатом для включения в набор тестов Perl. Если у вас есть время, рассмотрите возможность написания своего тестового случая таким образом, чтобы его можно было легко включить в стандартный набор тестов.

Включили ли вы всю необходимую информацию?

Убедитесь, что вы включили *точные* сообщения об ошибках, если таковые имеются. "Perl выдал ошибку" не является точным сообщением об ошибке.

Если у вас сгенерировался core dump (или эквивалент), вы можете использовать отладчик (dbx, gdb и т. д.) для создания трассировки стека, которую следует включить в отчет об ошибке.

ПРИМЕЧАНИЕ: если ваш Perl был скомпилирован с отладочной информацией (часто -g), трассировка стека, вероятно, будет несколько сложной для использования, потому что, скорее всего, она будет содержать только имена функций, а не их аргументы. Если возможно, перекомпилируйте свой Perl с отладочной информацией, воспроизведите сбой и трассировку стека.

Можете ли вы описать ошибку простым языком?

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

Можете ли вы исправить ошибку самостоятельно?

Если да, это отличная новость; отчеты об ошибках с исправлениями, скорее всего, получат значительно больше внимания и интереса, чем те, которые без них. Пожалуйста, отправьте своё исправление через GitHub Pull Request, как описано в perldoc perlhack. Вы также можете отправить исправления по адресу perl5-porters@perl.org. При отправке исправления, создайте его с помощью git format-patch, если это возможно, хотя унифицированная разница, созданная с помощью diff -pu, будет почти так же хорошо.

Ваше исправление может быть возвращено с просьбами об изменениях или с просьбами о более подробных объяснениях вашего исправления.

Вот несколько советов для создания исправлений высокого качества:

Убедитесь, что исправление не обращено вспять (первый аргумент к diff обычно является исходным файлом, второй аргумент — ваш изменённый файл). Убедитесь, что вы протестировали своё исправление, применив его с помощью git am или программы patch перед отправкой. Постарайтесь следовать тому же стилю, что и код, который вы пытаетесь исправить. Убедитесь, что ваше исправление действительно работает (make test, если та вещь, которую вы исправляете, покрыта набором тестов Perl).

Можно ли использовать perlbug для отправки благодарственной записки?

Да, вы можете сделать это, используя параметр -T, или вызвав программу как perlthanks. Благодарственные записки — хорошо. Это поднимает настроение.

Пожалуйста, сделайте заголовок вашего отчета информативным. "Ошибка" не информативно. Так же как и "perl аварийно завершает работу" или "ПОМОГИТЕ!!!". Это не помогает. Компактное описание того, что не так, отлично подойдёт.

Сделав свою работу, будьте готовы подождать, вам могут сказать, что ошибка в вашем коде, или, возможно, вы вообще не получите ответа. Волонтеры, которые поддерживают Perl, занятые люди, поэтому, если ваша проблема — очевидная ошибка в вашем собственном коде, её трудно понять или она является дубликатом существующего отчета, вы можете не получить личного ответа.

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

Вы можете обновить тикет о своей ошибке на https://github.com/Perl/perl5/issues, если выпущена новая версия Perl и ваша ошибка всё ещё присутствует.

ПАРАМЕТРЫ

-a

Адрес для отправки отчета вместо сохранения в файл.

-b

Тело отчета. Если оно не указано в командной строке или в файле с опцией -f, у вас будет возможность отредактировать отчет.

-C

Не отправлять копию администратору при отправке отчета по почте.

-c

Адрес для отправки копии отчета при отправке отчета по почте. По умолчанию используется адрес локального администратора Perl (записанный при сборке Perl).

-d

Режим данных (по умолчанию, если используется перенаправление или вывод в pipe). Это выводит данные вашей конфигурации без сохранения или отправки по электронной почте. Вы можете использовать эту опцию с -v для получения более подробных данных.

-e

Редактор для использования.

-f

Файл, содержащий тело отчета. Используйте его для быстрой отправки подготовленного отчета.

-F

Файл, в который будет выведен результат. По умолчанию perlbug.rep.

-h

Выводит краткое описание опций.

-ok

Отчет об успешной сборке на этой системе для разработчиков Perl. Принудительно включает -S и -C. Принудительно устанавливает значения для -s и -b. Запрашивает адрес возврата только если не может его определить (для использования с make). Учитывает адрес возврата, указанный с -r. Вы можете использовать эту опцию с -v для получения более подробных данных. Отчет создается только если система работает меньше 60 дней.

-okay

Аналогично -ok, но работает и для более старых систем.

-nok

Отчет об неудачной сборке на этой системе. Принудительно включает -C. Принудительно устанавливает значение для -s, затем требует отредактировать отчет и указать причину ошибки. В качестве альтернативы, подготовленный отчет можно предоставить с помощью -f. Запрашивает адрес возврата только если не может его определить (для использования с make). Учитывает адрес возврата, указанный с -r. Вы можете использовать эту опцию с -v для получения более подробных данных. Отчет создается только если система работает меньше 60 дней.

-nokay

Аналогично -nok, но работает и для более старых систем.

-p

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

-r

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

-S

Сохранить или отправить отчет без запроса подтверждения.

-s

Тема, которую следует включить в отчет. Вы получите запрос, если вы не укажете её в командной строке.

-t

Тестовый режим. Позволяет использовать perlbug из pipe или файла для тестирования.

-T

Отправить письмо благодарности вместо отчета об ошибке.

-v

Включить подробные данные конфигурации в отчет.

АВТОРЫ

Kenneth Albanowski (<kjahds@kjahds.com>), впоследствии доработан Gurusamy Sarathy (<gsar@activestate.com>), Tom Christiansen (<tchrist@perl.com>), Nathan Torkington (<gnat@frii.com>), Charles F. Randall (<cfr@pobox.com>), Mike Guy (<mjtg@cam.ac.uk>), Dominic Dunlop (<domo@computer.org>), Hugo van der Sanden (<hv@crypt.org>), Jarkko Hietaniemi (<jhi@iki.fi>), Chris Nandor (<pudge@pobox.com>), Jon Orwant (<orwant@media.mit.edu>, Richard Foley (<richard.foley@rfi.net>), Jesse Vincent (<jesse@bestpractical.com>) и Craig A. Berry (<craigberry@mac.com>).

СМОТРИТЕ ТАКЖЕ

perl(1), perldebug(1), perldiag(1), perlport(1), perltrap(1), diff(1), patch(1), dbx(1), gdb(1)

ОШИБКИ

Известных нет (подумайте, что было использовано, чтобы их отправить?)

© 1993–2023 Larry Wall and others
Licensed under the GNU General Public License version 1 or later, or the Artistic License.
The Perl logo is a trademark of the Perl Foundation.
https://perldoc.perl.org/5.38.0/perlthanks

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API