Branching e Release Open-Source (Open Source)
In questa pagina
Release regolari
Tutte le release partono dal branch dev. Il team di DefectDojo punta a mantenere il seguente ritmo:
- Release minori: almeno una volta al mese, il primo lunedì del mese.
- Patch: release ogni settimana di lunedì.
- Release di sicurezza: possono essere eseguite al di fuori del nostro ritmo regolare, a seconda della gravità. Anche queste partono da
dev.
Non esiste un branch separato per le correzioni di bug né un branch di hotfix da master. Ogni pull request, correzione o funzionalità, punta a dev.
GitHub Actions è la fonte autorevole. Le release sono semi-automatizzate. I passaggi per ogni release sono:
- Crea il branch di release da
deve prepara una PR versomaster(dettagli) –> Un maintainer verifica e unisce manualmente la PR - Tag, creazione della release in bozza e build+push Docker (dettagli) –> Un maintainer rifinisce le note del release-drafter e pubblica la release
- Viene creata una PR per unire
masterdi nuovo indev, per riallineare i branch (dettagli)
Release di sicurezza
Le PR relative a problemi di sicurezza vengono gestite tramite security advisory, che offrono un modo per lavorare privatamente sul codice senza divulgare prematuramente le vulnerabilità.
Modello di release
Diagrammi creati con plantUML. Trovi un editor web per PlantUML su https://www.planttext.com.
participant “Dev Branch” as dev #LightBlue participant “Release Branch” as release #LightGoldenRodYellow participant “Master Branch” as master #LightSalmon
== Minor Release (Monthly) ==
dev -> release: Create branch “release/merge-dev-into-master-2.x.0” release -> master: Merge note right: Official Release\n - Tag 2.x.0\n - Push 2.x.0 to DockerHub master –> dev: Merge master back into dev
== Patch Release (Weekly) ==
dev -> release: Create branch “release/merge-dev-into-master-2.x.y” release -> master: Merge note right: Official Release\n - Tag 2.x.y\n - Push 2.x.y to DockerHub master –> dev: Merge master back into dev
@enduml
</div>