View on GitHub

manual-da-engenharia-para-codar

Este é o manual para compromissos de "código com" a engenharia.

Versionamento de Componentes

Objetivo

Aplicativos maiores consistem em vários componentes que se referenciam e dependem da compatibilidade das interfaces/contratos desses componentes.

Para alcançar o objetivo de aplicativos fracamente acoplados, cada componente deve ser versionado independentemente, permitindo que os desenvolvedores detectem mudanças que quebram a compatibilidade ou atualizações sem problemas apenas olhando para o número da versão.

Números de Versão e Esquemas de Versionamento

Para que os desenvolvedores ou outros componentes detectem mudanças que quebram a compatibilidade, o número da versão de um componente é importante.

Existem diferentes esquemas de números de versão, como:

major.minor[.build[.revision]]

ou

major.minor[.maintenance[.build]].

Após a compilação/CI, esses números de versão são gerados. Durante a implantação/lançamento, os componentes são enviados para um repositório de componentes, como Nuget, NPM, Docker Hub, onde um histórico de diferentes versões é mantido.

A cada compilação, o número da versão é incrementado no último dígito.

A atualização da versão principal/minor indica mudanças na API/interfaces/contratos:

Versionamento Semântico

O Versionamento Semântico é um esquema de versionamento que especifica como interpretar os diferentes números de versão. O formato mais comum é major.minor.patch. O número da versão é incrementado com base nas seguintes regras:

Exemplos de números de versão semântica:

Uma prática comum é determinar o número da versão durante o processo de compilação. Para isso, o repositório de controle de origem é utilizado para determinar automaticamente o número da versão com base no repositório de código-fonte.

A ferramenta GitVersion utiliza o histórico do Git para gerar um número de versão repetível e único com base em:

As atualizações de versão ocorrem por meio de:

Recursos