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から発生するという流れになる。
最近強烈に感じるのは、ツールの運用で開発プロセスが大きく改善されることだ。
コードレビューはペアプロの代替手段という効用もあるから、色々試してみようと思う。
| 固定リンク
「プログラミング」カテゴリの記事
- Javaのモジュールシステムの考え方をまとめてみた(2022.10.21)
- Javaのモジュールシステムは複雑性をより増している(2022.09.10)
- Javaはなぜ関数型言語になろうとしているのか(2022.09.02)
- Javaのラムダ式の考え方(2022.08.10)
- Javaはオブジェクト指向言語ではなく関数型言語だった~「[増補改訂]関数プログラミング実践入門」はお勧めの本だ(2022.08.06)
「プロジェクトマネジメント」カテゴリの記事
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart2~プロセスのレイヤと達成目標のレイヤが異なる(2023.02.18)
- ストラテジストとプロジェクトマネージャの役割の違いは何なのかpart1~CSFはWBSみたいなものと捉える(2023.02.14)
- PM理論では課業志向の方が関係志向よりも生産性が高いことを主張しているのではないか(2023.01.22)
- 現代日本人の弱点はリーダーシップ不足と生産性が著しく低いこと、そしてリスク許容度が著しく低いことだ(2022.12.23)
「ソフトウェア工学」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「システムアーキテクチャ構築の原理」の感想(2024.05.06)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- マイクロサービス設計は従来のアーキテクチャ設計と何が違うのか(2024.01.02)
- 「ソフトウェアアーキテクチャ・ハードパーツ」の情報リンク~マイクロサービスの設計技法の課題は何なのか(2023.11.12)
最近のコメント