-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
O que é um PR válido? #2
Comments
@rodrigondec concordo com os pontos que você levantou, acho que é esse o caminho. Tenho algumas sugestões dentre os tópicos: Automatizações
Acredito que essa verificação será explicita nos checks do github com o integrador de CI, sendo a validação obrigatória para a versão do Node que utilizaremos, exemplo:
Em cada etapa dessa, devem ser rodados todos os testes do projeto. Além desses steps, acho que podemos ter as verificações de estilo de código, para garantir que o novo código que está sendo sugerido, segue o padrão definido pelo nosso linter. Podemos utilizar um script que roda uma verificação e caso de erro, esse step quebre no CI e impeça que o código seja mergeado, forçando o dev a corrigir os erros de estilo. É possível fazer isso com um comando semelhante a: "eslint:check": "./node_modules/.bin/eslint .",
"prettier:check": "./node_modules/.bin/prettier --check \"**/{*.js,*.json,bin/**}\"",
"style:check": "npm run prettier:check && npm run eslint:check", Dessa forma, o comando Como sugestão de regras para estilo, deixo aqui um projeto de boilerplate que utilizo na empresa onde trabalho, que já possui regras definidas para o linter com base no guia de estilos do AirBnB. Sugestão de regras do ESlint Outro ponto que gostaria de levantar é a cobertura de código. Acho que é bem importante nos checks de uma PR ter a verificação da cobertura do branch, onde esta deve ser maior ou igual a cobertura do branch para onde a PR está sendo mergeada. Assim, teremos uma maior garantia que todo novo código ou código alterado, terá ao menos um teste para ele. Podemos usar o CodeCov como plataforma para integrar. O que devemos revisar em uma PRImagino que o trabalho de revisão "manual" é tudo aquilo que não conseguimos automatizar. Portanto, penso que uma revisão de PR deve cobrir os segunites tópicos:
O que acham ? Referências |
Outra etapa possivel de adicionar antes da review é o sonarqube. Se quebrar as regras do sonar, não passa por review. A não ser que isso seja acordado com algum revisor. Se não me engano, o sonar é free para open source. E é possível, também, colocar ele no docker para que a pessoa dev possa rodá-lo antes de abrir o PR. |
Nunca utilizei ele. Sempre utilizo o Codacy + snyk. É algo muito bom de se ter sim |
Em muitos projetos que trabalho utilizamos um card/issue para definir o entregável. Nesse card definimos criterios de aceite baseados no Requisito de Negócio. Assim podemos definir testes de comportamento (BDD), para garantir a entrega de valor. |
@fdiasr coloca uma referência disso para podermos ver. Estamos almejando que nossos issues tenham os requisitos funcionais de aceite, mas não utilizei BDD e como poderíamos documentar isso como critério de aceite |
BDD é um processo de desenvolvimento do produto que possibilita o uso de linguagem ubiqua, utilizando contexto de negócio e minizando o uso da linguagem e detalhes técnicos. Podemos definir um uma entrega de funcionalidade sendo descritivo quanto a mesma da seguinte forma:
Existe um padrão de Contexto (Given) -> Ação (When) -> Resultado (Then) na definição dos cenários que ajuda na estruturação da escrita dos cenarios:
Essa descrição fica objetiva para quem faz gestão do projeto e ao mesmo temo legivel para qualquer desevolvedor, pessoa de qualidade ou pessoa de ux/design, executar suas tarefas afim de atender a demanda. Como bonus existem ferramentas em grade partes das linguagens que executam suites de testes baseadas nesse formato. A criação dos cenários é feita antes do desenvolvimento e os mesmos são utilizados para validação após o desenvolvimento.
|
@ftathiago ótima recomendação, apoio 👏 |
@fdiasr muito bacana esse modelo de trabalho, nunca tinha visto dessa forma. Apoio em utilizarmos como template de Issue. O que acham @idvogados/backend ? |
Pessoal, contem comigo para formular isso e utilizar uma ferramenta para validarmos o comportamento após o desenvolvimento. |
@fdiasr abrimos um formulário para tech leads a um tempo atrás. Você respondeu? Caso tenha interesse, estamos precisando de pessoas para nos ajudar a organizar fluxos (tal como esse que você sugeriu se voluntariou a fazer). |
@rodrigondec nao respondi, entrei recentemente no grupo do slack, e consequentemente acesso ao github do projeto. Podemos ver sim se consigo atuar de forma que ajude mais o time a desenvolver e se organizar |
Você está no discord (se não estiver peço que entre)? Me manda seu usuário |
@rodrigondec entrei no discord, fiz um comentario no |
@rodrigondec , eu não trabalhei ainda com o Codacy e nem com o snyk. Olhando aqui no site do Codacy ele é pago até para uso local - o que não seria ideal. O sonarqube tem conectores com o mocha e valida as regras à partir do lint (ele tbm tem um pacote de regras próprio que poderia ser utilizado). Para projetos opensource ele disponibiliza gratuitamente uma cloud (sonarcloud), o que poderia até diminuir o tráfego da nossa nuvem. Se a galera quiser validar local, tbm tem um docker bem sussa de instalar e usar (tudo legal). |
Reaberto por não ter definições sobre isso no Contributing.md |
Resumo
Após termos o #1 concluídos, precisamos decidir e documentar quais os requisitos que utilizaremos para julgar o que é um PR válido.
Já temos alguns pontos. Mas precisamos expandir.
Explicar nossos 'padrões' de projeto e qualidade de código para ser um PR aceitável (isso pode ser adicionado posteriormente pois ainda será descutido com os tech leads).
Explicar também o que deve acontecer se for um PR inválido.
Exemplos
Por exemplo:
Esse issue existe em outros repos
Temos esse issue com a mesma discussão no idvogados.github.io e frontend. Utilizar esse issue para discutir.
idvogados/idvogados.github.io#2
idvogadosorg/idvogados-web#2
The text was updated successfully, but these errors were encountered: