Initial import, synchronized with English 1.14
This commit is contained in:
parent
31357b0446
commit
6185c87a6f
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=20123
1 changed files with 557 additions and 0 deletions
557
ru_RU.KOI8-R/articles/pr-guidelines/article.sgml
Normal file
557
ru_RU.KOI8-R/articles/pr-guidelines/article.sgml
Normal file
|
@ -0,0 +1,557 @@
|
||||||
|
<!--
|
||||||
|
The FreeBSD Russian Documentation Project
|
||||||
|
|
||||||
|
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/pr-guidelines/article.sgml,v 1.1 2004/02/06 16:59:32 andy Exp $
|
||||||
|
|
||||||
|
Original revision: 1.14
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Problem Report Handling Guidelines
|
||||||
|
The FreeBSD Project - http://www.FreeBSD.org
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!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 % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
|
||||||
|
%freebsd;
|
||||||
|
<!ENTITY % trademarks PUBLIC "-//FreeBSD//ENTITIES DocBook Trademark Entities//EN">
|
||||||
|
%trademarks;
|
||||||
|
<!ENTITY man.edit-pr.1 "<citerefentry/<refentrytitle/edit-pr/<manvolnum/1//">
|
||||||
|
<!ENTITY man.query-pr.1 "<citerefentry/<refentrytitle/query-pr/<manvolnum/1//">
|
||||||
|
]>
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<!-- :START of Article Metadata -->
|
||||||
|
<articleinfo>
|
||||||
|
<title>Рекомендации по работе с сообщениями о проблемах</title>
|
||||||
|
|
||||||
|
<pubdate>$FreeBSD$</pubdate>
|
||||||
|
|
||||||
|
<legalnotice id="trademarks" role="trademarks">
|
||||||
|
&tm-attrib.freebsd;
|
||||||
|
&tm-attrib.opengroup;
|
||||||
|
&tm-attrib.general;
|
||||||
|
</legalnotice>
|
||||||
|
|
||||||
|
<abstract>
|
||||||
|
<para>Это руководство описывает рекомендуемую практику обработки
|
||||||
|
сообщений об ошибках FreeBSD (Problem Reports - PR). Хотя эти
|
||||||
|
рекомендации предназначены для Группы поддержки базы данных сообщений
|
||||||
|
о проблемах FreeBSD (PR Database Maintenance Team)
|
||||||
|
<email>freebsd-bugbusters@FreeBSD.org</email>, им должны следовать все,
|
||||||
|
кто работает с этими сообщениями.</para>
|
||||||
|
</abstract>
|
||||||
|
|
||||||
|
<authorgroup>
|
||||||
|
<author>
|
||||||
|
<firstname>Dag-Erling</firstname>
|
||||||
|
|
||||||
|
<surname>Smørgrav</surname>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
<author>
|
||||||
|
<firstname>Hiten</firstname>
|
||||||
|
|
||||||
|
<surname>Pandya</surname>
|
||||||
|
</author>
|
||||||
|
</authorgroup>
|
||||||
|
</articleinfo>
|
||||||
|
<!-- :END of Article Metadata-->
|
||||||
|
|
||||||
|
<section id="intro">
|
||||||
|
<title>Введение</title>
|
||||||
|
|
||||||
|
<para>GNATS является системой управления неисправностями (сообщениями об
|
||||||
|
ошибках), которая используется в Проекте FreeBSD. Так как тщательное
|
||||||
|
отслеживание заметных изъянов в программном обеспечении важно для
|
||||||
|
обеспечения качества FreeBSD, правильное использование GNATS необходимо
|
||||||
|
для дальнейшего развития Проекта.</para>
|
||||||
|
|
||||||
|
<para>Доступ к GNATS даётся разработчикам FreeBSD, а также более широкому
|
||||||
|
сообществу. Для того, чтобы поддерживать целостность базы данных и
|
||||||
|
единства работы с пользователями, выработанные рекомендации покрывают
|
||||||
|
общие вопросы управления проблемами, такие, как написание отклика,
|
||||||
|
обработку уже закрытых вопросов и так далее.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-lifecycle">
|
||||||
|
<title>Жизненный цикл сообщения об ошибке</title>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Респондент посылает PR при помощи утилиты &man.send-pr.1; и
|
||||||
|
получает подтверждающее сообщение.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Среднестатический коммиттер (Вася) проявляет интерес к PR и
|
||||||
|
назначает его самому себе, или другой любитель ошибок (Петя) решает,
|
||||||
|
что лучше всех с описанной проблемой справится именно Вася, и
|
||||||
|
назначает её Васе.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Вася связывается с Респондентом (при этом вся переписка должна
|
||||||
|
фиксироваться) и выясняет причину появления проблемы. Затем он
|
||||||
|
документирует причину в журнале аудита, и переводит PR в состояние
|
||||||
|
<quote>analyzed</quote> (проанализировано).</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Вася проводит бессонную ночь и выпускает патч, которая, по его
|
||||||
|
мнению, решает означенную проблему, и затем посылает её ответом,
|
||||||
|
прося Респондента протестировать его. Затем он переводит PR в
|
||||||
|
состояние <quote>feedback</quote>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Через несколько таких итераций Вася и Респондент удавлетворяются
|
||||||
|
получающимся патчем, и Вася переносит его в дерево
|
||||||
|
<literal>-CURRENT</literal> (или непосредственно в
|
||||||
|
<literal>-STABLE</literal>, если этой проблемы в
|
||||||
|
<literal>-CURRENT</literal> не наблюдается), при этом при выполнении
|
||||||
|
коммита в сопутствующем сообщении делается ссылка на сообщение о
|
||||||
|
проблеме (а также упоминается Респондент, если он последний весь или
|
||||||
|
часть патча), и, если это нужно, начинается отсчёт для MFC.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Если патчу не нужно выполнение MFC, Вася закрывает PR.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Если патч требует выполнения MFC, Вася оставляет Сообщение о
|
||||||
|
проблеме в состоянии <quote>patched</quote> до выполнения операции
|
||||||
|
MFC, а затем закрывает его.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>Многие PR присылаются с очень слабым описанием проблемы, а
|
||||||
|
некоторые из них либо очень сложно решить, либо являются вершиной
|
||||||
|
айсберга другой, более широкой проблемы; в этих случаях очень важно
|
||||||
|
получить всю информацию, требуемую для решения проблемы. Если
|
||||||
|
описанная проблема не может быть решена, или проявится снова,
|
||||||
|
необходимо повторно открыть PR.</para>
|
||||||
|
</note>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>Адрес <quote>электронной почты</quote> может оказаться недоступным.
|
||||||
|
В этом случае ответьте на PR обычным образом и попросите Респондента
|
||||||
|
(в своём сообщении) предоставить рабочий адрес электронной почты.
|
||||||
|
Обычно это происходит в случаях использования &man.send-pr.1; в
|
||||||
|
системах с выключенной или неустановленной почтовой системой.</para>
|
||||||
|
</note>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-states">
|
||||||
|
<title>Состояние сообщений о проблемах</title>
|
||||||
|
|
||||||
|
<para>При выполнении некоторых действий очень важно обновлять состояние
|
||||||
|
PR. Это состояние должно в точности отражать текущее состояние работы
|
||||||
|
над PR.</para>
|
||||||
|
|
||||||
|
<example>
|
||||||
|
<title>Маленький пример того, когда именно нужно менять
|
||||||
|
состояние PR</title>
|
||||||
|
|
||||||
|
<para>Когда PR находится в работе и ответственный разработчик(и)
|
||||||
|
удовлетворён получающимся решением, то он отвечает на PR и меняет его
|
||||||
|
состояние на <quote>feedback</quote>. В этот момент Респондент должен
|
||||||
|
изучить исправление в своей ситуации и ответить, действительно ли был
|
||||||
|
устранён дефект.</para>
|
||||||
|
</example>
|
||||||
|
|
||||||
|
<para>Сообщение о проблеме может находится в одном из следующих
|
||||||
|
состояний:</para>
|
||||||
|
|
||||||
|
<glosslist>
|
||||||
|
<glossentry>
|
||||||
|
<glossterm>open</glossterm>
|
||||||
|
|
||||||
|
<glossdef>
|
||||||
|
<para>Начальное состояние; проблема была поставлена и её необходимо
|
||||||
|
рассмотреть.</para>
|
||||||
|
</glossdef>
|
||||||
|
</glossentry>
|
||||||
|
|
||||||
|
<glossentry>
|
||||||
|
<glossterm>analyzed</glossterm>
|
||||||
|
|
||||||
|
<glossdef>
|
||||||
|
<para>Проблема была рассмотрена, ищется её решение.</para>
|
||||||
|
</glossdef>
|
||||||
|
</glossentry>
|
||||||
|
|
||||||
|
<glossentry>
|
||||||
|
<glossterm>feedback</glossterm>
|
||||||
|
|
||||||
|
<glossdef>
|
||||||
|
<para>Дальнейшая работа требует дополнительной информации от
|
||||||
|
Респондента или сообщества; возможно помещение информации о
|
||||||
|
предлагаемом решении.</para>
|
||||||
|
</glossdef>
|
||||||
|
</glossentry>
|
||||||
|
|
||||||
|
<glossentry>
|
||||||
|
<glossterm>patched</glossterm>
|
||||||
|
|
||||||
|
<glossdef>
|
||||||
|
<para>Патч был перенесён в дерево исходных текстов, но
|
||||||
|
что-то (выполнение MFC или, возможно, подтверждение Респондента)
|
||||||
|
ещё требуется доделать.</para>
|
||||||
|
</glossdef>
|
||||||
|
</glossentry>
|
||||||
|
|
||||||
|
<glossentry>
|
||||||
|
<glossterm>suspended</glossterm>
|
||||||
|
|
||||||
|
<glossdef>
|
||||||
|
<para>Работа над проблемой была остановлена из-за отсутствия
|
||||||
|
информации или необходимых ресурсов. Это первый кандидат для
|
||||||
|
тех, кто ищет проект для работы над ним. Если проблема вообще не
|
||||||
|
может быть решена, она будет закрыта, а не приостановлена. Проект
|
||||||
|
создания документации использует <quote>suspended</quote> для
|
||||||
|
<quote>желательных</quote> нововведений, которые требуют
|
||||||
|
значительной работы, для которой ни у кого пока нет времени.</para>
|
||||||
|
</glossdef>
|
||||||
|
</glossentry>
|
||||||
|
|
||||||
|
<glossentry>
|
||||||
|
<glossterm>closed</glossterm>
|
||||||
|
|
||||||
|
<glossdef>
|
||||||
|
<para>Сообщение о проблеме было закрыто, когда все изменения были
|
||||||
|
перенесены, задокументированы и протестированы, либо когда
|
||||||
|
исправление проблемы было отвергнуто.</para>
|
||||||
|
</glossdef>
|
||||||
|
</glossentry>
|
||||||
|
</glosslist>
|
||||||
|
|
||||||
|
<note>
|
||||||
|
<para>Состояние <quote>patched</quote> напрямую связано с предлагаемыми
|
||||||
|
решениями, так что вы можете перейти сразу к состоянию
|
||||||
|
<quote>closed</quote>, если Респондент не может простестировать патч,
|
||||||
|
либо на ваших тестовых прогонах он работает.</para>
|
||||||
|
</note>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-types">
|
||||||
|
<title>Типы сообщений о проблемах</title>
|
||||||
|
|
||||||
|
<para>При обработке сообщений об ошибках, либо в качестве разработчика,
|
||||||
|
имеющего непосредственный доступ к базе данных GNATS, либо в качестве
|
||||||
|
контрибутора, который просматривает базу данных и посылает свои
|
||||||
|
отклики с патчами, комментариями, пожеланиями или запросами на изменение,
|
||||||
|
вы будете иметь дело с несколькими различными типами PR.</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><link linkend="pr-assigned">PR, которые уже кому-то
|
||||||
|
назначены.</link></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><link linkend="pr-dups">Повторы существующих PR.</link></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><link linkend="pr-stale">Заброшенные PR</link></para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><link linkend="pr-misfiled">Некорректные PR</link></para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<para>В последующих разделах описывается, для чего предназначены те или
|
||||||
|
иные типы PR, условия отнесения PR к одному из этих типов, и какое
|
||||||
|
внимание нужно уделять каждому из этих типов.</para>
|
||||||
|
|
||||||
|
<section id="pr-assigned">
|
||||||
|
<title>Назначение PR</title>
|
||||||
|
|
||||||
|
<para>Если в PR в заполненном поле <literal>responsible</literal> указано
|
||||||
|
имя разработчика FreeBSD, это значит, что PR взята этим человеком для
|
||||||
|
дальнейшей работы.</para>
|
||||||
|
|
||||||
|
<para>Уже назначенное PR не должно трогаться никем, кроме того, кому эта
|
||||||
|
проблема назначена. Если у вас есть комментарии, напишите отклик.
|
||||||
|
Если по какой-то причине вы думаете, что PR должна изменить своё
|
||||||
|
состояние или её необходимо назначить кому-то другому, пошлите
|
||||||
|
сообщение тому, кто назначен ответственным. Если этот человек не
|
||||||
|
ответит в течение двух недель, смените назначение PR, а дальше
|
||||||
|
действуйте по своему усмотрению.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-dups">
|
||||||
|
<title>Повторные PR</title>
|
||||||
|
|
||||||
|
<para>Если вы обнаружите, что один и тот же вопрос описывается более чем
|
||||||
|
в одном PR, выберите то, что содержит максимальный объём полезной
|
||||||
|
информации и закройте все остальные, чётко указав номер более полного
|
||||||
|
PR. Если несколько PR содержат непересекающуюся информацию, перенесите
|
||||||
|
всю недостающую информацию в какой-либо отклик, включая ссылки на
|
||||||
|
остальные PR; затем закройте другие PR (которые теперь полностью
|
||||||
|
перекрыты).</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-stale">
|
||||||
|
<title>Просроченные PR</title>
|
||||||
|
|
||||||
|
<para>PR считается простроченным, если оно не модифицировалось в течение
|
||||||
|
более полугода. При обработке просроченных PR испольщуйте следующую
|
||||||
|
процедуру:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Если PR достаточно подробна, попытайтесь воспроизвести проблему
|
||||||
|
в дереве <literal>-CURRENT</literal> и <literal>-STABLE</literal>.
|
||||||
|
Если вам это удалось, напишите отклик, описывающий ваши изыскания
|
||||||
|
и попытайтесь найти кого-то, кому эту проблему можно назначить.
|
||||||
|
Если это подходит, измените состояние
|
||||||
|
на <quote>analyzed</quote>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Если PR описывает проблему, которая, как вы знаете, является
|
||||||
|
результатом неправильного использования (некорректная настройка или
|
||||||
|
что-то ещё), напишите отклик, в котором опишите, что автор
|
||||||
|
исходного сделал не так, а затем закройте PR с описанием
|
||||||
|
<quote>User error</quote> или <quote>Configuration
|
||||||
|
error</quote>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Если в PR описывается ошибка, которая, как вы знаете, была
|
||||||
|
исправлена как в <literal>-CURRENT</literal>, так и
|
||||||
|
<literal>-STABLE</literal>, закройте его с сообшением, указывающим
|
||||||
|
на даты исправлений в каждой ветке.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Если PR описывает ошибку, которая, по вашим данным, была
|
||||||
|
исправлена в <literal>-CURRENT</literal>, но не в
|
||||||
|
<literal>-STABLE</literal>, попытайтесь выяснить, когда человек,
|
||||||
|
исправивший эту ошибку, планирует выполнить MFC, либо попробуйте
|
||||||
|
найти для этого кого-то ещё (может, это будете вы сами?). Измените
|
||||||
|
состояние сообщения на <quote>feedback</quote> и переназначьте его
|
||||||
|
кому-либо, кто будет делать MFC.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>В остальных случаях запросите у автора исходного сообщения
|
||||||
|
подтверждения того, что проблема всё ещё присутствует в новых
|
||||||
|
версиях. Если автор не отвечает в течение месяца, закройте PR с
|
||||||
|
пометкой <quote>Feedback timeout</quote>.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-misfiled">
|
||||||
|
<title>Незаполненные PR</title>
|
||||||
|
|
||||||
|
<para>GNATS требовательно подходит к формату присылаемых сообщений об
|
||||||
|
ошибках. Вот почему много PR заканчивают жизнь в состоянии
|
||||||
|
<quote>misfiled</quote>, если посылающий забыл заполнить поле или
|
||||||
|
ввёл неправильные данные в некоторые поля PR. Этот раздел поможет
|
||||||
|
предоставить основной объём необходимых подробностей для разработчиков
|
||||||
|
FreeBSD, который может помочь им закрыть или повторно заполнить
|
||||||
|
эти PR.</para>
|
||||||
|
|
||||||
|
<para>Если система GNATS не может понять, что делать с сообщением об
|
||||||
|
ошибке, которое достигло базы данных, она определяет
|
||||||
|
<literal>gnats-admin</literal> в качестве ответственного за PR и
|
||||||
|
помещает сообщение в категорию <literal>pending</literal>. Теперь это
|
||||||
|
PR в состоянии <quote>misfiled</quote> и оно не будет появляться в
|
||||||
|
списках сообщений об ошибках, если только кто-то специально не запросит
|
||||||
|
перечень всех незаполненных PR. Если у вас есть доступ к машинам в
|
||||||
|
кластере FreeBSD, можете воспользоваться командой
|
||||||
|
<command>query-pr</command> для просмотра списка PR, которые были
|
||||||
|
некорректно сформированы:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>query-pr -x -q -r gnats-admin</userinput>
|
||||||
|
52458 gnats-ad open serious medium Re: declaration clash f
|
||||||
|
52510 gnats-ad open serious medium Re: lots of sockets in
|
||||||
|
52557 gnats-ad open serious medium
|
||||||
|
52570 gnats-ad open serious medium Jigdo maintainer update</screen>
|
||||||
|
|
||||||
|
<para>Как правило, PR вроде перечисленных выше оказываются незаполненными
|
||||||
|
по одной из следующих причин:</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para>Отклик на существующее PR, посланный по электронной почте,
|
||||||
|
имеет неверный формат заголовка <literal>Subject:</literal>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>При заполнении шаблона &man.send-pr.1; посылающий забыл указать
|
||||||
|
правильное значение для категории или класса PR.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>Это не реальное PR, а какое-то случайное сообщение, посланное
|
||||||
|
на адрес <email>bug-followup@freebsd.org</email> или
|
||||||
|
<email>freebsd-gnats-submit@freebsd.org</email>.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<section id="pr-misfiled-followups">
|
||||||
|
<title>Отклики неправильно оформлены как новые PR</title>
|
||||||
|
|
||||||
|
<para>К наиболее массовой категории неправильно оформленных PR
|
||||||
|
относятся те, у которых неверна тема письма, и именно они на самом
|
||||||
|
деле требует самых больших усилий от разработчиков. Это не настоящие
|
||||||
|
PR, описывающие отдельные ошибки. Когда по одному из адресов,
|
||||||
|
который <quote>прослушивает</quote> GNATS на предмет обработки
|
||||||
|
входящих сообщений, принимается ответ на существуещее PR, то тема
|
||||||
|
ответа должна быть всегда в таком виде:</para>
|
||||||
|
|
||||||
|
<programlisting>Subject: Re: category/number: старая тема</programlisting>
|
||||||
|
|
||||||
|
<para>Большинство почтовых программ, когда вы отвечаете на оригинальное
|
||||||
|
почтовое сообщение с PR, будут добавлять часть
|
||||||
|
<quote><literal>Re: </literal></quote>. Часть
|
||||||
|
<quote><literal>category/number: </literal></quote> является
|
||||||
|
соглашением, специфичным для GNATS, которое вы должны выполнить,
|
||||||
|
вручную поставив его в тему письма с откликом.</para>
|
||||||
|
|
||||||
|
<para>Все разработчики FreeBSD, имеющие прямой доступ к базе данных
|
||||||
|
GNATS, могут регулярно проверять наличие таких PR и перемещать
|
||||||
|
заинтересовавшие их в отклики к оригинальному PR (послав корректный
|
||||||
|
отклик на сообщение об ошиюке на адрес
|
||||||
|
<email>bug-followup@freebsd.org</email>). Затем неправильно
|
||||||
|
оформленное PR может быть закрыто с примерно таким пояснением:</para>
|
||||||
|
|
||||||
|
<programlisting>Your problem report was misfiled. Please use the format
|
||||||
|
"Subject: category/number: original text" when following
|
||||||
|
up to older, existing PRs. I've added the relevant bits
|
||||||
|
from the body of this PR to kern/12345</programlisting>
|
||||||
|
|
||||||
|
<para>Поиск по команде <command>query-pr</command> оригинального PR,
|
||||||
|
на которое отвечает неправильно оформленный отклик, легко выполняется
|
||||||
|
следующим образом:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.user; query-pr -q -y "some text"</screen>
|
||||||
|
|
||||||
|
<para>После того, как вы обнаружили оригинальное PR и неправильно
|
||||||
|
оформленный отклик на него, воспользуйтесь параметром
|
||||||
|
<option>-F</option> команды <command>query-pr</command> для
|
||||||
|
сохранения полного текста всех относящихся к делу PR в файле формата
|
||||||
|
почтового ящика &unix;, то есть:</para>
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>query-pr -F 52458 52474 > mbox</userinput></screen>
|
||||||
|
|
||||||
|
<para>Теперь вы можете использовать любую почтовую программу для
|
||||||
|
просмотра всех PR, которые вы сохранили в файле
|
||||||
|
<filename>mbox</filename>. Скопируйте текст всех неверно оформленных
|
||||||
|
PR в отклике на оригинальное сообщение о проблеме, и обязательно
|
||||||
|
включите правильный заголовок <literal>Subject:</literal>. После
|
||||||
|
этого закройте неверно оформленное PR. Когда вы закрываете такие PR,
|
||||||
|
помните, что автор получает оповещение по почте о том, что его PR
|
||||||
|
сменило состояние на <quote>closed</quote>. В пояснении обязательно
|
||||||
|
описывайте в подробностях, почему это состояние изменилось. Обычно
|
||||||
|
подойдёт примерно следующий текст:</para>
|
||||||
|
|
||||||
|
<programlisting>Followup to ports/45364 misfiled as a new PR.
|
||||||
|
This was misfiled because the subject didn't have the format:
|
||||||
|
|
||||||
|
Re: ports/45364: ...</programlisting>
|
||||||
|
|
||||||
|
<para>В этом случае автор неправильно оформленного PR будет знать,
|
||||||
|
чего необходимо избегать при отправке отклика на существующее
|
||||||
|
PR.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-misfiled-format">
|
||||||
|
<title>Некорректные PR с отсутствующими полями</title>
|
||||||
|
|
||||||
|
<para>Ко второму типу неправильно оформленных PR обычно относят те,
|
||||||
|
что являются результатом забывчивости авторов, которые не заполнили
|
||||||
|
все необходимые поля при написании первоначального PR.</para>
|
||||||
|
|
||||||
|
<para>Отсутствие или ошибочное задание полей <quote>category</quote>
|
||||||
|
или <quote>class</quote> может привести к появлению некорректного
|
||||||
|
сообщения. Разработчики могут использовать &man.edit-pr.1; для смены
|
||||||
|
значений категории или класса этих неправильно оформленных PR на
|
||||||
|
более подходящие и сохранить PR.</para>
|
||||||
|
|
||||||
|
<para>Другой распространённой причиной появления неправильно
|
||||||
|
оформленных PR являются вопросы форматирования, квотирование,
|
||||||
|
изменение или удаление шаблона <command>send-pr</command>, как по
|
||||||
|
вине пользователя, редактирующего шаблон, так и почтовых программ,
|
||||||
|
которые проделывают странные вещи с обычными текстовыми сообщениями.
|
||||||
|
Это происходит не постоянно, и может быть исправлено программой
|
||||||
|
<command>edit-pr</command>; это требует некоторых усилий со стороны
|
||||||
|
разработчика, которые перевводит PR, однако в большинстве случаев
|
||||||
|
это можно сделать относительно легко.</para>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="pr-misfiled-notpr">
|
||||||
|
<title>Неправильные PR, которые на самом деле не являются сообщениями
|
||||||
|
об ошибках</title>
|
||||||
|
|
||||||
|
<para>Иногда пользователь желает сообщить об ошибке и посылает GNATS
|
||||||
|
по электронной почте обычное сообщение. Скрипты GNATS работает с
|
||||||
|
сообщениями об ошибках, которые форматированы при помощи шаблона
|
||||||
|
&man.send-pr.1;. Они не могут обрабатывать любые сообщения
|
||||||
|
электронной почты. Вот почему сообщения об ошибках, посылаемые на
|
||||||
|
адрес <email>freebsd-gnats-submit@freebsd.org</email>, должны
|
||||||
|
быть оформлены по шаблону команды <command>send-pr</command>, хотя
|
||||||
|
сообщения по электронной почте можно послать на &a.bugs;.</para>
|
||||||
|
|
||||||
|
<para>Разработчики, которые видят PR, выглядящие так, будто они должны
|
||||||
|
были быть посланы в адрес &a.bugs.name; или какого-то другого
|
||||||
|
списка рассылки, должны закрыть PR, проинформировав его автора в
|
||||||
|
протоколе изменения состояния о причинах, по которых это не является
|
||||||
|
настоящим PR и куда следует посылать сообщения.</para>
|
||||||
|
|
||||||
|
<para>Электронный адрес, который использует GNATS для приёма
|
||||||
|
поступающих PR, опубликован в документации к FreeBSD, объявлялся и
|
||||||
|
указан на Web-сайте. Это значит, что спамеры его увидели. Каждый
|
||||||
|
день несколько рекламных сообщений поступает в GNATS, которая
|
||||||
|
относит их к категории <quote>pending</quote>, пока кто-нибудь их не
|
||||||
|
пересмотрит. Закрытие любого из таких сообщений при помощи
|
||||||
|
&man.edit-pr.1; весьма раздражает, потому что GNATS отвечает автору,
|
||||||
|
а сейчас адрес отправителя спам-почты никогда не бывает настоящим.
|
||||||
|
Для каждого закрытого PR будут приходить сообщения о
|
||||||
|
невозможности доставки.</para>
|
||||||
|
|
||||||
|
<para>На данный момент с установкой некоторых фильтров против спама,
|
||||||
|
проверяющих все добавления в базу данных GNATS, количество спама,
|
||||||
|
достигающего состояния <quote>pending</quote>, весьма мало.</para>
|
||||||
|
|
||||||
|
<para>Все разработчики, имеющие доступ к машинам кластера FreeBSD.org,
|
||||||
|
приглашаются к проверке неправильно оформленных PR и немедленному
|
||||||
|
закрытию тех, что являются почтовым спамом. Когда вы закрываете
|
||||||
|
такое PR, хорошо бы заодно указать в качестве категории
|
||||||
|
<quote><literal>junk</literal></quote>. Ненужные PR не сохраняются,
|
||||||
|
так что перенос почтового спама в эту категорию ясно указывает на
|
||||||
|
то, что мы не собираемся его сохранять или тратить на него дисковое
|
||||||
|
пространство.</para>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section id="references">
|
||||||
|
<title>Дополнительная литература</title>
|
||||||
|
|
||||||
|
<para>Это перечень ресурсов, относящихся к качественному написанию и
|
||||||
|
обработке сообщений об ошибках. Несомненно, этот список не является
|
||||||
|
полным.</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><ulink
|
||||||
|
url="../../articles/problem-reports/article.html">Как писать
|
||||||
|
Сообщения об ошибках FreeBSD</ulink>—руководство для авторов
|
||||||
|
PR.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</section>
|
||||||
|
</article>
|
Loading…
Reference in a new issue