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
-
A successful Git branching model. Vincent Driessen. Disponível em: https://nvie.com/posts/a-successful-git-branching-model/. Acessado em: 4 de abril de 2019.
-
FeatureBranch. Martin Fowler. Disponível em: https://martinfowler.com/bliki/FeatureBranch.html. Acessado em: 4 de abril de 2019.
-
Git Feature Branch Workflow. Atlassian. Disponível em: https://br.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow. Acessado em: 4 de abril de 2019.