domingo, 3 de dezembro de 2023

Versionamento Semântico

Versionamento Semântico





  No mundo da tecnologia as mudanças, sejam elas melhorias e/ou correções de bugs são muito constantes no nosso dia a dia e é natural depararmos com o cenário descrito na imagem desse post.
    Algumas empresas ainda sentem dificuldades em controlar as versões do seu software. Utilizando boas práticas de CI/CD juntamente com o Versionamento Semântico conseguimos sanar tais dificuldades.
    O que é um Versionamento Semântico.
    Todo software desenvolvido possui (normalmente no menu sobre) a versão instalada. Você por acaso já se perguntou o significado de cada número que o compõe?
     Pois é, existe um padrão e o nome dele é Versionamento Semântico.

   Nesse tipo de versionamento definimos cada numeração conforme o que está sendo entregue no software.
  • Major: Quebra de compatibilidade, quebra no contrato da API, alterações no banco de dados ou alterações muito complexas.
  • Minor: Alterações mais simples que não quebrem a compatibilidade.
  • Patch: Correções de bugs que não venha quebrar a compatibilidade.
  • Pré Release: Versões candidatas que podem, ou não, quebrar compatibilidade (futuramente podem incrementar o Major ou Minor)
    Agora que vimos o significado de cada número que compõe uma versão, que tal irmos para um exemplo prático? Neste exemplo estamos utilizando como base uma versão 1.1.0.
  • 1.0.0 (versão inicial) - 01/06/2023
  • 1.1.0 (versão com melhorias) - 01/10/2023
  • 1.1.1 (versão com correções de bugs) - 15/12/2023
  • 1.1.2 (versão com correções de bugs) - 30/12/2023
    Como você pode ver, não é um bicho de sete cabeças e nem uma combinação binária kkkk. Todo software possui uma versão inicial, posteriormente essa versão vai recebendo incrementos seja de melhorias e/ou bugs e utilizando o versionamento semântico, conseguimos garantir esse controle.
    Tá Armandinho, agora que eu sei formar esse controle de versionamento, como que vou lembrar o que foi liberado em cada uma delas. É nesse ponto que falaremos sobre os Changes Logs.

    O que é um Change Log
  Change Log é um arquivo onde nós desenvolvedores mantemos o controle de todas as versões liberadas e o que foi liberada em cada uma com suas respectivas datas.
  Não adianta termos um fluxo de liberação e numeração das versões se não anotarmos e registrarmos as versões liberadas e o que foi liberada em cada versão, não concorda?
    Abaixo segue a imagem de exemplo de um changelog.


    
    E, na Prática

    Agora que já conhecemos um pouco da teoria, que tal termos uma visão um pouco mais clara de como devemos seguir no desenvolvimento?
   Elaborei um fluxo onde você pode seguir caso sua empresa esteja começando a usar o versionamento. Lembrando que isso não é escrito em pedras e você pode adaptar conforme a necessidade da sua empresa.

     No vídeo abaixo explico de forma detalhada como funciona esse processo.
      O que achou, bora começar a controlar a versão do seu software?
      Deixe seu comentário, ficarei feliz em saber o que achou.

Nenhum comentário:

Postar um comentário

Postagem em Destaque

Configurando o Projeto Delphi para o SonarQube

  No post anterior expliquei como instalar e configurar o SonarQube com o plugin do Delphi . Neste post vamos configurar nosso projeto Del...

As mais visitadas