独立性の高いソースが複数ある場合のワークフロー
hifive-ui-libraryなど、独立性の高いソースが複数ある場合のワークフローを説明します。
基本的な考え方
-ソースのまとまりの単位ごと(UI部品であれば、部品1つ1つ)にフォルダを作る
-まとまりごとにフォルダ分けする
-まとまりごとにブランチを作成する。各ブランチでは、そのソースだけを編集することを守る(他のフォルダのソースは変更しない)
機能拡張のワークフロー
- 機能拡張を行う部品のブランチに切り替える
2. そのブランチで部品の機能拡張を行い、コミット、プッシュする。
3. 修正が完了したらプッシュして、プルリクエストを送る。
4. レビューを受ける(完了したらmasterにマージされる)
という流れで行います。
ブランチの切り替え
プロジェクトを右クリック->チーム->切替と進んでいくと、ブランチ一覧が表示されます。機能拡張を行うブランチを選択してブランチを切り替えます。現在プロジェクトがどのブランチを見ているかが、プロジェクト名の横に表示されます。
機能拡張作業
機能拡張を行う部品のファイルを修正してコミット&プッシュします。機能拡張はissue単位で行い、コミットコメントにはissue番号と修正内容を記述します。
この作業時に、部品以外のソースファイルを編集をしては行けません。 ブランチが区切られている単位のソースファイルのみを編集することを守ってください。
プルリクエスト
修正が完了したら、masterブランチに対してプルリクエストを送ります。プルリクエストは着手したissueが全て完了したタイミングで送ってください。
プルリクエストを送る作業はブラウザから行います。
- ブラウザでそのプロジェクトのトップページを開き、下図のセレクトボックスからプルリクエストを送る元のブランチ(部品のブランチ)を選択して、そのブランチのページへ行きます。
2. プルリクエストのボタンをクリックします。
3. masterとの差分が表示されます。OKなら[create Pull Reqest] をクリックします。
4. 修正内容をタイトルとコメントに記述し、[Send pull request]をクリックします。
レビュー担当者はプルリクエストが来たらレビューを行い、OKならmasterとマージします。OKでない場合は、再度修正してもらいます。
プルリクエストは、送ったタイミングからのマージを要求するのではなく、常にブランチの最新のものとのマージを要求します。レビュー後に再度修正した場合でも、プルリクエストを送り直す必要はありません。(プルリクエストコメントなどを修正する場合は既存のプルリクエストを編集します)。
- レビューOKですぐマージされる場合
- レビューで指摘事項があり、再度修正してからマージされる場合
プルリクエストを送るタイミング
原則は1Issue対応したらそれが1プルリクエストに対応するように、1つのIssueが完了したタイミングでプルリクエストを送ります。
しかし、タイミング的に難しい場合は複数のIssueに対応するものも可とします。その場合、プルリクエストを取り込むのはそのプルリクエストに含まれるすべてのIssueについて完了しているタイミングとします。
新規部品追加のワークフロー
- ブランチを新規作成する
2. 新規作成したブランチで部品を作成する
3. 作成したらmasterにプルリクエストを送る
という流れで行います。2,3は機能拡張作業と同様です。
新規ブランチの作成
masterからブランチを作成するため、プロジェクトがmasterブランチを見ていない場合はmasterブランチに切り替えます。プロジェクト右クリック->チーム->切替->でmasterブランチを選択してください。
次に、新規ブランチを作成します。プロジェクト右クリック->チーム->切替…->新規ブランチ でブランチ名を入力して完了をクリックします。
次に、作成したブランチをリモートにプッシュします。プロジェクト右クリック->チーム->Push Brancheをクリックしてください。ブランチ名に新規作成したブランチ名を入力し、次へ、完了をクリックします。
プッシュ結果に新規ブランチが表示されていたらOKです。
ブラウザでプッシュできたことを確認することができます。
GitトップページのNetworkをクリックします。
ブランチがネットワークグラフに吹き出しで表示されます。作成したブランチがあることを確認してください。
共通ファイルを追加・変更するとき
masterブランチでコミット&プッシュします。各部品のブランチから行ってはいけません。
個別ブランチへの共通ファイルの取り込み方法
部品のブランチでの作業中にmasterが更新されてそれを取り込みたいときは、masterを現在のブランチにマージします。
例えば、機能拡張作業中にライブラリを追加したい場合の流れは以下のようになります。
- masterブランチに切り替えてライブラリをコミット&プッシュ
2. 部品ブランチに切り替える
3. 部品ブランチにmasterブランチをマージする。プロジェクト右クリック->チーム->Merge...を開き、masterを選択してマージ。
hfiive-ui-libraryの部品作成ルール
部品名は小文字始まりのキャメルケースにすること。
部品名とブランチ名は同じになるようにすること。
フォルダ構成は以下の通りにして、WebContent/components/以下に部品名を付けたフォルダを置くこと。
- 部品名
- index.html (部品説明のトップページ)
- src
- 部品のソースファイル
- sample
- index.html
- その他サンプルで必要なファイル
- test
- テストで必要なファイル
サンプルが複数ある場合は、sampleフォルダ以下を以下のような構成にします。sample/index.htmlは必ず存在するようにしてください
- sample
- index.html
- sample1
- index.html
- sample2
- index.html