読者です 読者をやめる 読者になる 読者になる

ツールとインフラストラクチャ

book tool redMine

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

Ship It! ソフトウェアプロジェクト 成功のための達人式ガイドブック

Ship It! ソフトウェアプロジェクト 成功のための達人式ガイドブック

ツールの選択

Ship It!のHintをもとに、導入するツールを検討してみたいと思います。

必要なものはチェックインしておくこと

この本によると、開発したソースコードだけじゃなく、Javaのランタイムやサードパーティ製のライブラリとかもSCMにチェックインせよ、とあります。これは、依存しているライブラリの提供元が消滅してしまっても大丈夫なようにとか、新しいPCに環境をセットアップするときにチェックアウトするだけで開発環境が整うようにとか、そういう利点があるためです。これまでソースコードしかチェックインしていなかったので、これは実践してみようと思います。
ソースコード管理(SCM)システムは、普段使い慣れてるSubversionを使うことにします。

初日にビルドをスクリプト化せよ/どのマシンもビルドマシンにできる

自動ビルド化をしていないと、IDEを操作する手順やファイルをコピーする作業などは間違いを起こしやすいから、コマンド1つですべてがビルドできるようにしましょうという話。
今までは、全部Visual Studioだけで開発してきたんだけど、今回は、Microsoft .NET Framework と Mono の両方でビルドする必要もあるし、NAntを使ってみようと思う。

継続的にビルドせよ/継続的にテストせよ

CIツールを導入せよ、という話。.NETの場合、CruiseControl.NETというツールがあるらしい。これは知らなかった。
しかし、導入はどうしようかなぁ。今回の開発者は1人か2人だし、あまり結合をする場面がなさそうなんだよな。

集団記憶喪失を避ける

バグや機能の追加などはちゃんと管理しておかないと忘れ去られてしまうので、BTSを導入せよ、という話。
これは、Bugzillaのような純粋なBTSではなく、Wikiなどプロジェクト管理の機能が含まれているTracredMineを導入したいな。

テストを自動化して製品を訓練せよ/一般的で柔軟なテストハーネスを使う

これは、NUnitを使って、テストファーストで開発していけばいいでしょう。

プロジェクト管理ツールの導入

プロジェクト管理ツールは、TracredMineを使い比べてから決めたいと思います。

Tracの導入

インストールの容易さから、Trac月を使いたいと思います。

> create-project.bat 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もちゃんと動いていることが確認できた。

TracredMineどっち使う?

TracredMineをインストールしてみて、いろいろと触ってみたのですが、どうもTracの方が使いやすい感じがするんですよね。

どこに差があるかというと、

  • redMineはシステムが複雑
    • でも書かれていますが、例えばWikiの機能にアクセスしたいときに、Tracだとトップメニューの「Wiki」を選択すればよいが、redMineだと、「プロジェクト」→「プロジェクトを選択」→「Wiki」と3ステップ必要になるのです(一度プロジェクトを選択すれば、以降は2クリック)。わずかな差なんですけど、面倒に感じてしまう。
  • Subversionとの連携
    • Tracだと、Subversionに登録したソースをブラウザで見ることができるけど、redMineはファイル名までしか見えない。
  • Wiki記法
    • これは、好みの問題だと思うのですが、社内で使っているWikiとTracのWikiの記法が似てるんですよね。わざわざ新しい記法を覚えるのも面倒かなと。(手を加えればhikidocも使えるようです。→d:id:hitokuro:20070411

というわけで、Ruby好きとしては苦渋の選択(?)なのですが、今回はTracを使うことにしました。