---
slideOptions:
transition: slide
---
# Convenções
Visando definir um padrão de implementação, fica definido os seguintes princípios:
---
## Branchs Principais
Temos 3 branchs principais: **dev, homolog e main (master)**.
A branch dev é definida como a branch default do projeto, sendo ela, destinada a armazenar a versão atual de desenvolvimento.
Além das branchs principais, temos também as branchs auxiliares (em ordem decrescente de estabilidade:)
----
### Main (master)
`----`
É definida como a branch principal do projeto, sendo ela, destinada a armazenar a versão mais estável do sistema (candidata a ser publicada em produção)
----
### Homolog
`----`
Utilizada para armazenamento de código a ser publicado em ambiente de homologação, e que deverá ser
homologado por equipe responsável (seja ela QA, produtos, ou desenvolvedores caso seja interessante ao contexto) e em caso de
conformidade, o pacote fechado nessa branch, será elevado para a branch main(master).
----
### Dev
`----`
Utilizada para armazenamento de código (seja de funcionalidade ou correção de bug) em desenvolvimento, não homologado e/ou, prova de conceito, bem como branch de publicação de funcionalidades em ambiente de desenvolvimento.
---
## Branchs auxiliares
As branches de trabalho, ficam definidas como sendo aquelas em que os desenvolvedores realizarão qualquer tipo de atividade referente ao desenvolvimento de software e são estas:
---
## feature
Utilizada para o desenvolvimento de novas funcionalidades do sistema. Deverá ser mesclada apenas com a branch development.
---
## bugfix
Utilizada para a correção de bugs e comportamentos inesperados encontrados em estágio de homologação de funcionalidades do sistema. Deverá ser mesclada com a branch dev.
---
## hotfix
Utilizada unica e exclusivamente para a correção de bugs e comportamentos inesperados encontrados em estágio de produção.
Deverá ser mesclada com a branch main(master), e sincronizada com a branch de dev.
---