Quando um PR foi trabalhado e o(s) desenvolvedor(es) responsáveis se sentem confortáveis com a correção, eles enviarão um acompanhamento para o PR e alterarão seu estado para "feedback". Neste ponto, o originador deve avaliar a correção em seu contexto e responder indicando se o defeito foi realmente corrigido.
Diretrizes de Tratamento de Relatórios de Problemas
Esta tradução pode estar desatualizada. Para ajudar com as traduções, acesse a ferramenta de traduções do FreeBSD.
trademarks
FreeBSD is a registered trademark of the FreeBSD Foundation.
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol.
Índice
Resumo
Essas diretrizes descrevem práticas recomendadas de tratamento para Relatórios de Problemas (PRs) do FreeBSD. Embora desenvolvidas para a equipe de manutenção do Banco de Dados de PRs do FreeBSD (freebsd-bugbusters@FreeBSD.org), essas diretrizes devem ser seguidas por qualquer pessoa que trabalhe com PRs do FreeBSD.
1. Introdução
O Bugzilla é um sistema de gerenciamento de problemas usado pelo Projeto FreeBSD. Como o rastreamento preciso de defeitos de software pendentes é importante para a qualidade do FreeBSD, o uso correto do software é essencial para o progresso contínuo do Projeto.
O acesso ao Bugzilla está disponível para toda a comunidade FreeBSD. Para manter a consistência no banco de dados e fornecer uma experiência de usuário consistente, foram estabelecidas diretrizes que abrangem aspectos comuns de gerenciamento de bugs, como apresentação de acompanhamentos, tratamento de solicitações de encerramento, entre outros.
2. Ciclo de vida do Relatório de Problemas
O autor do relatório envia um relatório de bug no site. O bug está no estado
Precisa ser Triado
(Needs Triage).Jane Random BugBuster confirma que o relatório de bug possui informações suficientes para ser reproduzido. Caso contrário, ela vai e volta com o autor do relatório para obter as informações necessárias. Neste ponto, o bug é definido como estado
Aberto
(Open).Joe Random Committer se interessa pelo PR e o atribui a si mesmo, ou Jane Random BugBuster decide que Joe é o mais adequado para lidar com ele e o atribui a ele. O bug deve ser definido para o estado
Em Discussão
(In Discussion).Joe tem uma breve troca com o autor do relatório (certificando-se de que tudo é registrado no histórico de auditoria) e determina a causa do problema.
Joe trabalha a noite toda e desenvolve um patch que ele acha que corrige o problema e o envia em um acompanhamento, pedindo ao autor do relatório que o teste. Em seguida, ele define o estado do PR como
Patch Pronto
(Patch Ready).Algumas iterações depois, tanto Joe quanto o autor do relatório estão satisfeitos com o patch e Joe o faz commit no
-CURRENT
(ou diretamente no-STABLE
se o problema não existir no-CURRENT
), certificando-se de fazer referência ao Relatório de Problemas em seu log de commit (e de creditar o autores se eles enviaram todo ou parte do patch) e, se apropriado, iniciar uma contagem regressiva de MFC. O bug é definido como estadoPrecisa de MFC
(Needs MFC).Se o patch não precisar de MFCing, Joe então encerra o PR como
Problema Resolvido
(Issue Resolved).
Muitos PRs são enviados com muito pouca informação sobre o problema e alguns são muito complexos para resolver ou apenas arranham a superfície de um problema maior; nesses casos, é muito importante obter todas as informações necessárias para resolver o problema. Se o problema não puder ser resolvido ou ocorrer novamente, é necessário reabrir o PR. |
3. Estado do Relatório de Problemas
É importante atualizar o estado de um PR quando certas ações são tomadas. O estado deve refletir com precisão o estado atual do trabalho no PR.
Um Relatório de Problema pode estar em um dos seguintes estados:
- open (aberto)
Estado inicial; o problema foi relatado, mas ainda não foi avaliado.
- analyzed (analisado)
O problema foi avaliado, mas ainda não foi corrigido.
- feedback (retroalimentação)
Trabalhos adicionais requerem informações adicionais do originador ou da comunidade; possivelmente informações sobre a solução proposta.
- patched (corrigido)
Foi realizado o commit de um patch, mas algo (MFC, ou talvez confirmação do originador) ainda está pendente.
- suspended (suspenso)
O problema não está sendo trabalhado, devido à falta de informações ou recursos. Este é um candidato ideal para alguém que procura um projeto para assumir. Se o problema não puder ser resolvido de forma alguma, ele será fechado, em vez de suspenso. O projeto de documentação usa "suspenso" para itens de lista de desejos que exigem uma quantidade significativa de trabalho para o qual ninguém tem tempo no momento.
- closed (fechado)
Um relatório de problemas é fechado quando as alterações referentes a ele tiverem sido integradas, documentadas e testadas ou, quando a correção do problema tiver sido abandonada.
O estado "corrigido" (patched) está diretamente relacionado ao estado "retroalimentação" (feedback), então você pode ir diretamente para o estado "fechado" (closed) se o originador não puder testar o patch e ele funcionar em seus próprios testes. |
4. Tipos de Relatórios de Problema
Ao lidar com relatórios de problemas, seja como um desenvolvedor que tem acesso direto ao banco de dados de relatórios de problemas ou como um colaborador que navega no banco de dados e envia feedbacks com patches, comentários, sugestões ou solicitações de mudança, você se deparará com vários tipos diferentes de PRs.
As seções a seguir descrevem para que cada tipo diferente de PRs é usado, quando um PR pertence a um desses tipos e qual tratamento cada tipo diferente recebe.
5. PRs Não Atribuídos
Quando os Relatórios de Problemas chegam, eles são inicialmente atribuídos a um responsável genérico (placeholder). Esses responsáveis sempre começam com freebsd-
. O valor exato desse responsável padrão depende da categoria do PR; na maioria dos casos, corresponde a uma lista de discussão específica do FreeBSD. Aqui está a lista atual, com os mais comuns listados primeiro:
Tipo | Categorias | Responsável padrão (Default Assignee) |
---|---|---|
Sistema base (Base System) | bin, conf, gnu, kern, misc | freebsd-bugs |
architecture-specific | alpha, amd64, arm, i386, ia64, powerpc, sparc64 | freebsd-arch |
coleção de ports | ports | freebsd-ports-bugs |
Documentação incluída no sistema | docs | freebsd-doc |
páginas web do FreeBSD (excluindo a documentação) | Website | freebsd-www |
Tipo | Categorias | Responsável padrão (Default Assignee) |
---|---|---|
esforços de advocacia | advocacy | freebsd-advocacy |
problema com a Java Virtual Machine™ | java | freebsd-java |
conformidade com padrões | standards | freebsd-standards |
bibliotecas de threading | threads | freebsd-threads |
subsistema usb(4) | usb | freebsd-usb |
Não se surpreenda ao descobrir que o autor do PR atribuiu-o à categoria errada. Se você corrigir a categoria, não se esqueça de corrigir também a atribuição. (Em particular, nossos autores têm dificuldade em entender que só porque seu problema se manifestou em um sistema i386, ele pode ser genérico para todo o FreeBSD e, portanto, ser mais apropriado para kern
. O inverso também é verdadeiro, é claro.)
Alguns PRs podem ser reatribuídos para longe desses atribuidores genéricos por qualquer pessoa. Existem vários tipos de atribuidores: listas de discussão especializadas; aliases de e-mail (usados para determinados itens de interesse limitado); e indivíduos.
Para atribuidores que são listas de discussão, por favor, use a forma longa ao fazer a atribuição (por exemplo, freebsd-foo
em vez de foo
); isso evitará o envio de e-mails duplicados para a lista de discussão.
Uma vez que a lista de pessoas que se ofereceram para ser o atribuidor padrão para determinados tipos de PRs muda com tanta frequência, é muito mais apropriado consultar a wiki do FreeBSD. |
Aqui está uma lista de exemplo dessas entidades; ela provavelmente não está completa.
Tipo | Categoria Sugerida | Atribuidor sugerido | Tipo de Atribuidor |
---|---|---|---|
problema específico para a arquitetura ARM® | arm | freebsd-arm | lista de discussão |
problema específico para a arquitetura MIPS® | kern | freebsd-mips | lista de discussão |
problema específico para a arquitetura PowerPC® | kern | freebsd-ppc | lista de discussão |
problema com o Gerenciamento Avançado de Energia e Configuração (acpi(4)) | kern | freebsd-acpi | lista de discussão |
problema com os drivers de Modo de Transferência Assíncrona (ATM) | kern | freebsd-atm | lista de discussão |
problema com sistemas FreeBSD incorporados ou small-footprint (por exemplo, NanoBSD/PicoBSD/FreeBSD-arm) | kern | freebsd-embedded | lista de discussão |
problema com os drivers FireWire® | kern | freebsd-firewire | lista de discussão |
problema com o código do sistema de arquivos | kern | freebsd-fs | lista de discussão |
problema com o subsistema geom(4) | kern | freebsd-geom | lista de discussão |
problema com o subsistema ipfw(4) | kern | freebsd-ipfw | lista de discussão |
problema com drivers de Rede Digital de Serviços Integrados (ISDN) | kern | freebsd-isdn | lista de discussão |
problema com o subsistema jail(8) | kern | freebsd-jail | lista de discussão |
problema com emulação do Linux® ou do SVR4 | kern | freebsd-emulation | lista de discussão |
problema com a pilha de rede | kern | freebsd-net | lista de discussão |
problema com o subsistema pf(4) | kern | freebsd-pf | lista de discussão |
problema com o subsistema scsi(4) | kern | freebsd-scsi | lista de discussão |
problema com o subsistema sound(4) | kern | freebsd-multimedia | lista de discussão |
problema com o subsistema wlan(4) e drivers wireless | kern | freebsd-wireless | lista de discussão |
problema com o sysinstall(8) ou o bsdinstall(8) | bin | freebsd-sysinstall | lista de discussão |
problema com os scripts de inicialização do sistema (rc(8)) | kern | freebsd-rc | lista de discussão |
problema com a funcionalidade VIMAGE ou VNET e código relacionado | kern | freebsd-virtualization | lista de discussão |
problema com a emulação do Xen | kern | freebsd-xen | lista de discussão |
Tipo | Categoria Sugerida | Atribuidor sugerido | Tipo de Atribuidor |
---|---|---|---|
problema com o framework de ports (não com um port individual!) | ports | portmgr | alias |
port mantido por apache@FreeBSD.org | ports | apache | lista de discussão |
port mantido por autotools@FreeBSD.org | ports | autotools | alias |
port mantido por doceng@FreeBSD.org | ports | doceng | alias |
port mantido por eclipse@FreeBSD.org | ports | freebsd-eclipse | lista de discussão |
port mantido por gecko@FreeBSD.org | ports | gecko | lista de discussão |
port mantido por gnome@FreeBSD.org | ports | gnome | lista de discussão |
port mantido por hamradio@FreeBSD.org | ports | hamradio | alias |
port mantido por haskell@FreeBSD.org | ports | haskell | alias |
port mantido por java@FreeBSD.org | ports | freebsd-java | lista de discussão |
port mantido por kde@FreeBSD.org | ports | kde | lista de discussão |
port mantido por mono@FreeBSD.org | ports | mono | lista de discussão |
port mantido por office@FreeBSD.org | ports | freebsd-office | lista de discussão |
por mantido por perl@FreeBSD.org | ports | perl | lista de discussão |
port mantido por python@FreeBSD.org | ports | freebsd-python | lista de discussão |
port mantido por ruby@FreeBSD.org | ports | freebsd-ruby | lista de discussão |
port mantido por secteam@FreeBSD.org | ports | secteam | alias |
port mantido por vbox@FreeBSD.org | ports | vbox | alias |
por mantido por x11@FreeBSD.org | ports | freebsd-x11 | lista de discussão |
Os relatórios de problemas dos ports que têm um mantenedor que é um colaborador do ports podem ser reatribuídos por qualquer pessoa (mas observe que nem todo committer do FreeBSD é necessariamente um committer do ports, então você não pode simplesmente ir apenas pelo endereço de e-mail.)
Para outros PRs, por favor, não reatribua-os para indivíduos (além de si mesmo) a menos que você esteja certo de que o assignee realmente queira acompanhar o PR. Isso ajudará a evitar situações nas quais em que ninguém olha para corrigir um problema específico porque todo mundo assume que o assignee já está trabalhando no mesmo.
Tipo | Categoria Sugerida | Atribuidor sugerido | Tipo de Atribuidor |
---|---|---|---|
problema com o banco de dados de PRs | bin | bugmeister | alias |
problema com o formulario web do Bugzilla. | doc | bugmeister | alias |
6. PRs Atribuídos
Se um PR tem o campo responsável
configurado com o nome de usuário de um desenvolvedor do FreeBSD, isso significa que o PR foi entregue para aquela pessoa específica para trabalhos posteriores.
Os PRs atribuídos não devem ser alterados por ninguém além do assignee ou do bugmeister. Se você tiver comentários, envie um acompanhamento. Se, por algum motivo, você achar que o PR deve mudar de estado ou ser reatribuído, envie uma mensagem para o assignee. Se o assignee não responder dentro de duas semanas, desfaça a atribuição do PR e faça o que desejar.
7. PRs Duplicados
Se você encontrar mais de um PR que descreva o mesmo problema, escolha aquele que contém a maior quantidade de informações úteis e feche os outros, declarando claramente o número do PR substituto. Se vários PRs contêm informações úteis que não se sobrepõem, envie todas as informações ausentes em um acompanhamento para um PR, incluindo referências aos outros; em seguida, feche os outros PRs (que agora foram completamente substituídos).
8. PRs Obsoletos
Um PR é considerado obsoleto se não foi modificado há mais de seis meses. Aplique o seguinte procedimento para lidar com PRs obsoletos:
Se o PR contém detalhes suficientes, tente reproduzir o problema em
-CURRENT
e-STABLE
. Se você conseguir reproduzir o problema, envie um acompanhamento detalhando suas descobertas e tente encontrar alguém para atribuí-lo. Defina o estado como "analisado" se for apropriado.Se o PR descreve um problema que você sabe que é o resultado de um erro de uso (configuração incorreta ou de outra forma), envie um acompanhamento explicando o que o originador fez de errado e, em seguida, feche o PR com a razão "Erro do usuário" ou "Erro de configuração".
Se o PR descreve um erro que você sabe que foi corrigido tanto em
-CURRENT
quanto em-STABLE
, feche-o com uma mensagem indicando quando foi corrigido em cada branch.Se o PR descreve um erro que você sabe que foi corrigido em
-CURRENT
, mas não em-STABLE
, tente descobrir quando a pessoa que corrigiu planeja fazer o MFC (merge from current) para o-STABLE
, ou tente encontrar outra pessoa (talvez você mesmo?) para fazer isso. Defina o estado como "corrigido" e atribua-o à pessoa que fará o MFC.Em outros casos, peça ao originador para confirmar se o problema ainda existe em versões mais recentes. Se o originador não responder dentro de um mês, feche o PR com a anotação "Tempo limite de feedback".
9. PRs não relacionados a bugs
Desenvolvedores que encontram PRs que parecem ter sido postados em lista de discussão para reportar erros no FreeBSD ou em outra lista devem fechar o PR, informando ao remetente em um comentário por que isso não é realmente um PR e onde a mensagem deve ser postada.
Os endereços de e-mail que o Bugzilla utiliza para receber PRs foram publicados como parte da documentação do FreeBSD, foram anunciados e listados no site. Isso significa que spammers os encontraram.
Sempre que você fechar um desses PRs, por favor, faça o seguinte:
Defina o componente como
junk
(emSupporting Services
).Defina o responsável como
nobody@FreeBSD.org
.Defina o estado como
Problema Resolvido
(ou "Issue Resolved" em inglês).
Definir a categoria como junk
torna óbvio que não há conteúdo útil dentro do PR e ajuda a reduzir a desordem nas categorias principais.
10. Leitura Adicional
Esta é uma lista de recursos relevantes para a escrita adequada e o processamento dos relatórios de problemas. De forma alguma é uma lista completa.
Como Escrever Relatórios de Problemas do FreeBSD - diretrizes para os autores de PRs.
Última alteração em: 24 de abril de 2023 por Edson Brandi