4. Написание сообщения о проблеме

Теперь, после того, как вы решили, что ваш вопрос подпадает под категорию сообщения о проблеме, и это проблема FreeBSD, самое время написать собственно сообщение о проблеме (PR). Прежде чем мы углубимся в частности использования программы для создания и отправки PR, вот несколько советов, которые помогут вам сделать PR более эффективным.

4.1. Как писать хорошие сообщения о проблемах

4.2. Прежде всего

Если вы используйте утилиту send-pr(1) проверьте, что переменная вашего окружения VISUAL (или EDITOR, если VISUAL не задана) задана подходящим образом.

Следует также проверить работоспособность системы электронной почты. Утилита send-pr(1) использует почтовую систему для отправки и отслеживания сообщения о проблеме. Если с машины, на которой вы запускаете send-pr(1), нельзя отправить почту, сообщение не попадёт в базу данных GNATS. О настройке электронной почты во FreeBSD можно прочитать в главе ''Электронная почта'' Руководства по FreeBSD по адресу http://www.FreeBSD.org/doc/ru_RU.KOI8-R/books/handbook/mail.html.

Убедитесь, что ваш почтовый клиент не исказит сообщение по пути в GNATS. В частности, если ваш почтовый клиент автоматически переносит строки, изменяет символы табуляции на пробелы или предотвращает интерпретацию символов новой строки, любой патч, который вы пришлёте окажется непригодным. Для текста мы хотели бы, чтобы вы делали строчки размером примерно в 70 символов для читабельности PR на веб странице.

Примерные соображения должны учитываться при отправке сообщения об ошибке через web-форму вместо send-pr(1). Помните, что операции копирования-вставки могут иметь сторонние эффекты в форматировании текста. В определённых случаях может быть необходимо использовать uuencode(1) для гарантии того, что патчи придут не изменёнными.

И наконец, если ваше сообщение будет объёмным, вы должны приготовить его в offline, чтобы ничего не потерялось в случае, если будет проблема при его отправке. Это особенно касается web-формы.

4.3. Вложение патчей или файлов

Программа send-pr(1) предусматривает присоединение файлов к сообщению о проблеме. Вы можете вложить сколько угодно файлов, но каждый с уникальным именем (имеется в виду имя файла без маршрута). Просто используйте параметр командной строки -a для задания имен файлов, которые вы хотите присоединить:

% send-pr -a /var/run/dmesg -a /tmp/errors

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

Если вы вкладываете патч, обязательно используйте параметр -c или -u вместе с командой diff(1) для создания контекстного или унифицированного diff-файла (унифицированный формат предпочтителен), и обязательно укажите точные номера версий CVS файлов, которые вы изменяли, чтобы разработчики, которые будут читать ваше сообщение, смогли легко его применить. Для проблем, связанных с ядром или с базовыми утилитами предпочтительнее будет патч относительно ветки FreeBSD-CURRENT (или HEAD CVS), т.к. весь новый код должен быть сначала протестирован в ней. После завершения тестирования код будет интегрирован в ветвь FreeBSD-STABLE.

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

Не отсылайте патчи в виде вложений, используя Content-Transfer-Encoding: quoted-printable. Это выполнит экранирование (escaping) символов и весь патч будет бесполезным.

Следует также заметить, что включение небольших патчей в сообщение о проблеме является приемлемой практикой, в особенности если они решают проблему, описанную в сообщении, большие же патчи, а в особенности новый код, который может требовать значительного просмотра перед тем, как он будет внесен в дерево исходных текстов, должны быть размещены на web- или ftp-сервере, а в сообщение о проблеме должен быть включён только URL указывающий на этот патч. Очень часто патчи, пересылаемые по электронной почте, а в особенности если задействована GNATS, бывают искажены, и, как следствие, чем больше патч, тем труднее будет для заинтересованных людей привести его к нормальному виду. Также то, что патч будет размещён отдельно от сообщения о проблеме, даёт возможность изменять его не отсылая полный патч в дополнение к изначальному сообщению о проблеме. И наконец, большие патчи просто увеличивают размер базы данных, так как закрытые сообщения об ошибках на самом деле не удаляются, а сохраняются и помечаются, как closed.

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

4.4. Заполнение шаблона

После запуска утилиты send-pr(1) вам будет представлен шаблон сообщения о проблеме. Шаблон состоит из списка полей, некоторые из которых уже заполнены, а некоторые содержат комментарии, объясняющие назначение поля или перечисляющие подходящие значения. Не беспокойтесь о комментариях; они будут автоматически удалены, если вы их не изменяли (или удалите их сами).

Вверху шаблона, ниже строк SEND-PR: находятся заголовки почтового сообщения. Вам обычно не нужно их изменять, если только вы не посылаете сообщение о проблеме с машины или от учетной записи, которая может посылать, но не может получать электронную почту, в случае чего вы можете задать в полях From: и Reply-To: ваши реальные адреса электронной почты. Вы можете также послать самому себе (или кому-то еще) копию сообщения о проблеме, добавив один или большее количество адресов к заголовку Cc:.

Далее следует последовательности однострочных полей:

И наконец, последовательность многострочных полей:

4.5. Отправка сообщения о проблеме

Как только вы заполните шаблон, сохраните его и выйдете из редактора, send-pr(1) запросит вас s)end, e)dit or a)bort?. Вы можете нажать s для продолжения и отправки сообщения о проблеме, e для повторного запуска редактора и выполнения дальнейших изменений, или a для отказа от вашего сообщения. Если вы выберете последнее, то ваше сообщение о проблеме останется на диске (send-pr(1) укажет вам имя файла перед завершением работы), так что вы сможете отредактировать его на свой вкус или передать в систему с лучшим подключением к сети, перед тем, как послать его при помощи параметра -f программы send-pr(1):

% send-pr -f ~/my-problem-report

При этом будет прочитан указанный файл, будет проверено содержимое, убраны комментарии и сообщение будет отослано.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам, связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.