O que é uma release branch?
Uma release branch é uma branch criada para estabilizar uma versão específica, aceitando apenas correções enquanto o desenvolvimento contínuo prossegue em outro lugar.
Uma release branch dá a uma versão um lugar tranquilo para ser finalizada. Depois que as funcionalidades de uma release estão prontas, a equipe cria uma release branch, congela o conjunto de funcionalidades e permite apenas correções de bugs e ajustes finais. Enquanto isso, o novo trabalho continua na linha principal de desenvolvimento.
What a release branch does
Uma release branch tira um snapshot do código destinado a uma versão e o isola de novas funcionalidades. Apenas correções para aquela release entram nela. Isso permite que a equipe endureça um candidato sem bloquear o desenvolvimento contínuo e fornece um alvo claro para os testes finais.
Cutting a release branch
Você cria a branch a partir da linha de integração e depois a restringe a mudanças de estabilização.
git switch -c release/2.3 develop
# only bug fixes land here until releaseStabilize, then tag
Durante a janela de estabilização, os testadores exercitam a branch e os desenvolvedores corrigem o que encontram. Quando está estável, o commit recebe a tag da release e é feito o merge de volta para que as correções não se percam. A branch pode ser mantida para patches futuros ou aposentada.
Release branches in CI/CD
As release branches muitas vezes disparam pipelines mais pesados: suítes completas de regressão, testes de performance e deploys em staging que as branches do dia a dia pulam. A confiança do CI na release branch é o que justifica o envio. Assim que a branch recebe a tag, um pipeline de release faz o build e publica o artifact final.
Release branch practices
- Permita apenas correções em uma release branch, não novas funcionalidades.
- Execute verificações estendidas de CI reservadas para release candidates.
- Aplique a tag no commit estabilizado e faça o merge das correções de volta para main.
- Decida antecipadamente se vai manter a branch para patches.
Principais conclusões
- Uma release branch estabiliza uma versão enquanto o desenvolvimento continua em outro lugar.
- Ela aceita apenas correções e, quando estável, recebe uma tag.
- O CI executa verificações mais pesadas nas release branches antes do envio.