Skip to content

Latest commit

 

History

History
76 lines (56 loc) · 4.43 KB

CONTRIBUTING.md

File metadata and controls

76 lines (56 loc) · 4.43 KB

Como contribuir?

Agradecemos pelo interesse em contribuir com o projeto! Para isso, basta seguir os passos abaixo:

  • Fazer o fork do repositório, caso seja um colaborador externo.
  • Criar issues, em conformidade com o nosso template.
  • Criar uma ou mais branches para trabalhar nas issues levantadas, de acordo com nossa política de branches.
  • Seguir nossa política de commits durante o desenvolvimento.
  • Ao final, submeter um pull request, também de acordo com nosso template. Simples assim!

Política de branches

Segue-se o fluxo de trabalho descrito pelo Gitflow, representado pelo diagrama abaixo:

Dessa forma, existem as seguintes categorias de branches:

main

Branch de produção, com a versão estável mais atual do projeto. Bloqueada para commits e pushs, pode ser interagida apenas através de pull requests provenientes da devel, hotfix branches ou release branches.

devel

Branch de desenvolvimento, agrupa o trabalho de outras branches com o objetivo de se criar uma versão de release para ser submetida à master. Também é bloqueada para commits e pushs, devendo ser modficada através de pull requests provenientes das feature branches.

Feature Branches

Branches criadas a partir da devel, para o desenvolvimento de uma funcionalidade específica. Idealmente, uma feature branch deve ser referente à uma issue cadastrada no repositório, para melhor acompanhamento e rastreamento do projeto. Ao final do desenvolvimento, deve-se submeter um pull request visando a devel. Se as modificações forem aceitas com sucesso, a branch deve ser apagada.

Nomenclatura

Feature Branches devem seguir o padrão x_nome_da_issue, com x sendo o número da issue correspondente no repositório.

Hotfix Branches

Branches criadas a partir da master, para a correção rápida de bugs em produção. Ao final, as atualizações submetidas devem ser integradas tanto à master quanto à devel.

Nomenclatura

Hotfix Branches devem seguir o padrão hotfix_x_nome_da_issue, com x sendo o número da issue que identifica o bug a ser corrigido.

Release Branches

Branches criadas a partir da devel, servem para a preparação de uma release do projeto. Deve conter tarefas apenas relacionadas a essa release, como correção de bugs ou refino de alguma funcionalidade já implementada. Funcionalidades novas não devem ser desenvolvidas nessa branch. Com a release preparada, deve-se integrar a branch à master.

Nomenclatura

Release Branches devem seguir o padrão release/numero_de_versao, identificando a versão do produto que será entregue naquela release.

Mantendo branches atualizadas

Para um fluxo de trabalho sem grandes inconvenientes, recomenda-se manter as branches pessoais de desenvolvimento (features, hotfixes) sempre atualizadas. Antes de se submeter um pull request, deve se garantir que a branch possui todas as alterações mais recentes de sua branch de origem. Para isso, deve se utilizar os seguintes comandos:

git checkout branch_de_trabalho

git pull branch_de_origem # devel para features, master para hotfixes

git push origin branch_de_trabalho

Política de commits

Devem seguir o modelo : do Conventional Commits

Por exemplo:

  git commit -m "docs: correct spelling of CHANGELOG"

Ao invés de:

  git commit -m "Adding API routing for User service."

Commits em pares

Ao se desenvolver funcionalidades utilizando a técnica de pair programming, deve se atribuir autoria a ambos os colaboradores. Para isso, deve se utilizar a tag co-authored-by do Github, através dos seguintes passos:

  • Após adicionar todos os arquivos modificados, executar o commit sem flags adicionais:
git commit
  • Isso abrirá o editor de texto padrão configurado para o Git. Digite a mensagem de commit, e após duas linhas em branco, adicione a co-autoria. Exemplo:
feat: add repo policies


Co-authored-by: Nome Sobrenome <[email protected]>

Dessa forma o commit será contabilizado pelo Github como sendo realizado pelos dois contribuidores, gerando um registro mais detalhado de participação.