- main: リリース前の完成したものを置いておくブランチ.原則このブランチでは開発しない.リポジトリ生成時にGitHubのSettings > Branchesの「Branch protection rules」でdevelopブランチからのPRによるマージしか行えないように設定する.
- develop: mainにマージする前の,各機能およびバグ修正を行ったものを集約するブランチ.featureブランチの分岐元およびマージ先となる.このブランチでも原則開発しない.
- feature/*: 各機能およびバグ修正を行うブランチ.原則このブランチで開発を行う.
- release: リリースブランチ.mainブランチが更新される度にこのブランチへのPRが作成される.作成されたPRがマージされれば,リリースのタグ付けおよびリリースノート,デプロイ(パッケージ化)が行われる.
- mainブランチを作成し,GitHubのSettings > Branchesの「Branch protection rules」でdevelopブランチからのPRによるマージしか行えないように設定する.
- mainブランチを元にdevelopブランチを作成し,GitHubのSettings > Branchesの「Branch protection rules」でfeatureブランチからのPRによるマージしか行えないように設定する.
- mainブランチを元にreleaseブランチを作成し,GitHubのSettings > Branchesの「Branch protection rules」でmainブランチからのPRによるマージしか行えないように設定する.
- 開発をする場合は,feature/create_hogehogeやfeature/fix_hugahugaなどをdevelopブランチから分岐させて行う.
- feature/create_hogehogeなど各featureブランチでの機能追加およびバグ修正が完成したらdevelopブランチへのPRを作成し,レビュアー全員の承認が得られればマージする.
- ある程度の機能追加またはバグ修正が終わり,バージョン更新を行う場合はdevelopブランチからmainブランチへのPRを作成し,レビュアー全員の承認が得られればマージする.
- mainブランチにマージされると,releaseブランチへのPRを作成するciが走る.レビュアー全員の承認が得られればマージする.
- マージされれば,リリースのタグ付けおよびリリースノート,デプロイ(パッケージ化)を行うciが走る.
注意点
- マージされたブランチは原則mainとdevelop以外はマージ時に削除する.
現在mavenで行っている.設定ファイルの可読性やKotlinにも対応していることを考慮すると,将来的にはGradleに移行するのが良い.
vx.y.z
x: メジャーバージョン.後方互換のない変更の場合に上げる.
y: マイナーバージョン.後方互換のある機能追加(enhancementタグに相当,ドキュメンテーション含む)の場合に上げる.
z: パッチバージョン.後方互換のあるバグ修正(bugタグに相当)の場合に上げる.
- より詳しいバージョニングについてはこちら