4. Escrevendo o relatório de problemas

Agora que você já decidiu que o seu assunto merece um relatório de problema, e que ele é um problema do FreeBSD, é hora de escrever o relatório sobre o seu problema atual. Antes de entrarmos na mecânica do programa utilizado para gerar e enviar os PRs, aqui estão algumas dicas e truques para ajudá-lo a se certificar de que o seu PR será o mais efetivo possivel.

4.1. Dicas e truques para escrever um bom relatório de problema

4.2. Antes de você iniciar

Antes de executar o programa send-pr(1), tenha certeza que a sua variável de ambiente VISUAL (ou a EDITOR se a VISUAL não estiver definida) está setada para alguma coisa sensivel.

Você também deve se certificar de que o sistema de entrega de emails esteja funcionando corretamente. O send-pr(1) utiliza mensagens de email para enviar e rastrear um relatório de problemas. Se você não pode enviar mensagens de email apartir da máquina onde está executando o send-pr(1), os seus relatórios de problemas não irão chegar até a base de dados GNATS. Para maiores detalhes de como configurar o sistema de email no FreeBSD, consulte o capítulo  Correio Eletrônico no Handbook do FreeBSD.

4.3. Anexando pachs ou arquivos

O programa send-pr(1) tem a capacidade de anexar arquivos a um relatório de problema. Você pode anexar tantos arquivos quantos você desejar, desde que cada um possua um nome único. (por ex. por exemplo o nome próprio do arquivo, sem o caminho de diretório). Basta utilizar a opção de linha de comando -a para especificar os nomes dos arquivos que você deseja anexar:

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

Não se preocupe com os arquivos binários, eles serão automaticamente codificados de forma a não interferir com o seu agente de correio.

Se você anexar um patch, tenha certeza de utilizar a opção -c ou -u no diff(1) para criar um diff contextual ou um diff unificado (o formato unificado é preferido), e tenha certeza de especificar os números de revisão exatos dos arquivos que você modificou, de forma que o desenvolvedor que ler o seu relatório tenha condições de aplica-las facilmente. Um patch para o ramo CURRENT ou HEAD do cvs é preferido uma vez que todo código novo deve ser aplicado e testado ali primeiro. Após a realização de testes apropriados e significativos, o código será combinado/migrado para ao ramo STABLE.

Se você juntar um patch no corpo do email, em vez envia-lo como um arquivo anexo, você pode ficar sujeito a ocorrência de um problema bastante comum ocasionado pela tendência de alguns programas de email de converter tabs em espaços, o qual irá arruinar completamente qualquer coisa cuja intenção é a de ser parte de um Makefile.

Observe também que incluir pequenos patchs em um PR é normalmente a coisa certa -- particularmente quando ele corrige o problema descrito no PR -- grandes patches e especialmente código novo, que normalmente requerem uma revisão substancial antes de ser incorporado, devem ser colocados em um servidor web ou de FTP, e a url deve ser incluida no PR ao invés do pacth propriamente dito. Os patches dentro de um email tendem a se deformar, especialmente quando GNATS está envolvido, e em um grande patch, maior será a dificulade dos interessados em consertá-lo. Além de que, ao colocar o patch na web você pode modificá-lo sem ter a necessidade de reenviar o patch completo em uma continuação do PR original.

Você deve observar que a menos que você especifique explicitamente no seu PR ou diretamente no patch, qualquer correção que você envie será considerada como estando licenciada sob os mesmos termos que o arquivo original que você modificou.

4.4. Preenchendo o template

Quando você executa o programa send-pr(1), você será apresentado a um template. O template consiste em uma lista de campos, alguns dos quais estarão pré preenchidos, e alguns irão possuir comentários explicando o seu propósito ou então listando os valores aceitáveis. Não se preocupe com os comentários, eles serão removidos automaticamente se você não moficicá-los ou retirá-los você mesmo.

Na parte superior do template, logo abaixo das linhas SEND-PR:, está o cabeçalho do email. Você normalmente não necessita modificá-lo, a menos que você esteja enviando o relatório de problema apartir de uma máquina ou de uma conta a qual pode enviar mas não pode receber emails, neste caso você deve configurar manualmente os campos From: e Reply-To: para o seu endereço de email real. Você também pode querer enviar uma cópia do relatório para você mesmo (ou para alguma outra pessoa) através do uso de uma cópia carbono, adicionando um ou mais endereços de email na linha de cabeçalho Cc: .

Em seguida vem uma série de campos de uma unica linha:

Finalmente, existe uma série de campos com multiplas linhas:

4.5. Enviando o relatório de problemas

Uma vez que você tenha preenchido o template, salve-o, e saia do editor de texto, ao fazer isso o send-pr(1) irá perguntar de você deseja s)end, e)dit or a)bort?. Você pode pressionar s para continuar e enviar o relatório de problema, e para voltar ao editor de forma que possa efetuar alguma alteração, ou então a para cancelar o envio. Se você escolher a opção later (mais tarde), o seu relatório de problema irá permanecer no seu disco (o send-pr(1) irá lhe dizer o nome do arquivo antes de terminar), assim você pode editá-lo quando tiver mais tempo, ou pode transferi-lo para um sistema com uma melhor conectividade, antes de enviá-lo com a opção -f do send-pr(1):

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

Este comando irá ler o arquivo especificado, validar o seu conteúdo, remover os comentários e enviá-lo.

Este, e outros documentos, podem ser obtidos em ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Para perguntas sobre FreeBSD, leia a documentação antes de contatar <questions@FreeBSD.org>.
Para perguntas sobre esta documentação, envie e-mail para <doc@FreeBSD.org>.