Várias equipes da minha empresa praticam um fluxo de trabalho de revisão de código que nunca vi antes. Estou tentando entender o pensamento por trás disso, com a ideia de que há valor em tornar a empresa inteira consistente. (Eu contribuo com várias bases de código e fui enganado pelas diferenças do passado.)
- O autor do código envia uma solicitação de recebimento
- O revisor examina o código
- Se o revisor aprovar, ele deixa um comentário como "Parece bom, fique à vontade para mesclar"
- Se o revisor tiver alguma dúvida, deixe um comentário como "Corrija os problemas menores X e Y e depois mescle" (Para alterações importantes, retorne à etapa 2)
- O autor do código faz alterações, se necessário, e mescla sua própria solicitação de recebimento
Tenho as seguintes preocupações:
No caso de aprovação na etapa 3, esse fluxo de trabalho cria uma ida e volta aparentemente desnecessária para o autor da solicitação de recebimento. O revisor, que já está vendo o código, pode mesclá-lo imediatamente.
No caso de alterações serem solicitadas na etapa 3, a agência para mesclar a solicitação pull agora fica apenas com o autor do PR. Ninguém além do autor analisará as alterações antes da fusão.
Quais são algumas outras vantagens ou desvantagens desse fluxo de trabalho? Esse fluxo de trabalho é comum em outras equipes de engenharia?
fonte
Respostas:
No primeiro caso, geralmente é uma cortesia. Na maioria das organizações, as fusões iniciam uma série de testes automatizados que devem ser tratados imediatamente se falharem. Especialmente se houver um atraso significativo entre quando uma solicitação de recebimento foi enviada e quando foi revisada, é educado permitir que ela seja mesclada no cronograma do autor, para que eles tenham tempo para lidar com qualquer precipitação inesperada. A maneira mais fácil de fazer isso é deixá-los fundir eles mesmos.
Além disso, algumas vezes o autor toma conhecimento dos motivos mais tarde para que uma solicitação de recebimento ainda não deva ser mesclada. Talvez o PR de outro desenvolvedor seja uma prioridade mais alta e cause conflitos. Talvez ela tenha pensado em um caso de uso descoberto. Talvez um comentário de revisão tenha desencadeado um brainstorm que precisa de mais investigação antes que o problema seja totalmente satisfeito. O autor sabe o máximo sobre o código e faz sentido dar a última palavra sobre quando ele é mesclado.
No segundo ponto, isso é apenas uma questão de confiança. Se você não pode confiar nas pessoas para corrigir pequenos problemas sem ser verificado duas vezes, elas não devem estar funcionando para você. Se o problema for grande o suficiente para precisar de outra revisão após a correção, confie nos revisores para solicitar uma.
Dito isto, ocasionalmente mesclo solicitações de recebimento de outros autores, mas geralmente são alterações muito simples ou de fontes externas, nas quais eu pessoalmente assumo a responsabilidade de pastorear qualquer falha de automação de teste.
fonte
Ter o autor inicial mesclando sua própria solicitação de recebimento é o meu fluxo de trabalho preferido em equipes pequenas. Além das vantagens técnicas já mencionadas (em termos de resolução de conflitos de mesclagem, por exemplo), acho que agrega valor em nível cultural: constrói um senso de propriedade.
Especifiquei o autor inicial para o caso (raro) em que outro desenvolvedor adicionaria confirmações à solicitação de recebimento aberto (puxando o ramo do recurso de trabalho em andamento e retornando a ele). Isso não acontece com frequência e resultaria de uma conversa pessoalmente ou por meio do Slack: Esses commits adicionais (por outra pessoa) não devem chegar lá de surpresa! Nesse contexto, por autor inicial , quero dizer quem enviou a solicitação de recebimento.
fonte
Na minha organização, somos bastante novos em solicitações pull e sua pergunta é uma que eu me questionei.
Uma observação que eu gostaria de acrescentar: Em algumas ferramentas (usamos o TFS), pode haver um item de trabalho associado à solicitação de recebimento.
Se for esse o caso, torna-se um pouco complicado acompanhar quando o revisor executou a mesclagem. Nesse cenário, o desenvolvedor precisa revisitar o PR, abrir o bug ou a solicitação de alteração e marcá-lo como 'resolvido'. Se a marcarmos como 'resolvida' muito cedo, os testadores acreditarão que a correção já faz parte da compilação atual.
O TFS 2017 melhorou a implementação da solicitação pull. Agora, o desenvolvedor pode solicitar que a solicitação de solicitação seja mesclada automaticamente se todas as condições forem atendidas (sem conflito de mesclagem, aprovação dos revisores e nenhuma compilação quebrada). YMMV.
fonte
Dessa forma, o autor tem a chance de mudar de idéia sobre seu ramo, talvez ele tenha descoberto algo que deve ser feito de uma maneira diferente e colocado os custos adicionais de volta para revisão.
fonte