Política de Branches - estudeplus/docs GitHub Wiki

Branch workflow

Para garantir um fluxo de trabalho contínuo e de forma padronizada possibilitando o rastreamento das funcionalidades desenvolvidas e facilitando a implementação de pipelines de integração(CI) e entrega(CD) contínua, será utilizada a estratégia de Git Flow com algumas modificações:

  • Não será utilizada o fluxo de branch para hotfix
  • Não será utilizado o fluxo de branch para release

Os conceitos chave para implementação da estratégia de Git Flow que serão utilizadas pelo grupo são:

  • Main Branches
  • Feature Branch
  • Pull Request

Main Branches

Essencialmente o repositório deve possuir duas branches principais:

  • master
  • develop

A branch master possui sempre a versão mais estável da aplicação, ou seja a versão que deve estar pronta para produção.

Já a branch develop possui a última versão desenvolvida da aplicação. Essa branch pode ser considerada a branch de integração, onde as diferentes funcionalidades desenvolvidas vão ser unidas em uma nova versão do sistema.

Feature Branch

A ideia central da estratégia de Feature Branch consiste em que quando é iniciado o trabalho em uma funcionalidade(ou história de usuário), essa funcionalidade deve ser desenvolvida em uma nova branch que deve ser criada tendo como base a branch que contém a última versão da aplicação.

Pull Request

Toda nova funcionalidade desenvolvida para ser integrada com a última versão da aplicação que estará disponível na branch develop precisa passar pelo processo de Pull Request, que consiste em realizar a revisão do código a ser integrado, além de validar a integridade da nova funcionalidade através das ferramentas integração contínua.

Para publicar uma nova versão estável da aplicação que estará disponível na branch master deve ser realizado um Pull Request da branch develop para master. Esse processo garantirá que a nova versão do código seja revisada e testada pelas ferramentas de integração contínua.

Ao utilizar o processo de Pull Request o grupo estará adotando boas práticas definidas pela metodologia XP:

  • Propriedade coletiva do código
  • Integração contínua

Exemplo do fluxo de branches:

Nomenclatura

Toda branch criada deve estar relacionada a uma funcionalidade ou correção, logo necessariamente deverá estar atrelada a uma Issue. O nome da branch deve ser em INGLÊS e deve seguir o padrão:

  • feat#NÚMERO_DA_ISSUE/descrição_curta: para funcionalidades;

  • fix#NÚMERO_DA_ISSUE/descrição_curta: para correções;

Exemplos:

feat#25/jwt_authentication

fix#14/webhook_payload

Referências