« コードレビューWebシステムが必要な理由 | トップページ | 最小限のチケット駆動開発の運用方法 »

2009/04/04

ReviewBoardのインストール方法

Python製コードレビューWebシステムReviewBoardをインストールできたので、その設定方法をメモ。

【元ネタ】
Documentation - reviewboard - Documentation for Review Board - Google Code

Review Board | Take the pain out of reviewing code

ReviewBoardのインストール | Ryuzee.com

monospace blog ? オンラインソースコードレビューツールのReviewBoardをインストールしてみた

monospace blog ? ソースコードレビューツールReviewBoardの使い方メモ 前編

monospace blog ? ソースコードレビューツールReviewBoardの使い方メモ 後編

monospace blog ≫ ReviewBoardを使ったコードレビューのワークフロー

【必須の環境】
以下、CentOSで下記ツールはインストール済みとする。

Python version 2.4 or higher
Django version 0.97 or higher
PIL - The Python Imaging Library
patchutils
MySQL 5.0.31 or higher
MySQL-python
Subversion
pysvn

【1】インストール方法

1.MySQLでReviewBoard用データベース作っとく。

mysql -u root
create database reviewboard character set utf8;

ついでに、ReviewBoard用ユーザも作る。

grant create, select, insert, update, delete, alter, lock tables on reviewboard.* to 'reviewboard'@'localhost' identified by 'reviewboard';
flush privileges;

2.ReviewBoardのソースを持ってくる。

svn checkout http://reviewboard.googlecode.com/svn/trunk/reviewboard reviewboard
chmod -R 777 reviewboard

次に初回アクセスだからディレクトリを作る。

cd reviewboard
mkdir htdocs/media/images
chmod -R 777 htdocs/media

3.設定ファイルへMySQL設定を追記する。

cp -ip settings_local.py.tmpl settings_local.py

DATABASE_ENGINE = 'mysql' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'reviewboard' # Or path to database file if using sqlite3.
DATABASE_USER = 'reviewboard' # Not used with sqlite3.
DATABASE_PASSWORD = 'reviewboard' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost.
DATABASE_PORT = '' # Set to empty string for default.

SECRET_KEYの生成は1行で書けます。

python -c "import random;CHARS = 'abcdefghijklmnopqrstuvwxyz0123456789%^&*(-_=+)';print ''.join([random.choice(CHARS) for x in range(50)])"

これをSECRET_KEYの値として設定する。

# Make this unique, and don't share it with anybody.
SECRET_KEY = 'p8923yaernva4tqkwdavo8qi2v7349qc3q23479-p123youwidhoq8923yco'

ついでに、時間と言語も設定する。

TIME_ZONE = 'Asia/Tokyo'
LANGUAGE_CODE = 'ja'

4.初期化テーブルの作成で下記コマンドを実行。
RailsみたいにMySQLにテーブルが作られます。

python manage.py syncdb

djangoサーバをノーハングアップで稼動させる。

nohup python manage.py runserver IPアドレス:8000 &

http://IPアドレス:8000/dashboard/
で起動する

これでようやく画面が出る。
ID・PW:reviewboardでログインできる。


但し、ログを見ると、下記ライブラリも必要みたい。

Pygments
 ハイライト表示機能
Installing PyLucene
 全文検索機能
memcached
 メモリキャッシュ

【2】他Blogを見ながら、管理画面で色々設定する。
下記に色々説明がある。

Review Board | Media and Links

Review Board - a set on Flickr

ReviewBoardで興味を惹いたのは、バグ管理システムと連携できる点だ。
コードレビューのコメントを書く時、バグ管理IDを入れると、該当チケットにリンクする。
この機能のおかげで、コードレビューで修正やリファクタリングが発生したら、チケットで作業状態を追跡できる。

つまり、チケットの発生源はReviewBoard、実際のタスク管理はRedmineで行う運用になる。
おそらく下記の記事のような運用フローになるだろう。

monospace blog ≫ ReviewBoardを使ったコードレビューのワークフロー

TestLinkでも似たような運用になる。
つまり、バグの発生源は普通、テストケースをテストして判明するから、TestLinkの失敗したテストケースにバグ管理IDを紐づける機能がある。
このおかげで、テスト工程やバグ発生源はTestLink、実際のバグ修正の管理はRedmineのように運用できる。

従って、変更管理プロセスはRedmineでやるが、変更要求はTestLinkやReviewBoardから発生するという流れになる。

最近強烈に感じるのは、ツールの運用で開発プロセスが大きく改善されることだ。
コードレビューはペアプロの代替手段という効用もあるから、色々試してみようと思う。


|

« コードレビューWebシステムが必要な理由 | トップページ | 最小限のチケット駆動開発の運用方法 »

ソフトウェア工学」カテゴリの記事

プログラミング」カテゴリの記事

プロジェクトマネジメント」カテゴリの記事