1100 lines
37 KiB
XML
1100 lines
37 KiB
XML
<?xml version="1.0" encoding="koi8-r"?>
|
||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
|
||
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
|
||
<!--
|
||
The FreeBSD Russian Documentation Project
|
||
|
||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/pr-guidelines/article.xml,v 1.4 2005/12/16 20:08:02 gad Exp $
|
||
|
||
Original revision: r43184
|
||
-->
|
||
<!--
|
||
Problem Report Handling Guidelines
|
||
The FreeBSD Project - http://www.FreeBSD.org
|
||
-->
|
||
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
|
||
<!-- :START of Article Metadata -->
|
||
<info><title>Рекомендации по работе с сообщениями о проблемах</title>
|
||
|
||
|
||
<legalnotice xml:id="trademarks" role="trademarks">
|
||
&tm-attrib.freebsd;
|
||
&tm-attrib.opengroup;
|
||
&tm-attrib.general;
|
||
</legalnotice>
|
||
|
||
<pubdate>$FreeBSD$</pubdate>
|
||
|
||
<releaseinfo>$FreeBSD$</releaseinfo>
|
||
|
||
<abstract>
|
||
<para>Это руководство описывает рекомендуемую практику обработки
|
||
сообщений об ошибках FreeBSD (Problem Reports - PR). Хотя эти
|
||
рекомендации предназначены для Группы поддержки базы данных сообщений
|
||
о проблемах FreeBSD (PR Database Maintenance Team)
|
||
<email>freebsd-bugbusters@FreeBSD.org</email>, им должны следовать все,
|
||
кто работает с этими сообщениями.</para>
|
||
</abstract>
|
||
|
||
<authorgroup>
|
||
<author><personname><firstname>Dag-Erling</firstname><surname>Smørgrav</surname></personname></author>
|
||
|
||
<author><personname><firstname>Hiten</firstname><surname>Pandya</surname></personname></author>
|
||
</authorgroup>
|
||
</info>
|
||
<!-- :END of Article Metadata-->
|
||
|
||
<section xml:id="intro">
|
||
<title>Введение</title>
|
||
|
||
<para>GNATS является системой управления неисправностями (сообщениями об
|
||
ошибках), которая используется в Проекте FreeBSD. Так как тщательное
|
||
отслеживание заметных изъянов в программном обеспечении важно для
|
||
обеспечения качества FreeBSD, правильное использование GNATS необходимо
|
||
для дальнейшего развития Проекта.</para>
|
||
|
||
<para>Доступ к GNATS даётся разработчикам FreeBSD, а также более широкому
|
||
сообществу. Для того, чтобы поддерживать целостность базы данных и
|
||
единства работы с пользователями, были выработаны рекомендации,
|
||
покрывающие общие вопросы управления проблемами, такие, как написание
|
||
отклика, обработку уже закрытых вопросов и так далее.</para>
|
||
</section>
|
||
|
||
<section xml: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 xml: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>repocopy (устаревшее)</glossterm>
|
||
|
||
<glossdef>
|
||
<para>Решение проблемы зависит от завершения операции копирования
|
||
репозитория (внутренние операции репозитория CVS).</para>
|
||
|
||
<para>Учитывая то, что на данный момент все репозитории используют
|
||
Subversion, в этом состоянии более нет необходимости. В Subversion
|
||
изначально присутствуют операции копирования и перемещения
|
||
файлов.</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 xml:id="pr-types">
|
||
<title>Типы сообщений о проблемах</title>
|
||
|
||
<para>При обработке сообщений об ошибках, либо в качестве разработчика,
|
||
имеющего непосредственный доступ к базе данных GNATS, либо в качестве
|
||
контрибутора, который просматривает базу данных и посылает свои
|
||
отклики с патчами, комментариями, пожеланиями или запросами на изменение,
|
||
вы будете иметь дело с несколькими различными типами PR.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><link linkend="pr-unassigned">Никому неназначенные
|
||
PR.</link></para>
|
||
</listitem>
|
||
|
||
<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 xml:id="pr-unassigned">
|
||
<title>Неназначенные PR</title>
|
||
|
||
<para>По прибытии сообщениям о проблемах устанавливаются общие
|
||
назначения (generic assignee). Они всегда предваряются префиксом
|
||
<literal>freebsd-</literal>. Точное название назначения (assignee)
|
||
зависит от категории и в большинстве случаев оно соответствует
|
||
определенному списку рассылки &os;. Далее следует текущий перечень
|
||
назначений (assignee), составленный в порядке от общих к
|
||
частным:</para>
|
||
|
||
<table xml:id="default-assignees-common">
|
||
<title>Назначения по умолчанию — наиболее
|
||
общие</title>
|
||
<tgroup cols="3">
|
||
<thead>
|
||
<row>
|
||
<entry>Тип</entry>
|
||
<entry>Категория</entry>
|
||
<entry>Назначение по умолчанию</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry>базовая система</entry>
|
||
<entry>bin, conf, gnu, kern, misc</entry>
|
||
<entry>freebsd-bugs</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>специфичные для архитектуры</entry>
|
||
<entry>alpha, amd64, arm, i386, ia64, powerpc, sparc64</entry>
|
||
<entry>freebsd-<replaceable>arch</replaceable></entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>коллекция портов</entry>
|
||
<entry>ports</entry>
|
||
<entry>freebsd-ports-bugs</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>документация, поставляемая с системой</entry>
|
||
<entry>docs</entry>
|
||
<entry>freebsd-doc</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>страницы сайта &os; (за исключением документации)</entry>
|
||
<entry>www</entry>
|
||
<entry>freebsd-www</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
|
||
<table xml:id="default-assignees-other">
|
||
<title>Назначения по умолчанию — остальные</title>
|
||
|
||
<tgroup cols="3">
|
||
<thead>
|
||
<row>
|
||
<entry>Тип</entry>
|
||
<entry>Категория</entry>
|
||
<entry>Назначение по умолчанию</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry>в защиту &os; (advocacy efforts)</entry>
|
||
<entry>advocacy</entry>
|
||
<entry>freebsd-advocacy</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблемы с &java.virtual.machine;</entry>
|
||
<entry>java</entry>
|
||
<entry>freebsd-java</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>соответствие стандартам</entry>
|
||
<entry>standards</entry>
|
||
<entry>freebsd-standards</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>тредовые библиотеки</entry>
|
||
<entry>threads</entry>
|
||
<entry>freebsd-threads</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>подсистема &man.usb.4;</entry>
|
||
<entry>usb</entry>
|
||
<entry>freebsd-usb</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
|
||
<para>Не удивляйтесь, если обнаружите, что автор PR присвоил ему
|
||
неправильную категорию. Если вы исправите категорию, то не забудьте
|
||
также подправить и назначение. (В частности, для посылающих PR
|
||
является трудностью понять, что если проблема возникает на системе
|
||
с архитектурой i386, то она также может быть общей для всех
|
||
архитектур &os;, и поэтому более подходящей будет категория
|
||
<literal>kern</literal>. Несомненно, обратное также
|
||
справедливо).</para>
|
||
|
||
<para>Назначения некоторых PR могут быть переопределены из общих любым
|
||
лицом, имеющим соответствующие привилегии. Существует несколько типов
|
||
назначений: специализированные списки рассылки; почтовые алиасы
|
||
(расширяемые в списки электронных адресов заинтересованных людей)
|
||
и назначения отдельным лицам.</para>
|
||
|
||
<para>Если назначением является список рассылки, пожалуйста,
|
||
выполняя переназначение, используйте длинную форму
|
||
(например, <literal>freebsd-foo</literal> вместо
|
||
<literal>foo</literal>); благодаря этому сообщение, посылаемое
|
||
в список рассылки, не будет дублироваться.</para>
|
||
|
||
<note>
|
||
<para>Так как список лиц добровольно согласившихся принимать
|
||
назначения для некоторых типов PR изменяется часто, то наиболее
|
||
подходящим местом для его размещения является <link xlink:href="http://wiki.freebsd.org/AssigningPRs">FreeBSD wiki</link>.
|
||
</para>
|
||
</note>
|
||
|
||
<para>Ниже приведен (возможно, неполный) перечень назначений.</para>
|
||
|
||
<table xml:id="common-assignees-base">
|
||
<title>Общие назначения — базовая система</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>Тип</entry>
|
||
<entry>Предполагаемая категория</entry>
|
||
<entry>Предполагаемое назначение</entry>
|
||
<entry>Тип назначения</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry>проблема, специфичная для архитектуры &arm;</entry>
|
||
<entry>arm</entry>
|
||
<entry>freebsd-arm</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема, специфичная для архитектуры &mips;</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-mips</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема, специфичная для архитектуры &powerpc;</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-ppc</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с Advanced Configuration and Power
|
||
Management (&man.acpi.4;)</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-acpi</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с драйверами ATM</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-atm</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с встраиваемой системой или минимальным
|
||
дистрибутивом &os; (например,
|
||
NanoBSD/PicoBSD/FreeBSD-arm)</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-embedded</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с драйверами &firewire;</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-firewire</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема в исходном коде файловой системы</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-fs</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с подсистемой &man.geom.4;</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-geom</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с подсистемой &man.ipfw.4;</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-ipfw</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с драйверами ISDN</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-isdn</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>подсистема &man.jail.8;</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-jail</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с эмуляцией &linux; или SVR4</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-emulation</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с сетевым стеком</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-net</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с подсистемой &man.pf.4;</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-pf</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с подсистемой &man.scsi.4;</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-scsi</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с звуковой подсистемой (&man.sound.4;)</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-multimedia</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с подсистемой &man.wlan.4; или с драйвером
|
||
беспроводного устройства</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-wireless</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с &man.sysinstall.8; или
|
||
с &man.bsdinstall.8;</entry>
|
||
<entry>bin</entry>
|
||
<entry>freebsd-sysinstall</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с системными стартовыми скриптами
|
||
(&man.rc.8;)</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-rc</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблемы в работе VIMAGE, VNET, или проблемы
|
||
в их коде</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-virtualization</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>проблема с эмуляцией Xen</entry>
|
||
<entry>kern</entry>
|
||
<entry>freebsd-xen</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
|
||
<table xml:id="common-assignees-ports">
|
||
<title>Общие назначения — коллекция портов</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>Тип</entry>
|
||
<entry>Предполагаемая категория</entry>
|
||
<entry>Предполагаемое назначение</entry>
|
||
<entry>Тип назначения</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry>проблема с инфраструктурой системы портов
|
||
(<emphasis>не</emphasis> с конкретным портом!)</entry>
|
||
<entry>ports</entry>
|
||
<entry>portmgr</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер apache@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>apache</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер autotools@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>autotools</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер doceng@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>doceng</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер eclipse@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>freebsd-eclipse</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер gecko@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>gecko</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер gnome@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>gnome</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер hamradio@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>hamradio</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер haskell@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>haskell</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер java@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>freebsd-java</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер kde@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>kde</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер mono@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>mono</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер
|
||
office@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>freebsd-office</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер perl@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>perl</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер python@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>freebsd-python</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер ruby@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>freebsd-ruby</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер secteam@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>secteam</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер box@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>vbox</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>порт, у которого мейнтейнер x11@FreeBSD.org</entry>
|
||
<entry>ports</entry>
|
||
<entry>freebsd-x11</entry>
|
||
<entry>список рассылки</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
|
||
<para>PR для портов, у которых мейнтейнером является коммиттер порта,
|
||
могут быть переназначены любым лицом (только учтите, что не каждый
|
||
&os; коммиттер в обязательном порядке является коммиттером портов,
|
||
поэтому вы не должны судить только по почтовому адресу).</para>
|
||
|
||
<para>Для остальных PR, пожалуйста не переназначайте их другим людям
|
||
(за исключением себя), если вы не уверены, что человек действительно
|
||
будет работать над ними. Это поможет избежать ситуации, когда решение
|
||
проблемы игнорируется другими людьми, так как подразумевается, что
|
||
некто уже над ней работает.</para>
|
||
|
||
<table xml:id="common-assignees-other">
|
||
<title>Общие назначения — остальные</title>
|
||
<tgroup cols="4">
|
||
<thead>
|
||
<row>
|
||
<entry>Тип</entry>
|
||
<entry>Предполагаемая категория</entry>
|
||
<entry>Предполагаемое назначение</entry>
|
||
<entry>Тип назначения</entry>
|
||
</row>
|
||
</thead>
|
||
|
||
<tbody>
|
||
<row>
|
||
<entry>неполадки с самой GNATS(&man.send-pr.1;)</entry>
|
||
<entry>bin</entry>
|
||
<entry>bugmeister</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
|
||
<row>
|
||
<entry>неполадки с веб интерфейсом GNATS</entry>
|
||
<entry>www</entry>
|
||
<entry>bugmeister</entry>
|
||
<entry>алиас</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</table>
|
||
</section>
|
||
|
||
<section xml:id="pr-assigned">
|
||
<title>Назначение PR</title>
|
||
|
||
<para>Если в PR в заполненном поле <literal>responsible</literal> указано
|
||
имя разработчика FreeBSD, это значит, что PR взята этим человеком для
|
||
дальнейшей работы.</para>
|
||
|
||
<para>Уже назначенное PR не должно трогаться никем, кроме администраторов
|
||
GNATS (bugmeister) и того, кому эта проблема назначена. Если у вас
|
||
есть комментарии, напишите отклик. Если по какой-то причине вы
|
||
думаете, что PR должна изменить своё состояние или её необходимо
|
||
назначить кому-то другому, пошлите сообщение тому, кто назначен
|
||
ответственным. Если этот человек не ответит в течение двух недель,
|
||
смените назначение PR, а дальше действуйте по своему усмотрению.</para>
|
||
</section>
|
||
|
||
<section xml:id="pr-dups">
|
||
<title>Повторные PR</title>
|
||
|
||
<para>Если вы обнаружите, что один и тот же вопрос описывается более чем
|
||
в одном PR, выберите то, что содержит максимальный объём полезной
|
||
информации и закройте все остальные, чётко указав номер более полного
|
||
PR. Если несколько PR содержат не пересекающуюся информацию,
|
||
перенесите всю недостающую информацию в какой-либо отклик, включая
|
||
ссылки на остальные PR; затем закройте другие PR (которые теперь
|
||
полностью перекрыты).</para>
|
||
</section>
|
||
|
||
<section xml: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>patched</quote> и переназначьте его
|
||
кому-либо, кто будет делать MFC.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>В остальных случаях запросите у автора исходного сообщения
|
||
подтверждения того, что проблема всё ещё присутствует в новых
|
||
версиях. Если автор не отвечает в течение месяца, закройте PR с
|
||
пометкой <quote>Feedback timeout</quote>.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
|
||
<section xml: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>Автор PR отправил копию (Cc:) в список рассылки, а кто-нибудь
|
||
ответил на этот пост вместо сообщения, сформированного GNATS.
|
||
В копии, отосланной в список рассылки, нету тега категория/PRномер.
|
||
(Вот почему мы рекомендуем посылающим <emphasis>не</emphasis>
|
||
делать подобных движений).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>При заполнении шаблона &man.send-pr.1; посылающий забыл указать
|
||
правильное значение для категории или класса PR.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>При заполнении шаблона &man.send-pr.1; посылающий установил
|
||
значение поля Confidential в <literal>yes</literal>. (Так как
|
||
мы позволяем каждому зеркалировать GNATS при помощи
|
||
<application>rsync</application>, информация о PR-ах является
|
||
общедоступной. Сообщения, касающиеся безопасности, не следует
|
||
слать через GNATS, их необходимо отправлять на адрес команды
|
||
офицеров безопасности).</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Это не реальное PR, а какое-то случайное сообщение, посланное
|
||
на адрес <email>bug-followup@FreeBSD.org</email> или
|
||
<email>freebsd-gnats-submit@FreeBSD.org</email>.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<section xml: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 (послав корректный
|
||
отклик на сообщение об ошибке на адрес
|
||
&a.bugfollowup;). Затем неправильно
|
||
оформленное 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 did not have the format:
|
||
|
||
Re: ports/45364: ...</programlisting>
|
||
|
||
<para>В этом случае автор неправильно оформленного PR будет знать,
|
||
чего необходимо избегать при отправке отклика на существующее
|
||
PR.</para>
|
||
</section>
|
||
|
||
<section xml: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 xml: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, пожалуйста, сделайте следующее:</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>Выставьте Category в <literal>junk</literal>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Установите Confidential в <literal>no</literal>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Установите Responsible в
|
||
<literal>gnats-admin</literal>.</para>
|
||
</listitem>
|
||
|
||
<listitem>
|
||
<para>Смените State в <literal>closed</literal>.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
|
||
<para>Для PR категории junk не выполняется резервное копирование,
|
||
следовательно, перевод спам сообщений в эту категорию обозначает,
|
||
что мы не желаем хранить их или тратить дисковое пространство на них.
|
||
Если вы просто закрываете их без смены категории, они остаются
|
||
как в главной базе, так и во всех копиях базы, зеркалируемых
|
||
через <application>cvsup</application>.</para>
|
||
</section>
|
||
</section>
|
||
</section>
|
||
|
||
<section xml:id="references">
|
||
<title>Дополнительная литература</title>
|
||
|
||
<para>Это перечень ресурсов, относящихся к качественному написанию и
|
||
обработке сообщений об ошибках. Несомненно, этот список не является
|
||
полным.</para>
|
||
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><link xlink:href="&url.articles.problem-reports;/article.html">Как писать
|
||
Сообщения об ошибках FreeBSD</link>—руководство для авторов
|
||
PR.</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
</section>
|
||
</article>
|