Contribuindo para EJ

O repositório principal do EJ usa o "master" como principal ramificação de desenvolvimento e tags para releases estáveis. Geralmente, queremos mover o código para a master o mais rápido possível, mas precisamos de alguma disciplina para fazê-lo funcionar. A master é bloqueada e envios de novos recursos são feitos usando pull requests.

Para cada problema ser resolvido, siga o procedimento abaixo:

  • No caso do seu ambiente de desenvolvimento ainda não estar construído, clone o repositório, e siga o guia de instalação em README.rst . Instale os ganchos de commit para verificar estatisticamente seu código antes de cada commit:

    $ inv install-hooks
    
  • Faça o checkout para um ramo que você criou para resolver seu problema. Para coisas simples, use o ramo genérico develop , caso contrário, descreva o que você vai fazer por exemplo:

    $ git checkout -b facebook-login
    
  • Sempre execute todos os testes antes de qualquer commit, caso contrário seu pull request não será mesclado!

    $ pytest   # backend tests
    
  • Após terminar, abra um pull request para a master:

    ejplatform/ej-server/<your-branch>  ==>  ejplatform/ej-server/master
    

    e espere até que Travis CI, GitLab CI e Code Clima execute todos os testes de integração. Seu PR deve ter uma pequena explicação sobre o que ele faz de preferência com um link para a issue original. Por favor, diga explicitamente se o PR fecha essa issso ou não e mova o problema para o slot apropriado no quadro Projetos.

  • Qualquer colaborador pode mesclar seu PR após os testes passados. Idealmente, podemos usar um segundo par de olhos para rever o código, especialmente para código complicado. Mas, se Você está com pressa, você pode aceitar o seu próprio PR.

  • Se alterações foram feitas em um branch diferente de dev, então exclua-o depois de sua PR ser mesclada.

O que deve ser commitado diretamente para dev?

dev é o ramo para pequenas contribuições de manutenção e é provável que mais de um desenvolvedor estará trabalhando nele simultaneamente. Trabalho aceitável para fazer em dev inclui:

  • Pequenas correções de bug que afetam apenas algumas funções em um único arquivo.
  • Pequenos ajustes em modelos CSS e HTML.
  • Escrever novos testes.
  • Refatorar partes pequenas do código para aumentar a qualidade do código ou o desempenho.
  • Implementação de recursos simples isolados que não afetam outras partes do sistema (ou seja, criar uma nova view ou api)
  • Atualiza os arquivos de tradução .po.
  • Atualiza a documentação.