Skip to content

Politica de Criação de Branches

Histórico de Versões

Data Versão Descrição Autor
10/11/2022 0.1 Abertura do documento Rafael
10/11/2022 1.0 Adição de introdução e do fluxo de trabalho Rafael
10/11/2022 1.1 Adição do tópico de branches e referências Rafael
12/11/2022 1.2 Revisão do documento Nilvan
12/11/2022 1.3 Retiradas da tag "< a>", que modificavam cor dos tópicos Nilvan
12/11/2022 1.3 Correção do tópico de hotfix Rafael

1. Introdução

  Esse documento tem por objetivo padronizar a criação de branches nos repositório do MeasureSoftGram. Dessa forma, orientando a criação das ramificações do Git.

2. Fluxo de trabalho

  O fluxo de trabalho utilizado é o Gitflow Workflow [1]. Este é um modelo alternativo que traz uma ideia abstrata do fluxo de trabalho Git, orientando os tipos de ramificações e como fazer o merge. Basicamente, são criadas as ramificações de recurso ou funcionalidade, o que possibilita retardar o merge com a ramificação do tronco principal até as necessidades definidas no escopo para lançamento de uma versão [2]. Este fluxo de trabalho auxilia um software baseado em lançamento de versões, além de oferecer a possibilidade de consertar erros identificados em produção através de hotfixes. As ramificações são explicadas abaixo.

3. Tipos de Branches

3.1 Main ou Master

  Essa é a branch que contém o código mais estável do MeasureSoftGram, ou seja, o tronco principal. Tudo que o usuário consome da versão em produção se encontra nela. As diretrizes dela são:

  • Só existe uma main/master no projeto;
  • Commits não são permitidos diretamente nessa branch;
  • Mudanças nela só ocorrem por meio de pull requests das branches release ou hotfix.
  • Em caso de repositório de documentação, aceita pull requests da branch document

3.3 Develop

  Destinada ao desenvolvimento do projeto. Ou seja, toda novidade está nessa branch. Suas diretrizes são:

  • Só existe uma branch develop no projeto;
  • Deve ser sincronizada com todas as outras branches;
  • Deve ser derivada da main/master.

3.3 Document

  Destinada à criação e manutenção dos documentos do projeto, ou seja, toda alteração no repositório de Doc do MeasureSoftGram, local principal dos documentos, passa por essa branch. Algumas regras diferem para esse tipo de branch, devido a própria natureza do repositório de documentação, o que implica:

  • Deve ser derivada da main/master;
  • Deve ser mesclada a main/master aṕos documento ser concluído;
  • Seu nome segue o padrão:
document/issueID-Nome_da_Funcionalidade

  Onde:

  • "document" é padrão;
  • "issueID" é o número da issue ao qual o documento se refere;

  Exemplo:

document/#88-Atualizar_Roadmap

3.4 Feature

  Destinada à criação de uma nova funcionalidades ao projeto. Diretrizes:

  • Deve ser derivada da develop
  • Deve ser mesclado de volta a develop após a funcionalidade ser desenvolvida;
  • Toda nova funcionalidade tem sua própria branch, seguindo o seguite padrão de nome:
feature/issueID-Nome_da_Funcionalidade

  Onde:

  • "feature" é padrão;
  • "issueID" é o número da issue ao qual a funcionalidade se refere;

  Exemplo:

feature/#55-Criar_Feed_de_Notícias

3.5 Release

  Branch que contém um conjunto de funcionalidades que podem ser implementadas na main/master. Diretrizes:

  • Deve ser derivada da develop;
  • Após ser concluída deve ser mesclada na main/master;
  • Nenhuma nova funcionalidade pode ser inserida na main/master se não por meio da release;
  • Somente aceita mesclagens do tipo bugfix;
  • O nome dessa branch deve seguir o padrão:
release/vNúmero.Número.Número

  Onde:

  • "release" é padrão;

  Exemplo:

release/v1.0.0

3.6 Bugfix

  Branch destinada a resolver problemas como bugs e erros presentes na release. Diretrizes:

  • Deve ser derivada da release;
  • Deve ser mesclada a release após concluída;
  • Seu nome segue o seguinte padrão:
bugfix/issueID-Nome_do_bugfix

  Onde:

  • "bugfix" é padrão;
  • "issueID" é número da issue ao qual o bugfix se relaciona;

  Exemplo:

bugfix/#89-Resolver_Feed_de_Noticias

3.7 Hotfix

  Destinada a resolver problemas urgentes na main/master. Diretrizes:

  • Deve ser derivada da main/master;
  • Dever ser mesclada a main/master após concluída;

  Em caso de repositório de desenvolvimento de código:

  • A cada novo hotfix, a versão do produto deve ser modificado, incrementando uma unidade ao número extremo direito.
  • O nome segue o seguinte padrão:
hotfix/vNúmero.Número.Número

  Em caso de repositório de documentação:

  • O nome segue o seguinte padrão:
hotfix/motivo

  Onde:

  • "hotfix" é padrão;

  Exemplo:

hotfix/v1.0.1

  ou:

hotfix/guia_contribuicao

4. Referências

[1] DRIESSEN, Vincent. A successful Git branching model. [S. l.], 5 jan. 2010. Disponível em: https://nvie.com/posts/a-successful-git-branching-model/. Acesso em: 10 nov. 2022.

[2] GITFLOW Workflow. [S. l.], 201-. Disponível em: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow. Acesso em: 10 nov. 2022.