Show page source of プロジェクト運用手順(管理者用) #64303

= プロジェクト運用手順(管理者用)

[[PageOutline]]

== DTXMania パッケージのリリース手順

本作業は、'''「プロジェクト管理者」または「リリース管理者」(ファイルリリースマネージャ)の権限を持つユーザのみ'''が行えます。

使用する Subversion クライアントは TortoiseSVN を想定しています。


[[br]]

(1) プロジェクトメンバへ周知する。
 * コミット予定のデータがあれば、再構築作業前にコミットしてもらう。
 * 作業開始後は、タグの作成((3)の作業)が完了するまでコミットを禁止する旨を伝える。

(2) ソリューションのバージョン情報を更新し、コミットする。
 1. 「trunk/DTXManiaプロジェクト」内のソリューションを VC!#2008Express で開く。
 1. 「コード/全体/CDTXMania.cs」内にある VERSION 定数を修正する。
 1. DTXManiaプロジェクトの ![プロパティ]→![アセンブリ情報] 画面で、バージョン番号を修正する。
   * 基本的に、アセンブリバージョンとファイルバージョンは同一のものとする。
 1. FDKプロジェクトの ![プロパティ]→![アセンブリ情報] 画面で、バージョン番号を修正する。
   * public なインターフェースが追加変更された場合は、アセンブリバージョンを増加する。
   * そうでない場合は、ファイルバージョンの末尾の数値を増加する。
   * 何も変更が加えられていない場合は、どちらのバージョンも現状維持とする。
 1. ソリューションを保存し、VC!#2008Express を終了する。
 1. trunk/ を「SVN コミット」する。

(3) リポジトリ上で、新しいタグを作成する。
 1. ローカルPCの作業コピー上の trunk/ フォルダを選択し、右クリックしてメニューから「TortoiseSVN」→「ブランチ/タグ」を選択する。
 1. 「コピー(ブランチ/タグ)」ダイアログが表示されるので、「先URL」欄にリポジトリ上の新しいタグフォルダのURLを指定し、タグを作成する。[[br]]
    先URLの設定例:「!https://svn.sourceforge.jp/svnroot/dtxmania/tags/101102DTXMania085)」[[br]]
    このとき、リポジトリの tags/ フォルダ内に、同名のフォルダが存在していないことを確認すること。
 1. この作業が完了次第、メンバはリポジトリの trunk/ フォルダへ任意のコミットを再開してかまわない。

(4) ローカルPCの作業コピーフォルダの tags/ について、「SVN 更新」を実行する。
 * (3)で作成した新しいタグをローカルPC上に取得するため。[[br]]
   ((3)の作業は、ローカルPC上ではなくリポジトリ上で実行されていることに注意)

(5) 取得したタグから、リリース用 DTXMania をビルドする。
 * (4)で取得したタグの「DTXManiaプロジェクト」フォルダ内のソリューションを VC!#2008Express で開き、Release 構成をビルドする。(trunk/ 内のソリューションではないことに注意)
 * ビルドが完了すると、(4)で取得したタグの「実行時フォルダ」内に、ビルドされた新しい DTXManiaGR.exe と FDK.dll が自動的にコピーされている。

(6) (4)で取得したタグの「実行時フォルダ」の中身を zip で圧縮し、リリース用のファイル名を付与する。
 * ファイル名の例:「DTXMania085(101102).zip」
 * 留意事項:
   * ここまでのやり方でも問題はないが、新しいコピー(タグ)を作成し利用している以上、zip の中にある'''すべてのファイルの「作成日付」が、(3)を実施した日に変更'''されてしまっている。
   * そのため、可能であれば、新しいリリースで'''変更があったファイルのみを直前のバージョンの DTXManiaアーカイブに上書きする形で zip を作成する'''ことが望ましい。

(7) (6)で作成した zip のリリースを行う。
 1. !SourceForge.JP の「ダウンロード」タブ→「管理」を選択する。
 1. ![新規作成] リンクをクリックする。(![新規パッケージの作成] リンクではないので注意)
 1. 「バージョン」「リリースノート」「変更履歴」をそれぞれ記入する。
   * バージョンの例:「085(101102)」
   * リリースノートの例:「リリース85です。」
   * 変更履歴:過去のリビジョンログを元に記述する。
 1. 「ファイル」欄に(6)で作成した zip ファイルを参照指定する。
   * ステータスは「有効」のまま。
   * 「標準ダウンロード」にチェックを入れる。→ リストが表示されるので「Windows」を選択し、![閉じる] をクリックする。
 1. ![リリースの作成] ボタンを押下する。

(8) ダウンロード時の標準リリースの切り替え行う。
 1. !SourceForge.JP の「ダウンロード」タブ→「管理」を選択する。
 1. リリースの一覧から、'''直前の'''リリースバージョンのリンクをクリックする。
 1. 「ファイル」欄の右端にある「標準」のチェックボックスのチェックを'''外す'''。
 1. ![リリースの更新] ボタンを押下する。
 1. リリースの一覧から、'''最新の'''リリースバージョンのリンクをクリックする。
 1. 「ファイル」欄の右端にある「標準」のチェックボックスのチェックを'''付与する'''。
 1. ![リリースの更新] ボタンを押下する。[[br]]
    これで、!SourceForge.JP がことあるごとに表示する「ダウンロード」リンクのターゲットが、最新のリリースファイルに変更される。

(9) !SourceForge.JP の「ニュース」に、リリースが完了した旨を伝える記事を投稿する。

(10) [http://mainori-se.sakura.ne.jp/dtxmania/ DTXMania公式ページ] の Top の「更新履歴」と Download の「更新情報」を更新する。
 * DTXMania 公式ページの !FreeStyleWiki の編集アカウントを持つユーザのみが行える。



== リポジトリの再構築手順

※2010/10/31~11/1にかけて行った作業を元に記載しています。

本作業は、'''「プロジェクト管理者」の権限を持つユーザのみ'''が行えます。

使用する Subversion クライアントは TortoiseSVN を想定しています。

[[br]]

(1) プロジェクトメンバへ周知する。
 * コミット予定のデータがあれば、再構築作業前にコミットしてもらう。
 * 作業開始後は、すべての作業が完了するまで、リポジトリに対するすべてのアクセスを禁止する旨を伝える。

(2) 全リビジョンのログを保存する。(必要あれば)
 * 次のリリースでの変更履歴の防備録として。

(3) リポジトリの内容をローカルPC(作業コピーフォルダ)へ「SVN 更新」を行う。
 * 最新のリポジトリをローカルPC上に確保するため。

(4) ローカルPC上で、作業コピーフォルダから任意のフォルダ(デスクトップ上など)へ全件エクスポートする。
 * Subversion の管理下から外れたツリーを作成しておく。

(5) !SourceForge.JP プロジェクトへ「リポジトリ初期化依頼」チケットを申請する。
 * 申請ページ: https://sourceforge.jp/ticket/newticket.php?group_id=1&type=114
 * 「プロジェクト管理者」の権限がある者が申請し、プロジェクトのUNIX名を告げる必要があります。さもないと拒否されます。

(6) !SourceForge.JP のスタッフがリポジトリを初期化する。
 * 完了後、スタッフから該当チケットにその旨のコメントが追加される。
 * リポジトリが初期化されていることを確認し、該当チケットにお礼を記入すると同時に、状況欄を「完了」に変更する。

(7) ローカルPC上に、新しい作業コピー用フォルダを作成する。
 * 初期化後の空のリポジトリを正として作業コピーを作成するため。

(8) (7) のフォルダに「SVN チェックアウト」し、Subversion 管理下に含める。
 * 当然、チェックアウトされたデータ件数はゼロ件となる。

(9) (4)で作成した管理外フォルダから、(7)のフォルダへデータを全件 Windows コピーし、ルートフォルダを「SVN 追加」する。
 * 追加中にエラーが発生して停止してしまうことが何度もある(.svn/tmp のファイルが壊れてるたらどーたら)が、そういうときは、もう一度ルートフォルダを「追加」すれば、何事もなく残りの作業を継続できる。ええ。何度エラーが出ても。(涙

(10) (7)のフォルダに対して「SVNコミット」を実施する。
 * 無事に全件コミットできれば、リポジトリ再構築作業は完了。

(11) プロジェクトメンバに、作業が完了した旨を周知する。
 * これまでの作業コピーを破棄し、新しく SVN チェックアウトし直してもらう。