Onde enviar um teste com falha?

15

Acabei de alterar as configurações de filial no meu repositório do GitHub, para que minha [próxima] ramificação exija uma configuração de CI de passagem por meio de uma solicitação pull.

Uma discussão seguiu com um número de membros da equipe, sobre testes que falharam.

Por amor ao contexto ...

O repositório tem um branch [master] que é apenas PR em quando há um release, então [master] contém o código do último release, independente de ser um major, um menor, um hotfix, uma versão beta, alfa / pré-lançamento.

A ramificação [next] é a "padrão", onde pretendemos manter o código "release-ready"; tecnicamente, esse ramo poderia ser inserido em [master] a qualquer momento e liberado.

Garfos individuais têm seus próprios ramos de desenvolvimento e contribuintes PR para [próximo].

Quando eu reviso um PR não-trivial, vou mesclar o ramo de desenvolvimento do colaborador em minha ramificação de "revisão" e, se vejo coisas que posso corrigir rapidamente, eu faço alterações de commit / push e testes novos (às vezes falham) e PR de volta ao ramo de desenvolvimento do colaborador; quando eles mesclam minhas alterações, fazem com que os novos testes com falha passem e, em seguida, pressionem, seu PR é sincronizado e, em seguida, vou mesclar o PR em [próximo].

Mas esta questão não é sobre passar testes, é sobre os com falha .

Failing tests document what needs to be fixed.

Known bugs should have tests written for, so that we know what's not working.

Tecnicamente, a lista problemas do GitHub (filtrada por e / ou rótulos ) faz isso também. É uma boa prática também ter vários testes para documentar bugs?

Uma falha na construção [next] significaria que não estamos prontos para o lançamento ... mas "estar pronto para o lançamento" é um pouco como "estar pronto" para ter filhos - você nunca está bastante pronto para isso, e alguma coisa, em algum lugar (de importância variável) irá inevitavelmente dar errado com o lançamento.

Então, estamos apenas empurrando os testes de passagem para [próximo]. Para onde enviar testes com falha? Quer dizer, fora do processo de RP / revisão?

Por exemplo, um usuário reporta um novo bug na lista de problemas, e eu gostaria de escrever um conjunto de testes para ele - assim como especificar o que precisa ser feito e onde, o que torna mais fácil para novos contribuidores para pegar e, eventualmente, PR uma correção.

Onde devo estar empurrando esses testes com falha? Ou é mesmo uma boa ideia enviar testes com falhas em qualquer lugar?

    
por Mathieu Guindon 11.05.2016 / 21:16
fonte

2 respostas

12

O que eu faria nessa situação é marcar os testes com falha como "ignorados" - assim você ainda tem o teste para saber o que precisa corrigir no futuro, mas não vai acabar com construções quebradas.

Se você também marcar cada teste com a referência do rastreador de problemas para corrigir o problema, isso dará a você uma maneira fácil de juntar as coisas.

    
por 11.05.2016 / 21:50
fonte
5

Full disclosure: I am one of the participants in the discussion.

O ramo principal do repositório não é o ramo principal. A mesclagem em mestre não serve a nenhum "propósito real" e esse ramo não está fazendo coisas que um ramo deve fazer (ou seja, mover ). Você está abusando desse ramo como um Tag para o último lançamento.

Em vez de usar um ramo, use um tag. Quando você deseja liberar, você faz as etapas necessárias em um "Release-Branch", como um branch de tópicos. Então você mescla isso em [próximo] e coloca uma tag nele.

O papel que [o próximo] cumpre é o de um ramo mestre. Apenas o código pronto para lançamento entra lá. Qualquer outra coisa seria um ramo [desenvolver]. Uma ramificação de desenvolvimento contém o trabalho a ser estabilizado . Isso significa: remove [master], redireciona [next] a maneira que você já fez e cria outra ramificação para trabalhos "menos estáveis".

Como a exceção é mais do que a regra de que é necessário realizar testes com falha, que lembram bugs pendentes, não deve ser um problema muito grande criar e destruir a ramificação menos estável conforme necessário

    
por 11.05.2016 / 22:58
fonte