| |
Теперь, после того, как вы решили, что ваш вопрос подпадает под категорию сообщения о проблеме, и это проблема FreeBSD, самое время написать собственно сообщение о проблеме (PR). Прежде чем мы углубимся в частности использования программы для создания и отправки PR, вот несколько советов, которые помогут вам сделать PR более эффективным.
Основным языком общения разработчиков FreeBSD является английский. База данных по проблемам также ведется на английском. Если вы испытываете проблемы с формулировкой описания проблемы по-английски, свяжитесь со своими соотечественниками, которые помогут вам составить PR.
Не оставляйте поле ``Synopsis'' (краткое описание) пустым. Сообщения о проблемах попадают как в списки рассылки, которые затем расходятся по всему миру (в них поле ``Synopsis'' определяет тему письма), так и в базу данных. Просматривающий эту базу, как правило, пройдет мимо PR с пустым кратким описанием. Не забудьте, что PR остается в базе до тех пор, пока кто-либо не закроет его; сообщение-аноним, скорее всего, просто потеряется на общем фоне.
Избегайте туманных описаний в поле ``Synopsis''. Не стоит предполагать, что читающий ваше сообщение владеет контекстом; поэтому, чем подробнее вы опишете ситуацию, тем лучше. В частности, к какой части системы относится ваша проблема? Проявляется ли она на этапе установки или во время нормальной работы? Например, вместо строки Synopsis: portupgrade is broken следовало бы написать что-то вроде Synopsis: port sysutils/portupgrade coredumps on -current. В случае портированных приложений в поле ``Synopsis'' полезно указывать не только имя порта, но и категорию.
Если у вас есть готовый патч, скажите об этом. PR, содержащий патч, имеет куда больше шансов быть рассмотренным. В этом случае добавьте строку [patch] в начало поля ``Synopsis'' (хотя использование именно этой формы необязательно, она является стандартом де-факто).
Если вы отвечаете за исходные тексты, сообщите об этом. Если вы отвечаете за часть исходных текстов (например, порт) можете добавить в начало поля ``Synopsis'' строку [maintainer update], а также установить класс вашего сообщения (поле ``Class'') в maintainer-update. В этом случае коммиттеру, обрабатывающему ваш PR, не придется лишний раз сверяться с файлом Makefile.
Будьте точны в формулировках. Чем больше информации вы можете предоставить о проблеме, тем больше у вас шансов получить ответ. Например, следует предоставить информацию о версии системы, на которой вы работаете (для этого предназначено специальное поле, см. ниже), о платформе, работаете ли вы на версии с CD-ROM или обновлялись посредством cvsup(1) (если да, то укажите момент обновления). В случае проблем с ядром укажите, что вы прочли файл src/UPDATING, иначе кто-нибудь обязательно спросит, делали ли вы это. Нет необходимости сразу предоставлять файл конфигурации ядра, список установленных портов и/или образ памяти; однако, вы должны быть готовы выслать или предоставить их по запросу.
Избегайте нечетких запросов о новых возможностях. Сообщение типа ``кто-то обязательно должен сделать так, чтобы такая-то утилита вела себя так-то'' имеет куда меньше шансов встретить позитивный отклик, чем более четко сформулированный запрос. Помните, что исходные тексты доступны всем, так что если вам нужна реализация какого-то нового свойства, лучший способ-- взяться за работу самому! Не забудьте также, что такие моменты лучше обсуждать в списках рассылки, таких как freebsd-questions, чем делать это посредством базы данных PR.
Убедитесь, что ваша проблема еще никем не описана. Мы уже говорили об этом, но стоит повториться. Потратьте пару минут на составление запросов к базе PR: http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query. (Несмотря на повторы, об этом постоянно забывают)
Избегайте полемики. Если ваше сообщение касается области или способов реализации, которые ранее вызвали разногласия, вам стоит быть готовым предоставить не только патчи, но и внятные аргументы, почему следует поступать именно так (то есть, это ``Правильный Путь''). Как отмечалось выше, аккуратный поиск по архиву списков рассылки http://www.FreeBSD.org/search/search.html#mailinglists никогда не помешает.
Будьте вежливы. Почти каждый из тех, кто может заниматься вашим сообщением, является добровольцем. Никому не понравятся указания, как и что делать, когда он и так занимается этим, да еще и по каким-либо причинам, отличным от финансовых. Вообще говоря, этого подхода следует придерживаться, имея дело с любым проектом с Открытыми Исходными текстами (Open Source).
Перед запуском утилиты send-pr(1) проверьте, что переменная вашего окружения VISUAL (или EDITOR, если VISUAL не задана) задана подходящим образом.
Следует также проверить работоспособность системы электронной почты. Утилита send-pr(1) использует почтовую систему для отправки и отслеживания сообщения о проблеме. Если с машины, на которой вы запускаете send-pr(1), нельзя отправить почту, сообщение не попадёт в базу данных GNATS. О настройке электронной почты во FreeBSD можно прочитать в главе ``Электронная почта'' Руководства по FreeBSD по адресу http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/mail.html.
Программа send-pr(1) предусматривает присоединение файлов к сообщению о проблеме. Вы можете вложить сколько угодно файлов, но каждый с уникальным именем (имеется в виду имя файла без маршрута). Просто используйте параметр командной строки -a для задания имен файлов, которые вы хотите присоединить:
% send-pr -a /var/run/dmesg -a /tmp/errors
Не беспокойтесь о бинарных файлах, они будут автоматически перекодированы для того, чтобы не повредить работе вашей почтовой программы.
Если вы вкладываете патч, обязательно используйте параметр -c или -u вместе с командой diff(1) для создания контекстного или унифицированного diff-файла (унифицированный формат предпочтителен), и обязательно укажите точные номера версий CVS файлов, которые вы изменяли, чтобы разработчики, которые будут читать ваше сообщение, смогли легко его применить. Предпочтительным является патч относительно ветки CURRENT или HEAD CVS, поскольку весь новый код должен быть сначала оттестирован в -CURRENT. После завершения тестирования код будет интегрирован в ветвь STABLE.
Если вы вставляете патч в тело сообщения, учтите, что некоторые почтовые программы имеют тенденцию заменять табуляции серией пробелов, что полностью разрушит, например, часть файла сборки (Makefile).
Следует также заметить, что включение небольших патчей в сообщение о проблеме является приемлемой практикой, в особенности если они решают проблему, описанную в сообщении, большие же патчи, а в особенности новый код, который может требовать значительного просмотра перед тем, как он будет внесен в дерево исходных текстов, должны быть размещены на web- или ftp-сервере, а в сообщение о проблеме должен быть включён только URL указывающий на этот патч. Очень часто патчи, пересылаемые по электронной почте, а в особенности если задействована GNATS, бывают искажены, и, как следствие, чем больше патч, тем труднее будет для заинтересованных людей привести его к нормальному виду. Также то, что патч будет размещён отдельно от сообщения о проблеме, даёт возможность изменять его не отсылая полный патч в дополнение к изначальному сообщению о проблеме.
Вы должны также помнить, что пока вы явно не укажете обратного в вашем сообщении о проблеме или в самих патчах, будет предполагаться, что они подпадают под те же условия лицензирования, что и оригинальный файл, измененный вами.
После запуска утилиты send-pr(1) вам будет представлен шаблон сообщения о проблеме. Шаблон состоит из списка полей, некоторые из которых уже заполнены, а некоторые содержат комментарии, объясняющие назначение поля или перечисляющие подходящие значения. Не беспокойтесь о комментариях; они будут автоматически удалены, если вы их не изменяли (или удалите их сами).
Вверху шаблона, ниже строк SEND-PR: находятся заголовки почтового сообщения. Вам обычно не нужно их изменять, если только вы не посылаете сообщение о проблеме с машины или от учетной записи, которая может посылать, но не может получать электронную почту, в случае чего вы можете задать в полях From: и Reply-To: ваши реальные адреса электронной почты. Вы можете также послать самому себе (или кому-то еще) копию сообщения о проблеме, добавив один или большее количество адресов к заголовку Cc:.
Далее следует последовательности однострочных полей:
Submitter-Id: Не меняйте его. Значение по умолчанию current-users правильно, даже если вы используете FreeBSD-STABLE.
Originator: Обычно оно заполнено полем дополнительной информации учетной записи пользователя. Пожалуйста, укажите ваше реальное имя, за которым опционально следует адрес вашей электронной почты в угловых скобках.
Organization: Все, что вы захотите здесь указать. Это поле не содержит значительной информации.
Confidential: Предварительно заполнено как no, его изменение не имеет значения, так как нет такого понятия, как конфиденциальное сообщение о проблеме--база данных PR распространяется по всему миру посредством CVSup.
Synopsis: Заполняется кратким и точным описанием проблемы. Краткое описание используется в качестве темы сообщения электронной почты о проблеме, и используется при выдаче списков и выборках сообщений о проблемах; сообщения о проблемах с непонятными краткими описаниями чаще всего игнорируются.
Повторим: если к вашему сообщению о проблеме приложен патч, то, пожалуйста, начните краткое описание с [patch]; если вы являетесь ответственным за данную часть кода или порт, можете начать описание с [maintainer update] и/или установить класс проблемы (поле ``Class'') в maintainer-update.
Severity: Одно из non-critical, serious или critical. Не переусердствуйте; избегайте пометки вашей проблемы как critical, если только это не действительно критичная проблема (к примеру, уязвимость пользователя root, легко воспроизводимый останов системы). Разработчики чаще всего игнорируют это и следующее поля, и именно потому, что посылающие слишком часто переоценивают критичность своих проблем.
Priority: Одно из low, medium или high. Смотрите выше.
Category: Выберите одно из следующего:
advocacy: проблемы, связанные с общественным мнением о FreeBSD. Используется редко.
alpha: проблемы, специфичные для платформы Alpha.
amd64: проблемы, специфичные для платформы AMD64.
bin: проблемы с пользовательскими программами из базовой системы.
conf: проблемы с файлами настройки, используемыми по умолчанию значениями и прочее.
docs: проблемы со страницами справочной системы или онлайновой документацией.
gnu: проблемы с программным обеспечением GNU, таким как gcc(1) или grep(1).
i386: проблемы, специфичные для платформы i386™.
ia64: проблемы, специфичные для платформы ia64.
java: проблемы, связанные с Java™.
kern: проблемы с ядром.
misc: все, что не подпадает ни под какую другую категорию (Надо отметить, что проблемы этой категории имеют тенденцию теряться легче всего).
ports: проблемы, связанные с деревом портов.
powerpc: проблемы, специфичные для платформы PowerPC®.
sparc64: проблемы, специфичные для платформы Sparc64®.
standards: проблемы, связанные с соответствием стандартам.
www: изменения или улучшения сайта FreeBSD
Class: Выберите одно из следующего:
sw-bug: ошибки в программном обеспечении.
doc-bug: ошибки в документации.
change-request: запросы на расширение функций или изменение в существующих.
update: обновления портов или другого программного обеспечения сторонних разработчиков.
maintainer-update: обновления в портах, для которых вы являетесь ответственной персоной.
Release: Используемая вами версия FreeBSD. Оно заполняется автоматически программой send-pr(1) и требует изменения, если только вы отсылаете сообщение о проблеме с системы, отличающейся от той, где вы столкнулись с проблемой.
И наконец, последовательность многострочных полей:
Environment: Оно должно максимально точно описывать окружение, в котором встречается проблема. Сюда включается версия операционной системы, версия конкретной программы или файла, содержащего проблему, и любая другая информация, такая, как конфигурация системы, другое программное обеспечение, которое влияет на проблему, и так далее--просто все, что разработчик должен знать для создания условий появления проблемы.
Description: Полное и точное описание проблемы, с которой вы столкнулись. Попытайтесь избежать своих предположений о причинах проблемы, если только вы не уверены, что правы, так как вы можете привести разработчика к неправильным предположениям о проблеме.
How-To-Repeat: Последовательность действий, которые должны быть выполнены для повторения проблемы.
Fix: Предпочтителен патч, или по крайней мере обходной путь (который не только поможет другим людям обойти ту же самую проблему, но также поможет разработчику понять ее причины), однако если у вас нет никаких здравых идей, то лучше оставить это поле пустым, чем строит догадки.
Как только вы заполните шаблон, сохраните его и выйдете из редактора, 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>.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |