Como contribuir?

Se você é um usuário externo ao time de desenvolvimento do IndicaAi e quer contribuir com a nossa proposta você deve fazer um fork do repositório e seguir os passos a frente. Para quem já faz parte do nosso time de desenvolvimento, basta seguir esses passos:

  1. Criar sua issue
  2. Criar uma branch
  3. Fazer seus commits
  4. Abrir um Pull Request

Política de Issues

  • As issues devem possuir um nome simples que descreva com poucas palavras o seu propósito;
  • A descrição da issue deve relatar mais a funcionalidade ou bug a ser solucionado. Não é obrigatório inserir uma descrição se o nome da issue já consegue descrever bem o objetivo, mas nós recomendamos colocar sempre :)
  • Lembre-se sempre de identificar a issue com as labels referentes. Isso ajuda o nosso trabalho na hora de mapear quais são as demandas de cada área do projeto.

Issues para novas funcionalidades

  • Novas funcionalidades devem ser descritas como user stories, conforme a metodologia aplicada no nosso projeto;
  • Essas issues devem ser acompanhadas de uma lista de critérios de aceitação que garantem que o ao implementar o objetivo será atendido, tanto em termos de funcionalidade, usabilidade, design e qualidade de código;
  • No nosso repositório nós já disponibilizamos um templete básico para essas issues, com alguns critérios comuns a maioria das funcionalidades.
  • Para melhor identificar essas issues o nome deve seguir o seguinte padrão:

    US - Nome da Issue

Issues para histórias técnicas

  • Histórias técnicas devem ser descritas conforme o padrão definido na metodologia desse projeto;
  • Para melhor identificar essas issues o nome deve seguir o seguinte padrão:

    TS - Nome da Issue


Política de Branchs

Branch master

A branch master é a branch estável do projeto, onde estará o código de produção. Commits e pushes para essa branch estarão bloqueados. Somente serão aceitos pull requests para essa branch oriundos da branch devel.

Branch devel

A branch devel será a branch de desenvolvimento, na qual será unificado novas funcionalidades e correções no código visando gerar uma nova versão estável.

Nomenclatura das branchs

Os nomes das branchs devem estar em inglês e serem objetivos e claros, especificando em poucas palavras a intenção da branch. Além do mais, devem referenciar a issue relacionada no início do nome, conforme o seguinte padrão:

x-branch-name

Onde x refere-se ao número da issue.

Branchs de Documentação

Branchs cujo foco seja unicamente atualizar a documentação do repositório devem seguir o seguinte padrão:

documentation/x-branch-name

Branchs de novas funcionalidades

Branchs cujo foco seja inserir uma nova funcionalidade no sistema, em geral relacionadas as user stories devem seguir o seguinte padrão:

feature/x-branch-name

Branchs para correção de bugs

Branchs cujo foco seja corrigir funcionalidade no sistema, em geral relacionadas as user stories devem seguir o seguinte padrão:

bugfix/x-branch-name

Branchs para refatoração de código

Branchs cujo foco seja refatorar uma funcionalidade no sistema, em geral relacionadas as techical stories devem seguir o seguinte padrão:

refactor/x-branch-name

Branchs para problemas críticos em produção

Branchs cujo foco seja corrigir algum problema crítico em produção, o qual não possa esperar até a próxima release devem seguir o seguinte padrão:

hotfix/x-branch-name

Branchs para lançamento de versão

release/stable-x.x.x

Onde x.x.x refere-se ao número da versão que será lançada.


Política de Commits

Mensagem do Commit

A descrição dos commits deve estar em inglês e ser sucinta e objetiva, representando claramente o que está sendo alterado naquele commit. A mensagem deve estar acompanhada do número da issue relacionada, como no exemplo abaixo:

git commit -m'#X my message'

Onde X representa o número da issue relacionada.

Commits com pareamento

Quando houver pareamento o commit deve vir acompanhado da mensagem: Co-authored-by: CoAuthorName <coauthoremail@mail.com>. Para tal deve-se seguir os seguintes passos:

  1. git commit -s
  2. Inserir a descrição do commit na primeira linha
  3. Na linha seguinte inserir a mensagem Co-authored-by: CoAuthorName <coauthoremail@mail.com>, com os respectivos dados do co-autor.

Política de Pull Requests

Os Pull Requests devem possuir a descrição em inglês e seguir as seguintes recomendações:

  • Pull Requests originados de branchs classificadas como feature, documentation e bugfix devem ser abertos para a branch devel.

  • Pull Requests originados de branchs hotfix devem ser abertos direto para branch master.

Pull Requests em progresso

Pull Requests que ainda não estão prontos para serem aceitos devem conter a sinalização WIP - Work in Progress logo no início do nome. Exemplo:

WIP: my pull request

Condições para aprovação do Pull Request

Para que o pull request seja aceito nas branchs oficiais ele deve atender os seguintes pontos:

  • Funcionalidade, correção ou refatoração completa;
  • Build de integração contínua passando;
  • Manter a cobertura do código acima de 90%;
  • Estar de acordo com as métricas de qualidade de código descritas no plano de qualidade.

Pull Requests de Lançamento de Versão

Lançamentos de novas versões a partir devel deve ser realizado seguindo os seguintes passos:

  1. Criar uma branch release a partir da devel com o número da nova versão
  2. Lançar a tag do nova release
  3. Atualizar a master com a nova release

Outros Documentos