Ir para o conteúdo

Contribuições

Introdução

Este documento determina as regras para submissão de códigos para este repositório.

Issues

Toda e qualquer contribuição deve estar vinculada a uma e tão somente uma issue. Toda issue deve ser preenchida obrigatoriamente conforme o template feature ou bug e deve representar uma contribuição clara, objetiva e independente de outras issues, dentro do possível.

Se uma issue feature precisar de mais de um pull request ou se o prazo de conclusão for maior que uma sprint, essa issue deve ser quebrada em issues menores. As issues possuirão dois perfis de responsáveis:

  1. Assignees: pessoa(s) responsáveis por desenvolver a issue, seja de código, seja de design, seja de documentação. Em caso de código, o pull request será vinculado. Em caso de outros tipos de artefato, eles devem ser linkados ou anexados na issue como prova de conclusão.
  2. Reviewers: pessoa(s) responsáveis por verificar a conclusão da issue. Em caso de código, eles devem executar a funcionalidade ou correção de bug para verificar a conclusão.

Pull Requests

Os pull requests devem estar obrigatoriamente vinculados a uma issue, e os passos obrigatórios presentes no template.


Commits

Por questões de padronização e rastreabilidade, os commits devem seguir as seguintes regras:

  • Deve começar indicando a issue com uma "#"
  • Utilize a língua portuguesa na mensagem do commit
  • Deve conter um título curto e objetivo do que foi feito naquele commit
  • Deve começar com um verbo no presente do indicativo (corrige, adiciona, retira, melhora, etc.)
  • Caso o commit seja resultado de um trabalho em equipe, utilize Co-authored-by:

Exemplo Trabalhando Sozinho:

$ (#43) Corrige erro na autenticação do perfil x de usuário

Exemplo Trabalhando em grupo:

(#43) Corrige erro na autenticação do perfil x de usuário


Co-authored-by: Outra Pessoa <pessoa@email.com>

Branches

Tendo como meta manter a integralidade e confiabilidade do código do projeto foi proposta a utilização de política de branches. Essa Política de Branches deverá guiar os desenvolvedores na forma de organização de suas contribuições ao repositório.

OBS: A política de branchs foi idealizada para trabalhar em conjunto com a ferramenta do git flow, sua documentação e mais informações podem ser acessadas aqui.

Branches Principais

  • main - Branch principal do repositório onde será permitida somente a integração de software consolidado e testado. Essa branch será exclusiva para a entrega de Realeases, ou seja, um conjunto maior de funcionalidades que integram o software, aqui estará a versão estável do software.

  • develop - Branch para integração de novas funcionalidades, onde será permitido a entrega das features desenvolvidas e que estão em um estágio avançado de desenvolvimento. Será a branch base para o início do desenvolvimento das features e da correção de bugs. Aqui também serão mergeadas as releases.

Branches para Desenvolvimento

  • feature/ - Branch utilizada para o desenvolvimento de novas features do backlog. Caso a feature tenha sido proposta por uma issue do repositório e aceita no backlog o nome deverá conter o número da issue. Ex: feature/1-\ (Considerando que a feature tenha sido solicitada na issue #1)

  • bugfix/ - Branch utilizada para corrigir bugs de baixa/média urgência e que não estão presentes na branch master. Caso o bug tenha sido reportado por uma issue do repositório o nome deverá conter o número da issue. Ex: bugfix/1-\ (Considerando que o bug tenha sido reportado na issue #1)

  • hotfix/ - Branch utilizada para corrigir bugs de alta urgência e que estão presentes na branch master. Caso o bug tenha sido reportado por uma issue do repositório o nome deverá conter o número da issue. Ex: hotfix/1- (Considerando que o bug tenha sido reportado na issue #1)

  • release/ - Branch onde será feito os ajustes finais/build antes da entrega de uma versão do produto de software. Constará no nome da branch a versão da release a ser entregue.

  • doc/ - Branch onde serão executadas tarefas de suporte relacionadas ao software, como elaboração de documentações, correções de natureza de gerência de configuração, etc.

Versão Data Descrição Autores
1.0 06/09/2023 Abertura do documento Pedro Cella