Issueドリブン開発(課題駆動開発、チケット駆動開発とも)は、issueつまり実装における課題をタスクとして管理・運用する開発手法です。
新規機能の追加やバグ修正などをissueとして立て、それを解決するためのブランチを切り、コミットやPRで適宜issueを参照しながら開発を進めるというフローを取ります。
ここでは、かろうじてIssueドリブンと呼べるリポジトリとして Enchan1207/YoutubeKit を例に話を進めていきます。
まずは開発作業の起点となるissueを立てます。bug
やenhancement
など、適宜ラベルをふっておくと後々の管理がラクです。
立てたissueには自動で番号が振られます。(ここでは#11
)
この番号を参照する形で新規ブランチを立てます。
git switch -c issue/11-APIResponseCache
このように「一つのissueに一つのブランチが対応する」状態を作り、以降の作業は基本的にこのブランチ以下で行うようにします。
コミットメッセージ内に#{issue番号}
を含めることで、issueとの相互参照が可能になります。
どこまで実装したか、またそれに伴い発生した課題などをissue内で整理できるため、非常に便利です。
コミットログには以下のように表示されます。#{issue番号}
をクリックすると該当するissueに飛びます。
issueが一通り片付いたら、本流のブランチ(master
, develop
等)にPRを立てます。個人開発であればそのままmergeしてしまっても構わないでしょう。
溜まったissueを消化したら、新しいreleaseを立てます。releaseは必ず本流のブランチで立てるよう注意してください。
この時、バージョンナンバーはSemantic versioningを参考にすると管理が容易になります(過去のバージョンのバグ修正もissueとして扱うことができるようになるため)。
issueをクローズし、対応するリモートブランチを削除したらタスク終了です。insights/networkを確認すると、本流ブランチを中心にいくつものブランチが切られてはmergeされを繰り返す様子を拝むことができます。
ありがとうございました。