Branching e Releases do Open-Source (Open Source)

Releases regulares

Todos os releases saem do branch dev. A equipe do DefectDojo busca manter a seguinte cadência:

  • Releases menores (minor): pelo menos uma vez por mês, na primeira segunda-feira do mês.
  • Patch: releases toda semana, às segundas-feiras.
  • Releases de segurança: podem ser realizadas fora da nossa cadência regular, dependendo da severidade. Elas também saem de dev.

Não existe um branch separado para correções de bugs nem um branch de hotfix a partir de master. Todo pull request, seja correção ou funcionalidade, é direcionado a dev.

As GitHub Actions são a fonte da verdade. Os releases são semiautomatizados. As etapas de cada release são:

  1. Criar o branch de release a partir de dev e preparar um PR contra master (detalhes) –> Um mantenedor verifica e faz o merge manual do PR
  2. Criar a tag, emitir o draft release e fazer o build+push do docker (detalhes) –> Um mantenedor ajusta as notas do release-drafter e publica o release
  3. É criado um PR para fazer o merge de master de volta para dev, realinhando os branches (detalhes)

Releases de segurança

PRs relacionados a questões de segurança são feitos por meio de security advisories, que oferecem uma forma de trabalhar de modo privado no código sem divulgar prematuramente as vulnerabilidades.

Modelo de release

Diagramas criados com plantUML. Encontre um editor web para PlantUML em https://www.planttext.com.