Processo de Revisão de Pacote

Para que um novo pacote seja adicionado ao Fedora, o pacote deve primeiro passar por uma revisão formal. O processo é regido pela Política de Revisão de Pacotes aprovada pela FESCo.

Processo de Revisão

Existem duas funções no processo de revisão: a do contribuidor e a do revisor. Este documento apresenta ambas as perspectivas.

Isenções

Certos pacotes estão isentos do processo de revisão conforme descrito em seção Aplicabilidade da Política de Revisão de Pacote. Se uma isenção for garantida, o contribuidor poderá solicitar diretamente um repositório para o pacote. A solicitação para criar um repositório deve incluir o sinalizador --exception em vez de um número de bug:

fedpkg request-repo --exception <nome-pacote>

Contribuidor

Um Contribuidor é definido como alguém que deseja enviar (e manter) um novo pacote no Fedora. Para se tornar um contribuidor, você deve seguir as instruções detalhadas em Juntando-se aos Mantenedores de Pacotes.

Como Contribuidor, você já deve ter criado um pacote que segue as Diretrizes de Empacotamento e não contém nenhum dos Itens Proibidos.

Quando estiver satisfeito com seu arquivo de especificações, você deverá enviar esse SRPM para uma revisão de pacote. Atualmente, isso é feito seguindo estas etapas:

  • Colocar seu arquivo spec e SRPM em algum lugar na Internet onde possa ser baixado diretamente (apenas http(s), sem páginas de registro ou métodos especiais de download, por favor). Se você não tem onde colocar suas especificações e SRPM, use copr.

  • Preencha uma solicitação de revisão no bugzilla. Certifique-se de registrar esse bug com uma conta vinculada ao seu endereço de e-mail FAS, caso contrário, suas solicitações de acompanhamento serão encerradas como inválidas.

Se ninguém comentar sobre sua solicitação de revisão, você pode enviar um e-mail para uma lista de discussão (por exemplo, devel) ou para a categoria Package Review Swaps no Discourse do Fedora para solicitar uma "troca de revisão". Esta é uma oferta para fazer uma revisão do pacote de outra pessoa em troca da revisão do seu pacote. Geralmente é um por um ou pode ser algum outro acordo privado, dependendo da dificuldade dos respectivos pacotes.
  • Se você não é membro do grupo packager, você precisa de um patrocinador. Adicione FE-NEEDSPONSOR aos bugs bloqueados por sua solicitação de revisão. Para obter mais informações, leia Como Conseguir Patrocínio para o Grupo Packager.

  • Se esta for uma solicitação de "re-revisão" necessária para reivindicar propriedade de um pacote retirado, adicione Unretirement ao campo Whiteboard.

  • Espere alguém revisar seu pacote! Neste ponto do processo, o sinalizador fedora-review está em branco, o que significa que nenhum revisor foi atribuído.

  • Pode haver comentários de pessoas que não estão revisando formalmente o pacote, elas podem adicionar NotReady ao campo Whiteboard, indicação de que a solicitação de revisão ainda não está pronta, devido a alguns problemas relatados. Depois de abordá-los, poste os URLs no arquivo SPEC e SRPM atualizado e limpe o Whiteboard. Espera-se que você responda aos comentários, inclusive atualizando seu envio para abordá-los; caso contrário, seu ticket será fechado.

  • Um revisor assume a tarefa de revisar seu pacote. Ele definirá o sinalizador fedora-review como ?.

  • O revisor analisará seu pacote. Você deve corrigir todos os bloqueadores identificados pelo revisor. Assim que o revisor estiver satisfeito com o pacote, o sinalizador fedora-review será definido como +, indicando que o pacote foi aprovado na revisão.

  • Se você ainda não foi patrocinado, solicite patrocínio em registrando um issue em packager-sponsors.

  • Quando seu pacote for aprovado na revisão, você deverá usar fedpkg para solicitar um repositório Git para ele. Antes de solicitar um repositório Git para o pacote, você precisará de um token de api do pagure.io com a ACL Create a new ticket adicionada em ~/.config/rpkg /fedpkg.conf:

    [fedpkg.pagure]
    token = <código-gerado>
  • Solicite um repositório Git para o pacote. Por exemplo, se o nome do pacote for meu-pacote e o ticket de revisão do bugzilla for 12345,:

    fedpkg request-repo meu-pacote 12345

    Verifique se o seu bug de revisão é válido. Deve ter o fedora-review definido como + e deve ser atribuído ao seu revisor. Caso contrário, sua solicitação de repositório será encerrada como inválida.

  • Se você deseja adicionar seu pacote a mais versões do Fedora e não apenas ao Rawhide, digamos, ao Fedora 38, você pode usar o seguinte comando para solicitar branches adicionais:

    fedpkg request-branch --repo meu-pacote f{MAJOROSVER}`

    Você não precisa esperar que seu repositório seja criado antes de enviar sua solicitação de ramificação, mas você deve solicitar o repositório antes de solicitar branches.

  • Quando os tickets de fedora-scm-requests para o repositório solicitado e os branches forem fechados, faça um checkout do pacote:

    fedpkg clone
  • Agora você pode importar seu pacote SRPM. Faça uma verificação final das tags do arquivo spec, etc.

  • Solicite uma compilação ao Koji executando fedpkg build. (Você precisará configurar Kerberos para projeto Fedora)

  • Repita o processo para outros branches que você tenha solicitado acima:

    • Faça o checkout do branch dado: fedpkg switch-branch f38

    • Deixe Koji construir o pacote para este branch: fedpkg build

  • Solicite atualizações para branches de lançamento do Fedora, se necessário, usando fedpkg update ou outra interface Bodhi conforme detalhado em Bodhi.

  • Se possível, adicione seu pacote ao sistema de monitoramento de lançamento upstream, o Upstream Release Monitoring.

  • Para ser notificado se o seu pacote parar de ser compilado com sucesso quando as dependências forem atualizadas no Fedora, você pode habilitar o Koschei.

  • Você deve certificar-se de que o ticket de revisão esteja fechado. Você pode fechá-lo assim que o pacote for compilado nos branches solicitados. Se você construiu para um dos branches de lançamento do Fedora, você pode pedir ao Bodhi para fechar o ticket para você quando o processo for concluído. Se você mesmo fechar o ticket, use NEXTRELEASE como resolução.

Você não precisa passar pelo processo de revisão novamente para alterações subsequentes no pacote e não deve fazer referência ao ticket de revisão em atualizações subsequentes criadas no Bodhi.

Revisor

O Revisor é a pessoa que escolhe revisar um pacote.

O Revisor pode ser qualquer titular de conta Fedora que seja membro do grupo packager. (Se o Colaborador ainda não for patrocinado, a revisão ainda poderá ser concluída, mas ele precisará encontrar um patrocinador em algum momento.)

  • Pesquise no Package Review Tracker por uma solicitação de revisão que precisa de um revisor: o sinalizador fedora-review está em branco ou o bug está atribuído a nobody@fedoraproject.org.

  • Se você notar alguns problemas que precisam ser resolvidos antes de iniciar uma revisão formal, adicione esses problemas em um comentário e defina o Whiteboard do bug para conter NotReady. Isso ajuda outros possíveis revisores a perceberem que a solicitação de revisão ainda não está pronta para futuras ações de revisão.

  • Se você quiser revisar formalmente o pacote, defina o sinalizador fedora-review como ? e atribua o bug a você mesmo.

  • Revisar o pacote

  • Inclua o texto da sua avaliação em um comentário no ticket. Para facilitar a leitura, basta usar um comentário normal em vez de um anexo.

  • Execute uma das seguintes ações:

    • ACCEPT - Se o pacote for bom, configure o sinalizador fedora-review para +. Não feche o ticket de revisão ainda - isso será feito pelo remetente assim que o pacote estiver disponível no Fedora.

    • FAIL, LEGAL - Se o pacote for legalmente arriscado por qualquer motivo (violação conhecida de patente ou direitos autorais, preocupações com marcas registradas) feche o bug como WONTFIX e deixe um comentário apropriado (por exemplo, não enviamos mp3, então pare de enviá-lo). Defina o sinalizador fedora-review para -, e tenha o bloco de ticket de revisão FE-Legal.

    • FAIL, OTHER - Se o pacote estiver errado ou for inadequado por algum outro motivo, e não há solução simples, então feche o bug como WONTFIX e deixe um comentário apropriado (por exemplo, não empacotamos pornografia para redistribuição, desculpe. Ou este não é um arquivo específico, é um menu do McDonald’s, desculpe.) Defina o sinalizador fedora-review como -.

    • NEEDSWORK - Qualquer coisa que não falhe explicitamente deve ser deixada em aberto enquanto o remetente e o revisor trabalham juntos para corrigir possíveis problemas. Marque o bug como NEEDINFO enquanto espera que o revisor responda às solicitações de melhoria. Isso torna mais fácil para os revisores encontrar avaliações abertas que exigem sua contribuição.

  • Uma vez que um pacote é sinalizado como fedora-review + (ou -), o trabalho do Revisor está concluído, embora ele possa ser chamado para ajudar o Colaborador no processo de importação/construção/atualização e para garantir que o Colaborador feche o ticket quando o processo for concluído.

Definições para configurações do sinalizador fedora-review

fedora-review

(BLANK)

O pacote precisa ser revisão

fedora-review

?

Pacote sob revisão

fedora-review

-

O pacote falhou na revisão, descartado por questões legais ou outras questões.

fedora-review

+

Pacote aprovado

Tickets especiais bloqueadores

Existem alguns tickets que podem ser colocados no campo "Blocks" para indicar status específicos dos tickets:

FE-NEEDSPONSOR

O remetente requer um patrocinador; a revisão pode ser feita por qualquer pessoa, mas um patrocinador precisará vir e patrocinar o remetente.

FE-DEADREVIEW

A revisão foi encerrada porque o remetente se retirou; usuários que procuram pacotes para enviar podem encontrar algumas possibilidades nesses tickets mortos.

FE-Legal

O pacote está atualmente aguardando revisão pela equipe jurídica.

O Whiteboard

Para economizar tempo dos revisores, a página New, reviewable Fedora package review tickets ocultará certos tickets que não podem ser revisados. O campo Whiteboard (quadro branco, em inglês) pode ser usado para marcar um ticket com vários bits adicionais de status que farão com que ele seja oculto ou exibido de forma diferente.

NotReady

O pacote ainda não está pronto para revisão. É possível abrir um ticket de revisão, marcá-lo como NotReady e continuar trabalhando nele até que esteja pronto para ser visto por um revisor.

BuildFails

O pacote falha ao ser compilado.

AwaitingSubmitter

A revisão do pacote está paralisada e não pode prosseguir sem a entrada do remetente.

Trivial

O pacote é trivial para revisar. Veja abaixo.

Unretirement

Uma nova revisão necessária para reivindicar propriedade de um pacote retirado.

O status Trivial destina-se a indicar pacotes que, como auxílio aos novos revisores, são especialmente descomplicados e fáceis de revisar. Um ticket não deve ser marcado como trivial, a menos que:

  • O pacote é conhecido por ser compilado e um link para uma compilação inicial está incluído.

  • O ticket explica qualquer saída do rpmlint que esteja presente.

  • A especificação não contém nada que seja desnecessário no Fedora moderno (como BuildRoot:, uma seção %clean ou %defattr).

  • A especificação está livre de uso excessivo ou complicado de macros.

  • A especificação usa apenas os scriptlets menos complicados que são obtidos diretamente da página Scriptlets.

  • O pacote não contém daemons.

  • O pacote não é especialmente sensível à segurança.

  • O código passou por uma inspeção completa para questões de licenciamento. As anomalias que seriam encontradas pelo licensecheck devem ser explicadas.

Em suma, isto deve ser reservado apenas para aqueles bilhetes que devem ser facilmente acessíveis por alguém que faz a primeira revisão do pacote.

Acompanhamento de solicitações de pacotes

O Package Review Tracker fornece vários relatórios relacionados a revisões e uma maneira simples de pesquisar revisões por nome de pacote, nome de repórter ou outros.