オープンソースのブランチ運用とリリース (Open Source)
このページの内容
定期リリース
すべてのリリースはdevブランチから作成されます。DefectDojoチームは、以下のケイデンスを維持することを目指しています。
- マイナーリリース: 毎月第1月曜日に少なくとも月1回。
- パッチ: 毎週月曜日にリリース。
- セキュリティリリース: 深刻度に応じて、通常のケイデンスとは別に実施されることがあります。これも
devから作成されます。
バグ修正用の独立したブランチや、masterから分岐するホットフィックスブランチはありません。バグ修正も機能追加も、すべてのプルリクエストはdevを対象とします。
GitHub Actionsが正となります。リリースは半自動化されています。リリースの手順は以下のとおりです。
devからリリースブランチを作成し、masterに対するPRを準備します(詳細) –> メンテナーがPRを検証し、手動でマージします- タグ付け、ドラフトリリースの発行、Dockerのビルド+プッシュを行います(詳細) –> メンテナーがrelease-drafterのノートを整えてリリースを公開します
- ブランチを再整合させるため、
masterをdevにマージし直すPRが作成されます(詳細)
セキュリティリリース
セキュリティ問題に関連するPRは、セキュリティアドバイザリを通じて行われます。これにより、脆弱性を早期に公開することなく非公開でコードに取り組むことができます。
リリースモデル
図はplantUMLで作成されています。PlantUML用のWebベースエディタは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>