ツールとインフラストラクチャ
Ship It!に刺激を受けたので、次のプロジェクトでは、しっかりとツールとインフラストラクチャを整えて開発してみたいと思うので、導入できそうなツールを下調べしておきます。
開発対象はC#を使ったSDKです。開発ツールの導入は直属の上司にさえ承諾してもらえばよいので、比較的自由に選べるかな。

Ship It! ソフトウェアプロジェクト 成功のための達人式ガイドブック
- 作者: Jared Richardson,William Gwaltney Jr.,でびあんぐる
- 出版社/メーカー: オーム社
- 発売日: 2006/08/26
- メディア: 単行本(ソフトカバー)
- 購入: 6人 クリック: 101回
- この商品を含むブログ (98件) を見る
ツールの選択
Ship It!のHintをもとに、導入するツールを検討してみたいと思います。
必要なものはチェックインしておくこと
この本によると、開発したソースコードだけじゃなく、Javaのランタイムやサードパーティ製のライブラリとかもSCMにチェックインせよ、とあります。これは、依存しているライブラリの提供元が消滅してしまっても大丈夫なようにとか、新しいPCに環境をセットアップするときにチェックアウトするだけで開発環境が整うようにとか、そういう利点があるためです。これまでソースコードしかチェックインしていなかったので、これは実践してみようと思います。
ソースコード管理(SCM)システムは、普段使い慣れてるSubversionを使うことにします。
初日にビルドをスクリプト化せよ/どのマシンもビルドマシンにできる
自動ビルド化をしていないと、IDEを操作する手順やファイルをコピーする作業などは間違いを起こしやすいから、コマンド1つですべてがビルドできるようにしましょうという話。
今までは、全部Visual Studioだけで開発してきたんだけど、今回は、Microsoft .NET Framework と Mono の両方でビルドする必要もあるし、NAntを使ってみようと思う。
継続的にビルドせよ/継続的にテストせよ
CIツールを導入せよ、という話。.NETの場合、CruiseControl.NETというツールがあるらしい。これは知らなかった。
しかし、導入はどうしようかなぁ。今回の開発者は1人か2人だし、あまり結合をする場面がなさそうなんだよな。
プロジェクト管理ツールの導入
プロジェクト管理ツールは、TracとredMineを使い比べてから決めたいと思います。
Tracの導入
インストールの容易さから、Trac月を使いたいと思います。
- Trac Lightning プロジェクト日本語トップページ - SourceForge.JP から TracLight-1.3.2.exe をダウンロードしてインストール。
- 再起動。
- スタートメニューから「Trac」→「サービスのインストール」。
- ブラウザで、 http://localhost/trac/ にアクセスする。
- スタートメニューから「Trac」→「コマンドプロンプト」を起動し、
> create-project.bat HogeProject
- ブラウザから、 http://localhost/trac/HogeProject にアクセスできる。
これでインストールは完了したかと思ったのですが、ブラウザ経由でSubversionのリポジトリ(http://localhost/svn/HogeProjectなど)にアクセスしようとすると、
問題が発生したためApache HTTP Serverを終了します。
というエラーメッセージのダイアログがでてしまいます。Subversionでチェックインした結果も、
svn: PROPFIND request failed on 'http://localhost/svn/HogeProject'
svn: PROPFIND of 'http://localhost/svn/HogeProject': Could not read status line:
となってしまいます。
どうやらApacheの認証のところで問題があるようなので、TracLight\apache2\conf\httpd.confを開いて、以下の箇所をコメントアウトしてみました。
DAV svn
SVNParentPath "C:\TracLight\projects\svn"
# AuthType Digest
# AuthName trac
# AuthDigestFile "C:\TracLight\projects\trac.htdigest"
# Require valid-user
# AuthzSVNAccessFile "C:\TracLight\projects\svnauthz"
これで、Apacheを再起動すると、一応、リポジトリにアクセスできます。Digest認証に問題あり?
外に公開するわけじゃないのでこのままでもいいんだけど。うーん、ちゃんと調べるべきかなぁ・・・
(2007/07/22 追記)
/svnにアクセスできない問題は、d:id:tiovitan2000:20070713 で直るようです。
redMine
d:id:ZOETROPE:20070516でインストールしたredMineを利用してみます。
前回インストールした状態では、Wikiがちゃんと動作していなかった。
これは、どうやらRedClothというライブラリをインストールしていなかったことが原因らしい。
gemが使える人は、コマンドプロンプトから、gem install RedClothとすればOK
gemが使えない人は、http://whytheluckystiff.net/ruby/redcloth/からRedCloth-3.0.4.tar.gzをダウンロードしてきて、以下のコマンドでインストールする。
> tar xvzf RedCloth-3.0.4.tar.gz
> cd RedCloth-3.0.4
> ruby setup.rb config
> ruby setup.rb setup
> ruby setup.rb install
InstantRailsのIメニューから、「Rails Applications」→「Manage Rails Applications...」を選択。
redmine-0.5.0にチェックを入れて、「Start with Mongrel」で、redmineが起動。
Wikiもちゃんと動いていることが確認できた。
TracとredMineどっち使う?
TracとredMineをインストールしてみて、いろいろと触ってみたのですが、どうもTracの方が使いやすい感じがするんですよね。
どこに差があるかというと、
- redMineはシステムが複雑
- Subversionとの連携
- Tracだと、Subversionに登録したソースをブラウザで見ることができるけど、redMineはファイル名までしか見えない。
- Wiki記法
- これは、好みの問題だと思うのですが、社内で使っているWikiとTracのWikiの記法が似てるんですよね。わざわざ新しい記法を覚えるのも面倒かなと。(手を加えればhikidocも使えるようです。→d:id:hitokuro:20070411)