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.