Padrões

Branches

O branch master deve ser considerado estável, mas somente as tags são versões liberadas para produção.

Todo desenvolvimento ou alterações devem ser feitos em forks e/ou em branches separados, nunca deve ser commitado diretamente no master. Para adicionar código de um branch para o master deve ser feito um pull/merge request. O pull/ merge request de uma alteração só poderá ser aberto quando o código for colocado em review.

O nome da branch deve ser o número do ticket associado as alterações com um prefixo do tipo de ticket. Segue os tipos de prefixos:

  • feat: Para tickets de feature
  • bug: Para branches de tickets de bugs
  • doc: Para tickets de documentação em geral
  • chore: Para tickets de atividades em geral
  • tech: Para tickets de débito técnico

Segue alguns exemplos de branches:

story-46666
feat-33556
bug-12334
doc-12312
tech-12314

As branches de fix seguem o segunte padrão:

fix-33556 (fix da feature)
fix-story-46666

Commits

O padrão de mensagem dos commits deve ser feat(produto/módulo) Mensagem.

feat(fwflex/openvpn) Adiciona ...
feat(fwflex/dbc) Altera ...

Antes de mergiar qualquer branch é necessário que a mesma tenha apenas um commit, para isso podemos seguir dois caminhos:

1- Realizar os commits conforme a necessidade e depois fazer o squash dos commits manualmente com o comando:

git rebase -i HEAD~13

Onde 13 seria o número de commits totais.

2- Ou efetuar o primeiro commit normalmente e depois utilizar o git amend e o push -f

git ammend
git push -f

Durante o review, deve-se verificar se existe apenas um commit na branch e se ele está dentro do padrão. Se não estiver, é necessário corrigi-lo.

Tipos de mensagem de commit

Os tipos podem ser um dos seguintes:

  • feat: Adição de novas funcionalidades ou melhorias
  • fix: Correção de um bug
  • doc: Adição ou atualização da documentação
  • refactor: Reorganizações de códigos e ajustes para melhorar a manutenção do código, não adiciona funcionalidades nem corrige bugs
  • chore: Mudanças nas ferramentas do repositório ou no processo de build

Commits de alteração de versão

As versões dos produtos seguem o versionamento semântico.

Commits de nova versão do produto devem alterar a somente a versão no arquivo VERSION e/ou no CHANGELOG.md, o comentário do commit deve ser no seguinte formato:

release: product-vMAJOR.MINOR.PATCH ...

onde:

  • MAJOR: alterações de versão onde há quebra de compatibilidade com as anteriores

  • MINOR: versões onde foram adicionadas novas funcionalidades ou melhorias

  • PATCH: versões onde foram corrigidos problemas, sem alterações de funcionalidade

Também deve ser criada uma tag no git no seguinte formato:

git tag product-MAJOR.MINOR.PATCH
git push orgin product-MAJOR.MINOR.PATCH

ex.:

# commit:
release: vpnflex-2.0.1

# tag:
vpnflex-2.0.1