Essa é uma revisão anterior do documento!


Padronização Git

Foi definido que o fluxo de branches utilizado para o desenvolvimento e manutenções de sistemas será uma adaptação do Git Flow.

O fluxo padrão do Git Flow é o apresentado na figura a seguir.

Com base no fluxo padrão do Git Flow teremos as seguintes adaptações:

  • Não serão utilizadas branches release. O uso de branches release será avaliado posteriormente.
  • Não será utilizada a branch develop em alguns sistemas onde existe um fluxo intenso de demandas urgentes, como por exemplo o eTCE-GO. Neste caso todas as branches serão criadas a partir da branch main. Posteriormente avaliaremos o uso da branch develop neste cenário.

Nomenclatura das branches:

  • main​: branch principal e referência para implantação do produto de software em produção.​
  • develop​: branch de desenvolvimento e referência para implantação do produto de software nos ambientes de teste e homologação.​
  • feature/nome-da-nova-funcionalidade-ou-melhoria​: branch criada como espelho da develop e utilizada pelo desenvolvedor durante a codificação da nova funcionalidade ou melhoria de uma funcionalidade existente.​
  • bugfix/identificação-do-bug​: branch criada como espelho da develop e utilizada pelo desenvolvedor durante a codificação da correção de bugs.​
  • hotfix/identificação-do-bug​: branch criada como espelho da main e utilizada pelo desenvolvedor durante a codificação da correção de bugs que precisam ser corrigidos urgentemente.​
  • tag​: marcação criada na branch main para identificar uma nova versão implantada em produção.​ Exemplo: 1.0.0​

Foi definido que será aplicado o versionamento semântico para todo produto de software desenvolvido e mantido pelo tribunal.

O padrão para a identificação de versão será como definido a seguir:

  • MAJOR.MINOR.PATCH​
    • MAJOR: incrementado para grandes mudanças, mudanças incompatíveis com versões anteriores ou uma referência para um conjunto de mudanças.​
    • MINOR: incrementado para adicionar funcionalidades.​
    • PATCH: incrementado para correções de bugs.​
  • Exemplos:
    • 1.0.0: primeira versão estável.​
    • 1.1.0: versão com novas funcionalidades compatíveis com a versão 1.0.0.​
    • 1.1.1: versão com correções de bugs compatíveis com a versão 1.1.0.​
    • 2.0.0: segunda versão com mudanças incompatíveis com a versão 1.0.0.

O changelog é um registro, em um documento padronizado, de todas as mudanças realizadas em um produto de software ao longo do tempo. Este serve como histórico de inclusão de novas funcionalidades, correções de bugs e demais manutenções realizadas no software.

Foi definido que deve ser criado um changelog para cada produto de software desenvolvido e mantido pelo tribunal. A cada novo incremento de versão o changelog deve ser atualizado.

O changelog será inicialmente armazenado no GitSource na raiz do projeto do produto de software. O nome do arquivo será changelog.md e será preenchido com o padrão Markdown.

Os seguintes dados devem estar contidos no changelog:

  • Versão: ​ número da versão, por exemplo, 2.1.3.​
  • Data:​ data da implantação da nova versão em produção.​
  • Descrição das Mudanças: ​ uma lista detalhada das mudanças organizadas pelas categorias a seguir.
    • Novas Funcionalidades: novas funcionalidades ou recursos incluídos.​
    • Correções: correções de bugs, problemas e defeitos.​
    • Alterações: mudanças em funcionalidades existentes.​
    • Melhorias: melhorias de usabilidade, desempenho, otimizações, etc.​
    • Remoções: funcionalidades ou recursos removidos.​
    • Segurança: correções de vulnerabilidades de segurança.

Exemplo de preenchimento:

  • pres/gerti/padronizacao_git/start.1743765674.txt.gz
  • Última modificação: 04/04/2025 11:21
  • por momassula