Google Codeに「Review Board」というプロジェクトが追加された。Djangoを使って開発されたWebベースのソースコードトラッキングシステムだ。ライセンスについて、Review BoardのサイトにはThe MIT Licenseと記載されているが、成果物に含まれているライセンスファイルはなぜかApache Software License Version 1.1。どのみちオープンソースソフトウェアではある。
VMwareとともに動作するという興味深い特徴があるが、VMwareなしでも使うことは可能だ。今のところサポートしているリポジトリはSubversionとPerforceだ。
CVSであればCVSWebなど、リポジトリにWeb経由でアクセスするためのアプリケーションは存在する。Review Boardは同じジャンルのシステムだが、扱いやすさや複数リポジトリへの対応など、今後が期待できるものとなっている。
公開されて間もないこともあって、インストールなどはまだまだ手間がかかる。とはいえ、順次必要なコンポーネントを用意していけば問題なく動作するので試してみよう。必要なものはWikiの"Basic Dependencies"を参照のこと。
Review Boardのソースコードは執筆現在、アーカイブでの提供は行われていないので、Subversionクライアントを使って取得する。
% svn checkout http://reviewboard.googlecode.com/svn/trunk/ reviewboard
次に、設定ファイルsettings_local.pyをコピーして編集する。SQLite3を使ってlocalhostで動作させる場合は、次のようなファイルを用意する。MySQLよりもSQLiteを使う方が簡単なので、試すだけならSQLite3を使った方がいい。設定内容はファイル内のコメントに説明が書いてあるので、それにしたがって作成しよう。
Review Board設定ファイルをテンプレートからコピー
% cd ./reviewboard/reviewboard/
% cp settings_local.py.tmpl settings_local.py
settings_local.pyファイルの編集例 - SQLite3とlocalhostを使う場合
DATABASE_ENGINE = 'sqlite3' # 'postgresql', 'mysql', 'sqlite3' or 'ado_mssql'.
DATABASE_NAME = 'reviewboard.sqlite' # Or path to database file if using sqlite3.
DATABASE_USER = '********' # Not used with sqlite3.
DATABASE_PASSWORD = '********' # Not used with sqlite3.
DATABASE_HOST = '' # Set to empty string for localhost. Not used with sqlite3.
DATABASE_PORT = '' # Set to empty string for default. Not used with sqlite3.
# Make this unique, and don't share it with anybody.
SECRET_KEY = 'p8923yaernva4tqkwdavo8qi2v7349qc3q23479-p123youwidhoq8923yco'
CACHE_BACKEND = 'locmem:///'
SEND_REVIEW_MAIL = False
あとは成果物に含まれているスクリプト(manage.py)を使ってデータベースを初期化する。途中、管理者権限のユーザを作成するので、入力したユーザ名とパスワードを忘れないように。
データベースを初期化
% ./manage.py syncdb
Creating table django_admin_log
Creating table auth_message
Creating table auth_group
Creating table auth_user
Creating table auth_permission
Creating table django_content_type
Creating table django_site
Creating table django_session
Creating table accounts_profile
Creating table diffviewer_diffset
Creating table diffviewer_diffsethistory
Creating table diffviewer_filediff
Creating table reviews_comment
Creating table reviews_group
Creating table reviews_quip
Creating table reviews_screenshot
Creating table reviews_review
Creating table reviews_reviewrequestdraft
Creating table reviews_reviewrequest
Creating table reviews_screenshotcomment
Creating table scmtools_tool
Creating table scmtools_repository
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes ←ここでyesと入力
Username (Leave blank to use 'testuser'): ←ユーザ名を入力
E-mail address: testuser@example.com ←メールアドレスを入力
Password: ←パスワードを入力
Password (again): ←パスワードを再度入力
Superuser created successfully.
Installing index for admin.LogEntry model
Installing index for auth.Message model
Installing index for auth.Permission model
Installing index for accounts.Profile model
Installing index for diffviewer.DiffSet model
Installing index for diffviewer.FileDiff model
Installing index for reviews.Comment model
Installing index for reviews.Review model
Installing index for reviews.ReviewRequestDraft model
Installing index for reviews.ReviewRequest model
Installing index for reviews.ScreenshotComment model
Installing index for scmtools.Repository model
Loading 'initial_data' fixtures...
Installing json fixture 'initial_data' from '/usr/home/testuser/reviewboard/reviewboard/../reviewboard/scmtools/fixtures'.
Installed 2 object(s) from 1 fixture(s)
%
これでインストールは完了だ。
インストールが失敗するんだけど…… という場合は
次のような表示が出て、インストールが失敗することがある。これはpysqlite2モジュールがないというものなので、システムに用意されているパッケージ管理システムなり、成果物をダウンロードしてきてインストールするなり、自力でコンパイルするなりしてインストールすることになる。
Review Boardが動かない - 必要なPythonモジュールが用意されていないので、追加インストール
% ./manage.py syncdb
Traceback (most recent call last):
File "./manage.py", line 11, in ?
execute_manager(settings)
File "/usr/local/lib/python2.4/site-packages/django/core/management.py", line 1672, in execute_manager
execute_from_command_line(action_mapping, argv)
File "/usr/local/lib/python2.4/site-packages/django/core/management.py", line 1571, in execute_from_command_line
action_mapping[action](int(options.verbosity), options.interactive)
File "/usr/local/lib/python2.4/site-packages/django/core/management.py", line 486, in syncdb
from django.db import connection, transaction, models, get_creation_module
File "/usr/local/lib/python2.4/site-packages/django/db/__init__.py", line 11, in ?
backend = __import__('django.db.backends.%s.base' % settings.DATABASE_ENGINE, {}, {}, [''])
File "/usr/local/lib/python2.4/site-packages/django/db/backends/sqlite3/base.py", line 18, in ?
raise ImproperlyConfigured, "Error loading %s module: %s" % (module, e)
django.core.exceptions.ImproperlyConfigured: Error loading pysqlite2 module: No module named pysqlite2
%
筆者はFreeBSDで動作確認をとっている。この場合、pysvnやp4pythonはPorts Collectionに入っていないので、自力ビルド&インストールがちょっと面倒だったりする。ほかにもlibresolvはlibcに統合されているので、コンパイルオプションからはずさないとpysvnはコンパイルできないので注意だ。
関連情報
-
MS、.NET版Pythonのベータをリリース
マイクロソフトが先週末にリリースした「IronPython 1.0 Beta 1」は、ほかのすべての.NETプログラミングフレームワークと「密接に統合」されており、Pythonのプログラマーはどの.NETライブラリも「容易」に利用できるようになるという。 - Python 2.5、正式版リリースに一歩近づく
- オープンソース・コード管理アプリ「CVS」と「Subversion」に脆弱性 [From CNET Japan]
- 日立ソフト、CVSなどと連携可能なJavaコード検査ツールを発表 [From CNET Japan]
- オープンソース・コード管理アプリ「CVS」に6つの脆弱性--セキュリティ研究者らが発見 [From CNET Japan]
- グーグル
「システム開発」 のバックナンバー
-
グーグル、JavaScriptプログラミングツールをリリース
グーグルは米国時間11月5日、新たに「Closure Tools」プロジェクトを立ち上げ、JavaScriptプログラムの作成をサポートする一連のツールをリリースした。 -
ネットの「2011年問題」?--IPアドレス枯渇対応チェックリスト公開
-
通販システムのコンサルから開発保守まで提供--日立システムの新サービス
-
湘北短大、33台の物理サーバを6台に集約--VMware採用し学内IT環境を整備
-
Mozilla Labsのユーザーエクスペリエンスチーフに聞く--FirefoxとWebの未来
- システム開発 一覧へ »
-
新型インフルエンザ等のパンデミック時に対応できるユーザー認証のあり方と仕組み
- 日本モバイルインターネット端末市場分析 〜2008〜2012年のMID及びスマートフォン...
- パンデミックでも社員を守り業務継続を支援する
- iPhoneをビジネスで活用する時代へ〜ビジネス&モバイルのミライ〜
- 圧倒的なWeb会議市場シェアを誇る「nice to meet you」のご紹介
- ITコスト削減の傾向と対策 〜情報システム部様限定〜
- SOA による製造ラインとバックエンド レガシー メインフレームの統合
- ビジネス コンポーネント アーキテクチャ -- SOA と EDA の統一 --
- 最上級のブレードがこれだ!導入実績豊富な製品で構成され、仮想化環境に最適化し...
- 異種データベースサーバ統合による戦略的コスト削減のススメ
企画特集
-
最大32個のセンサーが電力を徹底管理!
『省エネ性能』追求HPx86サーバー徹底レビュー -
【最終警告】パンデミック対策特集
サービス品質を保証するためのリスクマネジメントとは -
―エン・ジャパン厳選求人☆毎週更新―
ハンゲームの社長が語る・人材とサービスの在り方 -
進むストレージ環境の見直し
仮想環境に最適なiSCSIストレージLeftHandのメリット -
求めているのはSIerのエンジニア!!
連載インタビュー第1話、グリーCTO藤本氏が語る -
100万円で実現!中小企業の情報漏えい対策
中小企業の課題!?セキュリティ管理者不在でも大丈夫 -
企業ITシステムの企画、構築、運用のイロハ
戦略的なITシステムのために、今考えるべきポイント -
大丈夫?あなたの会社のセキュリティ対策
中堅・中小企業のネットワーク・セキュリティを考える -
マネジメントの「コラム」と「コネタ」
今日のキーパーソンは誰? -
J-SOX法制定により内部統制の整備が急務に
重要性高まるActive Directoryの課題と対処法を公開中 -
情報漏えいを食い止める!
証跡としての信用力を高めるメールアーカイブとは? -
VMware OEMベンダー6社を独占インタビュー
IBM、HP、NEC、DELL、日立、富士通のVMwareの取り組み -
急増するオンライン犯罪への解決策!
オンラインサービス保護ソリューション
-
7. ホットスポットと同時並列性分析について
この3分間のビデオは、Intel Parallel Studioの一部であり、アプリケー... -
8. Valarray
この5分間のビデオでは、Intelコンパイラの1次元Valarrayデータ構造に対...
