Initial import, synchronized with English 1.28
This commit is contained in:
parent
27e37eae9d
commit
e895d25f78
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=19489
1 changed files with 747 additions and 0 deletions
747
ru_RU.KOI8-R/articles/problem-reports/article.sgml
Normal file
747
ru_RU.KOI8-R/articles/problem-reports/article.sgml
Normal file
|
@ -0,0 +1,747 @@
|
||||||
|
<!--
|
||||||
|
The FreeBSD Russian Documentation Project
|
||||||
|
|
||||||
|
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/problem-reports/article.sgml,v 1.7 2003/12/31 10:36:04 marck Exp $
|
||||||
|
|
||||||
|
Original revision: 1.28
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||||
|
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
|
||||||
|
%man;
|
||||||
|
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//RU">
|
||||||
|
%mailing-lists;
|
||||||
|
<!ENTITY % trademarks PUBLIC "-//FreeBSD//ENTITIES DocBook Trademark Entities//EN">
|
||||||
|
%trademarks;
|
||||||
|
]>
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<articleinfo>
|
||||||
|
<title>Составление сообщений о проблеме во FreeBSD</title>
|
||||||
|
|
||||||
|
<pubdate>$FreeBSD$</pubdate>
|
||||||
|
|
||||||
|
<legalnotice id="trademarks" role="trademarks">
|
||||||
|
&tm-attrib.freebsd;
|
||||||
|
&tm-attrib.cvsup;
|
||||||
|
&tm-attrib.ibm;
|
||||||
|
&tm-attrib.intel;
|
||||||
|
&tm-attrib.sparc;
|
||||||
|
&tm-attrib.sun;
|
||||||
|
&tm-attrib.general;
|
||||||
|
</legalnotice>
|
||||||
|
|
||||||
|
<abstract>
|
||||||
|
<para>Эта статья описывает, как наилучшим образом сформулировать и
|
||||||
|
послать сообщение о проблеме в Проект FreeBSD.</para>
|
||||||
|
</abstract>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Dag-Erling</firstname>
|
||||||
|
<surname>Smørgrav</surname>
|
||||||
|
<contrib>Текст предоставил</contrib>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
</articleinfo>
|
||||||
|
|
||||||
|
<indexterm><primary>сообщения о проблемах</primary></indexterm>
|
||||||
|
|
||||||
|
<section id="pr-intro">
|
||||||
|
<title>Введение</title>
|
||||||
|
|
||||||
|
<para>Одной из самых разочаровывающим практик, которую можно получить в
|
||||||
|
качестве пользователя программного обеспечения, является посылка
|
||||||
|
сообщения о проблеме, которое вскоре закрывается с кратким и ничему не
|
||||||
|
помогающим объяснением типа <quote>это не ошибка</quote> или
|
||||||
|
<quote>неправильное PR</quote>. Подобным же образом одной из самых
|
||||||
|
разочаровывающим практик, которую можно получить в качестве разработчика
|
||||||
|
программного обеспечения, является получение массы сообщений о проблемах,
|
||||||
|
которые на самом деле не являются сообщениями о проблемах, а запросами на
|
||||||
|
получение поддержки, или которые содержат мало или вообще не содержат
|
||||||
|
никакой информации о сути проблемы или способе ее воспроизвести.</para>
|
||||||
|
|
||||||
|
<para>В этом документе делается попытка описать то, как составлять хорошие
|
||||||
|
сообщения о проблемах. Что же, спросите вы, является хорошим сообщением
|
||||||
|
об ошибке? Ну, если перейти прямо к сути, то хорошим сообщением об
|
||||||
|
ошибке является то, которое может быть быстро проанализировано и
|
||||||
|
отработано, к обоюдному удовлетворению как пользователя, так и
|
||||||
|
разработчика.</para>
|
||||||
|
|
||||||
|
<para>Хотя в основном статья фокусируется на сообщениях о проблемах во
|
||||||
|
FreeBSD, большей частью она должна хорошо подходить и другим программным
|
||||||
|
проектам.</para>
|
||||||
|
|
||||||
|
<para>Заметьте, что эта статья организована по тематическому принципу, а
|
||||||
|
не хронологически, так что вы должны прочесть документ целиком прежде,
|
||||||
|
чем посылать сообщение об ошибке, и не воспринимать его как пошаговое
|
||||||
|
руководство.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-when">
|
||||||
|
<title>Когда нужно посылать сообщение об ошибке</title>
|
||||||
|
|
||||||
|
<para>Имеется много классов ошибок, и не все они должны приводить к
|
||||||
|
появлению сообщения о проблеме. Конечно же, нет идеальных людей, и
|
||||||
|
будут моменты, когда вы решите, что нашли ошибку в программе, а на самом
|
||||||
|
деле вы неправильно поняли синтаксис команды или сделали опечатку в
|
||||||
|
конфигурационном файле (хотя само по себе это иногда говорит о плохой
|
||||||
|
документации или неправильной обработке ошибок в прикладной программе).
|
||||||
|
Есть еще много случаев, когда посылка сообщения об ошибке явно <emphasis>не</emphasis>
|
||||||
|
является правильным действием, а только приводит к разочарованию вас и
|
||||||
|
разработчиков. И наоборот, есть случаи, когда может быть нужно послать
|
||||||
|
сообщение о чем-то, не являющемся ошибкой—к примеру, запрос на
|
||||||
|
доработку или расширение функциональности.</para>
|
||||||
|
|
||||||
|
<para>Но как же определить, что является ошибкой, а что нет? Простым
|
||||||
|
правилом, которому нужно следовать, является следующее - ваша проблема
|
||||||
|
<emphasis>не</emphasis> является ошибкой, если она формулируется как
|
||||||
|
вопрос (обычно в форме <quote>Как сделать X?</quote> или <quote>Где можно
|
||||||
|
найти Y?</quote>). Не всегда это так однозначно, но правило вопроса
|
||||||
|
покрывает большинство случаев. Если Вам нужен ответ, лучше всего задать
|
||||||
|
свой вопрос в &a.questions;.</para>
|
||||||
|
|
||||||
|
<para>Вот некоторые случаи, в которых может оказаться полезным послать
|
||||||
|
сообщение о чем-то, что не является ошибкой:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Запросы на расширение функций. Обычно хорошей идеей является
|
||||||
|
озвучивание этого в списках рассылки до того, как посылать сообщение
|
||||||
|
о проблеме.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Уведомление об обновлении программного обеспечения, которое
|
||||||
|
поддерживается сторонними разработчиками (в основном порты, но также
|
||||||
|
и компоненты базовой системы, разрабатываемые сторонними
|
||||||
|
организациями, такие, как BIND или различные утилиты GNU).</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>Кроме того, если система, на которой вы столкнулись с ошибкой, давно
|
||||||
|
не обновлялась, вы должны серьезно подумать об обновлении и попытаться
|
||||||
|
воспроизвести проблему на обновленной системе прежде, чем посылать
|
||||||
|
сообщение об ошибке. Есть лишь несколько вещей, которые выводят из
|
||||||
|
себя разработчика больше, чем получение сообщений об уже исправленных
|
||||||
|
ею ошибках.</para>
|
||||||
|
|
||||||
|
<para>И наконец, ошибка, которую нельзя воспроизвести, вряд ли будет
|
||||||
|
исправлена. Если ошибка возникла только единожды, и вы не можете ее
|
||||||
|
воспроизвести, к тому же никто с ней больше не сталкивался, нет никаких
|
||||||
|
шансов, что разработчики смогут ее воспроизвести или понять, что делается
|
||||||
|
неправильно. Это не значит, что такого не случается, но это значит, что
|
||||||
|
шансов у вашего сообщения дойти когда либо до стадии исправления ошибки
|
||||||
|
очень малы, и вам лучше его не посылать.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-prep">
|
||||||
|
<title>Подготовка</title>
|
||||||
|
|
||||||
|
<para>Нужно следовать хорошему правилу всегда сначала выполнять
|
||||||
|
дополнительные исследования перед тем, как послать сообщение о проблеме.
|
||||||
|
Может быть, о вашей проблеме уже сообщено; может быть, она недавно
|
||||||
|
обсуждалась или обсуждается в списках рассылки; она может быть уже
|
||||||
|
исправлена в более новой версии, чем та, что вы используете. Поэтому вы
|
||||||
|
должны проверить все обычные места до того, как послать ваше сообщение о
|
||||||
|
проблеме. Для FreeBSD это значит:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>FreeBSD
|
||||||
|
<ulink URL="../../books/faq/index.html">FAQ</ulink>
|
||||||
|
(Ответы на часто задаваемые вопросы).
|
||||||
|
FAQ содержит ответы на вопросы из самых разных категорий,
|
||||||
|
в частности,
|
||||||
|
<ulink URL="../../books/faq/hardware.html">аппаратной
|
||||||
|
совместимости</ulink>,
|
||||||
|
<ulink URL="../../books/faq/applications.html">пользовательских
|
||||||
|
программ</ulink>
|
||||||
|
и <ulink URL="../../books/faq/kernelconfig.html">конфигурации
|
||||||
|
ядра</ulink>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><ulink
|
||||||
|
URL="../../books/handbook/eresources.html#ERESOURCES-MAIL">Списки
|
||||||
|
рассылки</ulink>—если Вы не подписаны на них, воспользуйтесь
|
||||||
|
<ulink
|
||||||
|
URL="http://www.FreeBSD.org/search/search.html#mailinglists">поиском
|
||||||
|
в архивах</ulink> на сайте FreeBSD. Если ваша проблема не
|
||||||
|
обсуждалась в списках рассылки, вы можете попытаться опубликовать
|
||||||
|
сообщение о ней и подождать несколько дней, пока кто-нибудь не сможет
|
||||||
|
увидеть то, что вы не заметили.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Как вариант, весь веб—используйте вашу любимую поисковую
|
||||||
|
систему для нахождения каких-либо ссылок на вашу проблему. Вы можете
|
||||||
|
даже увидеть ссылки на архивы списков рассылки или телеконференций, о
|
||||||
|
которых вы не знали или не думали там искать.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Следующим пунктом должна быть
|
||||||
|
<ulink URL="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query">
|
||||||
|
база данных PR FreeBSD</ulink> (GNATS). Если только ваша проблема не
|
||||||
|
нова или редка, есть некоторый шанс, что о ней уже сообщено.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Наконец, если вы обновляли версию системы (в особенности, если
|
||||||
|
вы обновляете ветку <literal>-current</literal>), вам следует
|
||||||
|
тщательно изучить содержимое файла
|
||||||
|
<filename>/usr/src/UPDATING</filename> или его текущую версию по адресу
|
||||||
|
<ulink URL="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/UPDATING"></ulink>.
|
||||||
|
Этот файл содержит немало жизненно важной информации.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>Теперь вам нужно добиться того, чтобы ваше сообщение о проблеме
|
||||||
|
попало в нужные руки.</para>
|
||||||
|
|
||||||
|
<para>Здесь первым правилом будет то, что если проблема является ошибкой в
|
||||||
|
программном обеспечении сторонних разработчиков (порт или пакадж, которые
|
||||||
|
вы установили), то вы должны сообщить об ошибке автору программы, а не в
|
||||||
|
Проект FreeBSD. Есть два исключения из этого правила: во-первых, если
|
||||||
|
ошибка не проявляется на других платформах, то в этом случае проблема
|
||||||
|
может заключаться в том, как программное обеспечение было перенесено на
|
||||||
|
FreeBSD; во-вторых, если автор уже исправил ошибку и выпустил патч или
|
||||||
|
новую версию своей программы, а порт FreeBSD еще не был обновлен.</para>
|
||||||
|
|
||||||
|
<para>Вторым правилом является то, что система отслеживания ошибок FreeBSD
|
||||||
|
сортирует сообщения о проблеме в соответствии с категорией, выбранной
|
||||||
|
тем, кто сообщает о проблеме. Таким образом, если вы выберите
|
||||||
|
неправильную категорию при посылке сообщения о проблеме, есть большая
|
||||||
|
вероятность, что оно будет незамеченно до тех пор, пока кто-нибудь не
|
||||||
|
сменит у него категорию.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-writing">
|
||||||
|
<title>Написание сообщения о проблеме</title>
|
||||||
|
|
||||||
|
<para>Теперь, после того, как вы решили, что ваш вопрос подпадает под
|
||||||
|
категорию сообщения о проблеме, и это проблема FreeBSD, самое время
|
||||||
|
написать собственно сообщение о проблеме (PR). Прежде чем мы углубимся
|
||||||
|
в частности использования программы для создания и отправки PR, вот
|
||||||
|
несколько советов, которые помогут вам сделать PR более эффективным.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Как писать хорошие сообщения о проблемах</title>
|
||||||
|
<itemizedlist>
|
||||||
|
<!-- marck: RU-specific -->
|
||||||
|
<listitem>
|
||||||
|
<para>Основным языком общения разработчиков FreeBSD является
|
||||||
|
английский. База данных по проблемам также ведется на английском.
|
||||||
|
Если вы испытываете проблемы с формулировкой описания проблемы
|
||||||
|
по-английски, свяжитесь со своими соотечественниками, которые
|
||||||
|
помогут вам составить PR.</para> <!-- XXX URLs!!? -->
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Не оставляйте поле <quote>Synopsis</quote>
|
||||||
|
(краткое описание) пустым.</emphasis> Сообщения о проблемах
|
||||||
|
попадают как в списки рассылки, которые затем расходятся по всему
|
||||||
|
миру (в них поле <quote>Synopsis</quote> определяет тему письма),
|
||||||
|
так и в базу данных. Просматривающий эту базу, как правило,
|
||||||
|
пройдет мимо PR с пустым кратким описанием. Не забудьте, что PR
|
||||||
|
остается в базе до тех пор, пока кто-либо не закроет его;
|
||||||
|
сообщение-аноним, скорее всего, просто потеряется на общем
|
||||||
|
фоне.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Не оставляйте поле <quote>Synopsis</quote>
|
||||||
|
(краткое описание) пустым.</emphasis> Сообщения о проблемах
|
||||||
|
попадают как в списки рассылки, которые затем расходятся по всему
|
||||||
|
миру (в них поле <quote>Synopsis</quote> определяет тему письма),
|
||||||
|
так и в базу данных. Просматривающий эту базу, как правило,
|
||||||
|
пройдет мимо PR с пустым кратким описанием. Не забудьте, что PR
|
||||||
|
остается в базе до тех пор, пока кто-либо не закроет его;
|
||||||
|
сообщение-аноним, скорее всего, просто потеряется на общем
|
||||||
|
фоне.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Избегайте туманных описаний в поле
|
||||||
|
<quote>Synopsis</quote></emphasis>. Не стоит предполагать, что
|
||||||
|
читающий ваше сообщение владеет контекстом; поэтому, чем подробнее
|
||||||
|
вы опишете ситуацию, тем лучше. В частности, к какой части системы
|
||||||
|
относится ваша проблема? Проявляется ли она на этапе установки или
|
||||||
|
во время нормальной работы? Например, вместо строки
|
||||||
|
<literal>Synopsis: portupgrade is broken</literal> следовало бы
|
||||||
|
написать что-то вроде <literal>Synopsis: port sysutils/portupgrade
|
||||||
|
coredumps on -current</literal>. В случае портированных приложений
|
||||||
|
в поле <quote>Synopsis</quote> полезно указывать не только имя
|
||||||
|
порта, но и категорию.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Если у вас есть готовый патч, скажите об
|
||||||
|
этом.</emphasis> PR, содержащий патч, имеет куда больше шансов
|
||||||
|
быть рассмотренным. В этом случае добавьте строку
|
||||||
|
<literal>[patch]</literal> в начало поля <quote>Synopsis</quote>
|
||||||
|
(хотя использование именно этой формы необязательно, она является
|
||||||
|
стандартом де-факто).</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Если вы ведете фрагмент кода, сообщите об
|
||||||
|
этом.</emphasis> Если вы—ответственная персона, можете
|
||||||
|
добавить в начало поля <quote>Synopsis</quote> строку
|
||||||
|
<literal>[maintainer update]</literal>, а также установить класс
|
||||||
|
вашего сообщения (поле <quote>Class</quote>) в
|
||||||
|
<literal>maintainer-update</literal>. В этом случае коммиттеру,
|
||||||
|
обрабатывающему ваш PR, не придется лишний раз сверяться с файлом
|
||||||
|
<filename>Makefile</filename>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Будьте точны в формулировках.</emphasis>
|
||||||
|
Чем больше информации вы можете предоставить о проблеме, тем больше
|
||||||
|
у вас шансов получить ответ. Например, следует предоставить
|
||||||
|
информацию о версии системы, на которой вы работаете (для этого
|
||||||
|
предназначено специальное поле, см. ниже), о платформе, работаете ли
|
||||||
|
вы на версии с CD-ROM или обновлялись посредством &man.cvsup.1;
|
||||||
|
(если да, то укажите момент обновления). В случае проблем с ядром
|
||||||
|
укажите, что вы прочли файл <literal>src/UPDATING</literal>, иначе
|
||||||
|
кто-нибудь обязательно спросит, делали ли вы это. Нет
|
||||||
|
необходимости сразу предоставлять файл конфигурации ядра, список
|
||||||
|
установленных портов и/или образ памяти; однако, вы должны быть
|
||||||
|
готовы выслать или предоставить их по запросу.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Избегайте нечетких запросов о новых
|
||||||
|
возможностях.</emphasis> Сообщение типа <quote>кто-то обязательно
|
||||||
|
должен сделать так, чтобы такая-то утилита вела себя так-то</quote>
|
||||||
|
имеет куда меньше шансов встретить позитивный отклик, чем более
|
||||||
|
четко сформулированный запрос. Помните, что исходные тексты
|
||||||
|
доступны всем, так что если вам нужна реализация какого-то нового
|
||||||
|
свойства, лучший способ— взяться за работу самому! Не
|
||||||
|
забудьте также, что такие моменты лучше обсуждать в списках
|
||||||
|
рассылки, таких как <literal>freebsd-questions</literal>, чем
|
||||||
|
делать это посредством базы данных PR.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Убедитесь, что ваша проблема еще никем не описана.
|
||||||
|
</emphasis> Мы уже говорили об этом, но стоит повториться.
|
||||||
|
Потратьте пару минут на составление запросов к базе PR:
|
||||||
|
<ulink URL="http://www.FreeBSD.org/cgi/query-pr-summary.cgi?query"></ulink>.
|
||||||
|
(Несмотря на повторы, об этом постоянно забывают)</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Избегайте полемики.</emphasis>
|
||||||
|
Если ваше сообщение касается области или способов реализации,
|
||||||
|
которые ранее вызвали разногласия, вам стоит быть готовым
|
||||||
|
предоставить не только патчи, но и внятные аргументы, почему
|
||||||
|
следует поступать именно так (то есть, это <quote>Правильный
|
||||||
|
Путь</quote>). Как отмечалось выше, аккуратный поиск по архиву
|
||||||
|
списков рассылки
|
||||||
|
<ulink URL="http://www.FreeBSD.org/search/search.html#mailinglists"></ulink>
|
||||||
|
никогда не помешает.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Будьте вежливы.</emphasis>
|
||||||
|
Почти каждый из тех, кто может заниматься вашим сообщением,
|
||||||
|
является добровольцем. Никому не понравятся указания, как и что
|
||||||
|
делать, когда он и так занимается этим, да еще и по каким-либо
|
||||||
|
причинам, отличным от денежных. Вообще говоря, этого подхода
|
||||||
|
следует придерживаться, имея дело с любым проектом с Открытыми
|
||||||
|
Исходными текстами (Open Source).</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Прежде всего</title>
|
||||||
|
|
||||||
|
<para>Перед запуском утилиты &man.send-pr.1; проверьте, что переменная
|
||||||
|
вашего окружения <envar>VISUAL</envar> (или <envar>EDITOR</envar>, если
|
||||||
|
<envar>VISUAL</envar> не задана) задана подходящим образом.</para>
|
||||||
|
|
||||||
|
<para>Следует также проверить, что от вас нормально ходит электронная
|
||||||
|
почта. Утилита &man.send-pr.1; генерит ваш PR в виде почтового
|
||||||
|
сообщения. Если с машины, на которой вы запускаете &man.send-pr.1;,
|
||||||
|
нельзя отправить почту, ваше сообщение не дойдет до базы данных GNATS.
|
||||||
|
Об установках электронной почты в FreeBSD можно прочитать в главе
|
||||||
|
<quote>Электронная почта</quote> в Руководстве по FreeBSD по адресу
|
||||||
|
<ulink URL="http://www.FreeBSD.org/doc/ru_RU.KOI8-R/books/handbook/mail.html"></ulink>.
|
||||||
|
</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Вложение патчей или файлов</title>
|
||||||
|
|
||||||
|
<para>Программа &man.send-pr.1; предусматривает присоединение файлов к
|
||||||
|
сообщению о проблеме. Вы можете вложить сколько угодно файлов, но
|
||||||
|
каждый с уникальным именем (имеется в виду имя файла без маршрута).
|
||||||
|
Просто используйте параметр командной строки <option>-a</option> для
|
||||||
|
задания имен файлов, которые вы хотите присоединить:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>send-pr -a /var/run/dmesg -a /tmp/errors</userinput></screen>
|
||||||
|
|
||||||
|
<para>Не беспокойтесь о бинарных файлах, они будут автоматически
|
||||||
|
перекодированы для того, чтобы не повредить работе вашей почтовой
|
||||||
|
программы.</para>
|
||||||
|
|
||||||
|
<para>Если вы вкладываете патч, обязательно используйте параметр
|
||||||
|
<option>-c</option> или <option>-u</option> вместе с командой
|
||||||
|
&man.diff.1; для создания контекстного или унифицированного diff-файла
|
||||||
|
(унифицированный формат предпочтителен),
|
||||||
|
и обязательно укажите точные номера версий CVS файлов, которые вы
|
||||||
|
изменяли, чтобы разработчики, которые будут читать ваше сообщение,
|
||||||
|
смогли легко его применить. Предпочтительным является патч
|
||||||
|
относительно ветки CURRENT или HEAD CVS, поскольку весь новый код
|
||||||
|
должен быть сначала оттестирован в -CURRENT. После завершения
|
||||||
|
тестирования код будет интегрирован в ветвь STABLE.</para>
|
||||||
|
|
||||||
|
<para>Если вы вставляете патч в тело сообщения, учтите, что некоторые
|
||||||
|
почтовые программы имеют тенденцию заменять табуляции серией пробелов,
|
||||||
|
что полностью разрушит, например, часть файла сборки (Makefile).</para>
|
||||||
|
|
||||||
|
<para>Следует также заметить, что включение небольших патчей в сообщение о
|
||||||
|
проблеме является приемлемой практикой, в особенности если они решают
|
||||||
|
проблему, описанную в сообщении, большие же патчи, а в особенности
|
||||||
|
новый код, который может требовать значительного просмотра перед тем,
|
||||||
|
как он будет внесен в дерево исходных текстов, должны быть размещены на
|
||||||
|
web- или ftp-сервере, а в сообщение о проблеме должен быть включён
|
||||||
|
только URL указывающий на этот патч. Очень часто патчи, пересылаемые по
|
||||||
|
электронной почте, а в особенности если задействована GNATS, бывают
|
||||||
|
искажены, и, как следствие, чем больше патч, тем труднее будет для
|
||||||
|
заинтересованных людей привести его к нормальному виду. Также то, что
|
||||||
|
патч будет размещён отдельно от сообщения о проблеме, даёт возможность
|
||||||
|
изменять его не отсылая полный патч в дополнение к изначальному
|
||||||
|
сообщению об ошибке.</para>
|
||||||
|
|
||||||
|
<para>Вы должны также помнить, что пока вы явно не укажете обратного в
|
||||||
|
вашем сообщении о проблеме или в самих патчах, будет предполагаться,
|
||||||
|
что они подпадают под те же условия лицензирования, что и оригинальный
|
||||||
|
файл, измененный вами.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Заполнение шаблона</title>
|
||||||
|
|
||||||
|
<para>После запуска утилиты &man.send-pr.1; вам будет представлен шаблон
|
||||||
|
сообщения о проблеме.
|
||||||
|
Шаблон состоит из списка полей, некоторые из которых уже заполнены,
|
||||||
|
а некоторые содержат комментарии, объясняющие назначение поля или
|
||||||
|
перечисляющие подходящие значения. Не беспокойтесь о комментариях; они
|
||||||
|
будут автоматически удалены, если вы их не изменяли, или удалите их
|
||||||
|
сами.</para>
|
||||||
|
|
||||||
|
<para>Вверху шаблона, ниже строк <literal>SEND-PR:</literal> находятся
|
||||||
|
заголовки почтового сообщения. Вам обычно не нужно их изменять, если
|
||||||
|
только вы не посылаете сообщение о проблеме с машины или от учетной
|
||||||
|
записи, которая может посылать, но не может получать электронную почту,
|
||||||
|
в случае чего вы можете задать в полях <literal>From:</literal> и
|
||||||
|
<literal>Reply-To:</literal> ваши реальные адреса электронной почты.
|
||||||
|
Вы можете также послать самому себе (или кому-то еще) копию сообщения
|
||||||
|
о проблеме, добавив один или большее количество адресов к заголовку
|
||||||
|
<literal>Cc:</literal>.</para>
|
||||||
|
|
||||||
|
<para>Далее следует последовательности однострочных полей:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Submitter-Id:</emphasis> Не меняйте его. Значение
|
||||||
|
по умолчанию <literal>current-users</literal> правильно, даже если
|
||||||
|
вы используете FreeBSD-STABLE.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Originator:</emphasis> Обычно оно заполнено полем
|
||||||
|
дополнительной информации учетной записи пользователя. Пожалуйста,
|
||||||
|
укажите ваше реальное имя, за которым опционально следует адрес
|
||||||
|
вашей электронной почты в угловых скобках.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Organization:</emphasis> Все, что вы захотите здесь
|
||||||
|
указать. Это поле не используется ни для чего серьезного.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Confidential:</emphasis> Предварительно заполнено как
|
||||||
|
<literal>no</literal>, его изменение не имеет значения, так как нет
|
||||||
|
такого понятия, как конфиденциальное сообщение о
|
||||||
|
проблеме—база данных PR распространяется по всему миру
|
||||||
|
посредством <application>CVSup</application>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Synopsis:</emphasis> Заполняется кратким и точным
|
||||||
|
описанием проблемы. Краткое описание используется в качестве темы
|
||||||
|
сообщения электронной почты о проблеме, и используется при выдаче
|
||||||
|
списков и выборках сообщений о проблемах; сообщения о проблемах с
|
||||||
|
непонятными краткими описаниями чаще всего игнорируются.</para>
|
||||||
|
|
||||||
|
<para>Повторим: если к вашему сообщению о проблеме приложен патч,
|
||||||
|
то, пожалуйста, начните краткое описание с
|
||||||
|
<literal>[PATCH]</literal>; если вы являетесь ответственным за
|
||||||
|
данную часть кода или порт, можете начать описание с
|
||||||
|
<literal>[maintainer update]</literal> и/или установить класс
|
||||||
|
проблемы (поле <quote>Class</quote>) в
|
||||||
|
<literal>maintainer-update</literal>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Severity:</emphasis> Одно из
|
||||||
|
<literal>non-critical</literal>,
|
||||||
|
<literal>serious</literal> или <literal>critical</literal>. Не
|
||||||
|
переусердствуйте; избегайте пометки вашей проблемы как
|
||||||
|
<literal>critical</literal>, если только это не действительно
|
||||||
|
критичная проблема (к примеру, уязвимость пользователя <username>root</username>, легко
|
||||||
|
воспроизводимый останов системы). Разработчики чаще всего
|
||||||
|
игнорируют это и следующее поля, и именно потому, что посылающие
|
||||||
|
слишком часто переоценивают критичность своих проблем.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Priority:</emphasis> Одно из
|
||||||
|
<literal>low</literal>, <literal>medium</literal> или
|
||||||
|
<literal>high</literal>. Смотрите выше.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Category:</emphasis> Выберите одно из
|
||||||
|
следующего:</para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><literal>advocacy:</literal> проблемы, связанные с
|
||||||
|
общественным мнением о FreeBSD. Используется редко.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>alpha:</literal> проблемы, специфичные для
|
||||||
|
платформы Alpha.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>amd64:</literal> проблемы, специфичные для
|
||||||
|
платформы AMD64.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>bin:</literal> проблемы с пользовательскими
|
||||||
|
программами из базовой системы.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>conf:</literal> проблемы с настроечными файлами,
|
||||||
|
используемыми по умолчанию значениями и прочее.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>docs:</literal> проблемы со страницами справочной
|
||||||
|
системы или онлайновой документацией.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>gnu:</literal> проблемы с программным обеспечением
|
||||||
|
GNU, таки, как &man.gcc.1; или &man.grep.1;.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>i386:</literal> проблемы, специфичные для
|
||||||
|
платформы &i386;.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>ia64:</literal> проблемы, специфичные для
|
||||||
|
платформы ia64.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>java:</literal> проблемы, связанные с &java;.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>kern:</literal> проблемы с ядром.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>misc:</literal> все, что не подпадает ни под какую
|
||||||
|
другую категорию (Надо отметить, что проблемы этой категории
|
||||||
|
имеют тенденцию теряться легче всего).</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>ports:</literal> проблемы, связанные с деревом
|
||||||
|
портов.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>powerpc:</literal> проблемы, специфичные для
|
||||||
|
платформы &powerpc;.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>sparc64:</literal> проблемы, специфичные для
|
||||||
|
платформы &sparc64;.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>standards:</literal> проблемы, связанные с
|
||||||
|
соответствием стандартам.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>www:</literal> изменения или улучшения сайта
|
||||||
|
FreeBSD </para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Class:</emphasis> Выберите одно из следующего:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><literal>sw-bug:</literal> ошибки в программном
|
||||||
|
обеспечении.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>doc-bug:</literal> ошибки в документации.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>change-request:</literal> запросы на расширение
|
||||||
|
функций или изменение в существующих.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>update:</literal> обновления портов или другого
|
||||||
|
программного обеспечения сторонних разработчиков.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>maintainer-update:</literal> обновления в портах,
|
||||||
|
для которых вы являетесь ответственной персоной.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Release:</emphasis> Используемая вами версия FreeBSD.
|
||||||
|
Оно заполняется автоматически программой &man.send-pr.1; и требует
|
||||||
|
изменения, если только вы отсылаете сообщение о проблеме с системы,
|
||||||
|
отличающейся от той, где вы столкнулись с проблемой.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>И наконец, последовательность многострочных полей:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Environment:</emphasis> Оно должно максимально точно
|
||||||
|
описывать окружение, в котором встречается проблема. Сюда
|
||||||
|
включается версия операционной системы, версия конкретной программы
|
||||||
|
или файла, содержащего проблему, и любая другая информация, такая,
|
||||||
|
как конфигурация системы, другое программное обеспечение, которое
|
||||||
|
влияет на проблему, и так далее—просто все, что разработчик
|
||||||
|
должен знать для создания условий появления проблемы.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Description:</emphasis> Полное и точное описание
|
||||||
|
проблемы, с которой вы столкнулись. Попытайтесь избежать своих
|
||||||
|
предположений о причинах проблемы, если только вы не
|
||||||
|
уверены, что правы, так как разработчик может сделать неправильные
|
||||||
|
предположения о проблеме.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>How-To-Repeat:</emphasis> Последовательность
|
||||||
|
действий, которые должны быть выполнены для повторения
|
||||||
|
проблемы.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis>Fix:</emphasis> Предпочтителен патч, или по крайней
|
||||||
|
мере обходной путь (который не только поможет другим людям обойти
|
||||||
|
ту же самую проблему, но также поможет разработчику понять ее
|
||||||
|
причины), однако если у вас нет никаких здравых идей, то лучше
|
||||||
|
оставить это поле пустым, чем строит догадки.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section>
|
||||||
|
<title>Отсылка сообщения о проблеме</title>
|
||||||
|
|
||||||
|
<para>Как только вы заполните шаблон, сохраните его и выйдете из
|
||||||
|
редактора, &man.send-pr.1; запросит вас
|
||||||
|
<prompt>s)end, e)dit or a)bort?</prompt>. Вы можете нажать
|
||||||
|
<userinput>s</userinput> для продолжения и посылки сообщения о
|
||||||
|
проблеме, <userinput>e</userinput> для повторного запуска редактора и
|
||||||
|
выполнения дальнейших изменений, или <userinput>a</userinput> для
|
||||||
|
отказа от вашего сообщения. Если вы выберете последнее, то ваше
|
||||||
|
сообщение о проблеме останется на диске (&man.send-pr.1; укажет вам
|
||||||
|
имя файла перед завершением работы), так что вы сможете отредактировать
|
||||||
|
его на свой вкус или передать в систему с лучшим подключением к сети,
|
||||||
|
перед тем, как послать его при помощи параметра <option>-f</option>
|
||||||
|
программы &man.send-pr.1;:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>send-pr -f ~/my-problem-report</userinput></screen>
|
||||||
|
|
||||||
|
<para>При этом будет прочитан указанный файл, будет проверено содержимое,
|
||||||
|
убраны комментарии и сообщение будет отослано.</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-followup">
|
||||||
|
<title>Отслеживание</title>
|
||||||
|
|
||||||
|
<para>После того, как ваше сообщение будет принято, вы получите по
|
||||||
|
электронной почте уведомление, в котором будет указан номер для
|
||||||
|
отслеживания, который был назначен вашему сообщению о проблеме и URL,
|
||||||
|
который вы можете использовать для проверки его состояния. В случае
|
||||||
|
удачи кто-нибудь проявит интерес к вашей проблеме и попытается ее
|
||||||
|
решить, или, как это бывает, описать, почему это не является проблемой.
|
||||||
|
Вы будет автоматически оповещаться о любом изменении состояния и получать
|
||||||
|
копии всех комментариев или патчей, которые будут присоединяться в
|
||||||
|
процессе отработки вашего сообщения о проблеме.</para>
|
||||||
|
|
||||||
|
<para>Если кто-то запросит дополнительную информацию от вас, или вы
|
||||||
|
вспомните или обнаружите нечто, что не указали в начальном сообщении,
|
||||||
|
просто пошлите письмо на адрес <email>bug-followup@FreeBSD.org</email>,
|
||||||
|
включив отслеживаемый номер в теме, чтобы система отслеживания сообщений
|
||||||
|
могла знать, к какому сообщению о проблеме его присоединить.</para>
|
||||||
|
|
||||||
|
<para>Если сообщение о проблеме остается открытым после того, как проблема
|
||||||
|
была решена, просто пошлите сообщение вдогонку (так, как это описано
|
||||||
|
выше), в котором укажите, что сообщение о проблеме может быть закрыто, и
|
||||||
|
если это возможно, объясните, как и когда проблема была устранена.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-further">
|
||||||
|
<title>Дополнительная литература</title>
|
||||||
|
|
||||||
|
<para>Это список информационных ресурсов, относящихся к правильному
|
||||||
|
написанию и обработке сообщений о проблемах. Он, без сомнения, не
|
||||||
|
полон.</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><ulink
|
||||||
|
url="http://www.chiark.greenend.org.uk/~sgtatham/bugs.html">
|
||||||
|
How to Report Bugs Effectively</ulink>—прекрасное эссе, которое
|
||||||
|
написал Simon G. Tatham о составлении полезных (не специфичных для
|
||||||
|
FreeBSD) сообщений о проблемах.</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para><ulink url="../../articles/pr-guidelines/article.html">Problem
|
||||||
|
Report Handling Guidelines</ulink>—интересный взгляд на
|
||||||
|
обработку сообщений об ошибках самими разработчиками FreeBSD.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
</article>
|
Loading…
Reference in a new issue