Ramas y versiones de código abierto (Open Source)
Versiones regulares
El equipo de DefectDojo se propone mantener la siguiente cadencia:
- Versiones menores: al menos una vez al mes, el primer lunes del mes.
- Parche/Corrección de errores: versiones cada semana, los lunes.
- Versiones de seguridad: se realizarán fuera de nuestra cadencia habitual según la gravedad.
Las GitHub Actions son la fuente de verdad. Las versiones están semiautomatizadas. Los pasos para una versión regular son:
- Crear la rama de versión a partir de
devobugfixy preparar un PR contramaster(detalles) –> Un mantenedor verifica y fusiona manualmente el PR - Etiquetar, emitir un borrador de versión y compilar+publicar la imagen docker (detalles) –> Un mantenedor pule las notas de release-drafter y publica la versión
- Se crea un PR para fusionar
masterde nuevo endevybugfixcon el fin de realinear las ramas (detalles)
Versiones de seguridad
Los PR relacionados con problemas de seguridad se gestionan mediante avisos de seguridad que ofrecen una forma de trabajar en el código de forma privada sin divulgar prematuramente las vulnerabilidades.
Modelo de versión y hotfix
Diagramas creados con plantUML. Encuentre un editor web para PlantUML en https://www.planttext.com.
participant “Dev Branch” as dev #LightBlue participant “BugFix Branch” as bugfix #LightGreen participant “Release Branch” as release #LightGoldenRodYellow participant “Master Branch” as master #LightSalmon
== Minor Release (Monthly) ==
dev -> release: Create branch “release/2.x.0” release -> master: Merge note right: Official Release\n - Tag 2.x.0\n - Push 2.x.0 to DockerHub master –> bugfix: Merge master into bugfix to realign master –> dev: Merge master back into dev
== Patch/BugFix Release (Weekly) ==
bugfix -> release: Create branch “release/2.x.y” release -> master: Merge note right: Official Release\n - Tag 2.x.y\n - Push 2.x.y to DockerHub master -> bugfix: Merge master back into bugfix to realign master –> dev: Merge master into dev to realign
== Security Release (As Needed) ==
master -> release: Create branch “release/2.x.y” release -> master: Merge note right: Official Release\n - Tag 2.x.y\n - Push 2.x.y to DockerHub master –> bugfix: Merge master into bugfix to realign master –> dev: Merge master into dev to realign
@enduml
</div>