Skip to content
Latchkey

O Que É um Release?

Um release é uma versão específica e versionada do seu software que é disponibilizada aos usuários, muitas vezes acompanhada de notas descrevendo o que mudou.

Um release é o marco voltado ao usuário da entrega de software. Onde um build é uma saída técnica e um deployment é uma ação de infraestrutura, um release é o momento em que o mundo recebe nova funcionalidade, empacotada, nomeada e documentada.

O que é um release

Um release agrupa um conjunto de mudanças em uma unidade nomeada e versionada e a torna disponível aos usuários. Ele geralmente carrega um número de versão, uma tag no controle de código, os artifacts sendo enviados e um changelog descrevendo as mudanças. Um release é algo para o qual você pode apontar e dizer "isto é o que os usuários estão rodando".

Como releases são versionados

A maioria das equipes usa versionamento semântico, onde uma versão como 2.4.1 codifica o tipo de mudança: um incremento no primeiro número sinaliza uma mudança que quebra compatibilidade, o segundo adiciona funcionalidades, o terceiro corrige bugs. Números de versão permitem que usuários e sistemas dependentes raciocinem sobre compatibilidade num relance.

Release versus deployment

Fazer deploy é colocar código na infraestrutura; fazer release é torná-lo disponível aos usuários. Você pode fazer deploy de um build para produção com uma nova funcionalidade escondida atrás de uma flag, depois "fazer o release" dela dias depois ativando a flag, sem necessidade de novo deployment. Manter os conceitos separados dá controle sobre risco e tempo.

Um exemplo

Uma equipe marca o histórico de commits como v3.0.0, faz o build dos artifacts do release, publica um changelog anotando um novo dashboard e uma mudança de API que quebra compatibilidade, e o anuncia. Os usuários atualizam sabendo exatamente o que mudou e que o incremento de versão maior sinaliza uma mudança que quebra compatibilidade.

Por que releases importam

Releases dão às mudanças um nome, uma versão e um registro. Isso torna o suporte mais fácil ("em qual release você está?"), os rollbacks mais claros (reverter para o release anterior) e a comunicação honesta (o changelog). Automatizar a criação de releases remove trabalho manual e erro humano do processo de cortar uma versão.

Principais conclusões

  • Um release é um conjunto nomeado e versionado de mudanças disponibilizado aos usuários.
  • O versionamento semântico comunica a natureza de cada release.
  • Fazer release é distinto de fazer deploy e pode ser controlado separadamente.

Guias relacionados