-
Notifications
You must be signed in to change notification settings - Fork 6
開発フロー
= 概要
- SCALEは、主に Fortran90で書かれています。(一部 C を含みます)
- ソースは、gitで管理されています
- gitリポジトリのアクセスは、github にて管理されています。
- ブランチのポリシーは、"A successful Git branching model"( http://nvie.com/posts/a-successful-git-branching-model/ )に従います。
- git-flowを使うことを推奨します
- C, Fortran コンパイラ
- git
- git-flow (https://github.com/nvie/gitflow) (必須ではないが、推奨)
git リポジトリにアクセス出来るよう管理者に連絡し、ssh公開鍵の登録手続きを行ってください。 gitに初期設定(コミット時の名前)を設定します。
% git config --global user.name "Yang-Mauler Tsuyoshi" % git config --global user.email yang-m.t@examle.com
= ソースチェックアウト
- git-flow の version が 0.4.1 以下の方 (mac ports で git-flow をインストールした方)
% git clone git@github.com:scale-met/scale-dev -b master % cd scale-dev % git checkout -t origin/develop % git flow init -d
- 0.4.2 以上の方
% git clone git@github.com:scale-met/scale-dev % cd scale % git flow init -d
= 開発スタート
% git checkout develop % git flow feature start hogehoge(修正/機能に応じた名前)
= 開発終了
% git pull % git rebase develop (マージが必要な場合がある) % git flow feature publish hogehoge
一度 publish したことがあるブランチについては、rebase は行ってはいけない。
管理者に develop ブランチへのマージを申請。
管理者によるマージ後、
% git checkout develop % git pull % git branch -D feature/hogehoge
= 複数人での開発
- 誰か一人が、上記の「開発スタート」および「開発終了」の git flow feature publish hogehoge までを行う
ひととおり作業が終わったら
% git flow feature pull origin hogehoge % git push
作業再開時には、
% git checkout feature/hogehoge % git flow feature pull origin hogehoge
= github.com での Issue 化
他の開発者との情報共有のため、github.com の scale-met/scale-dev プロジェクトで作業を Issue 化する。SCALE では git のブランチによるコード修正をご本尊へ反映させる前に、開発者同士でレビューを行うことにしている。そのレビューをスムーズに行うため、またその他の開発者が後々の参考にするため、開発用の Issue は次の作法に従ってオープンすることが望ましい。
- Issue で「この Issue で解決すべき問題点」、既に修正コードが用意されているなら「修正コードを適用する前後の比較」を明示する。
- ハイライトする数式・箇所等を Issue に記録しておく。
- コード内で複雑になる場合は適切なコメントを挿入する。
- Issue 提案者と開発者が異なる場合等も考慮し、誰が「問題点」や「比較」の情報を載せるかについてはケースバイケースでの対応とし、コードがマージされる前に上記情報が提示されていれば良いことにする。
Issue のクローズは原則、 Issue をオープンした人が行う。ただし Issue を提案した人とその提案を受けて実際に開発を実施した人(=マージリクエストを発行した人)が異なる場合、マージリクエストを受けた人はマージ後に『 Issue を立ち上げた人を担当者に変更する』ようにする。Issue を立ち上げた人とマージリクエストを発行した人が同じであれば、マージリクエストを受けた人は担当者を変更しなくてもよい。マージされれば、マージリクエストを投げた人に通知がいくので、従来通りマージリクエストを発行した人が Issue をクローズする。これは Issue を立ち上げた人が最後に閉じ忘れるのを防止するための措置。
= 開発ドキュメント
作成途中。何かの参考になることがあれば……。
[SCALE_developers_guide.pdf](https://github.com/scale-met/scale/files/10421880/SCALE_developers_guide.pdf)
[SCALE_developer_document.pdf](https://github.com/scale-met/scale/files/10421883/SCALE_developer_document.pdf)