• メールアドレス:
  • パスワード:

Python/Django製のコードレビューツールを使ってみた

後藤大地(オングス)
2007/06/01 15:03

 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はコンパイルできないので注意だ。

  • 1
  • 2
次へ »
キーショートカット:  b - 前のページ n - 次のページ
関連記事
この記事を読み解くキーワード:
ソフトウェア開発
開発環境
ZDNet用語検索
企業情報
キーワード
関連ホワイトペーパー
関連製品

注目記事

「似非」SOAを見破る10の方法

・SOAと言いながらも、実はSOAの体を成していないものがある。本記事では、そういった「似非」SOAを見破る方法を紹介する。 2008/07/09 08:00 【ITマネジメント

マイクロソフト:Vistaについて「心配する時期は終わった」

・Microsoftはパートナー向けのカンファレンスで、Vistaについて心配する時期は過ぎたことを改めて強調し、特定のハードやソフトのVistaとの互換性をチェックできる新ポータルサイトや、小規模企業向けの新サポートサービスを発表した。 2008/07/09 09:07 【オール・アバウト・マイクロソフト

企画特集

「未来の、その先」をどう提言していくか「未来の、その先」をどう提言していくか
クラウドコンピューティングが導く新しいシステム
今知るべき仮想化情報今知るべき仮想化情報
インフラからアプリケーションまで、これを知らずに仮想化は語れない
DELL連載第4回〜「Microsoft System Center」DELL連載第4回〜「Microsoft System Center」
PowerEdgeサーバに最適な運用管理ソリューション後編
Techno ExchangeTechno Exchange
全体最適化で進めるCTCのグリーンIT戦略
ZDNet Japan Green ITZDNet Japan Green IT
洞爺湖サミット目前!環境に配慮したGreen ITとは?
ブログ RSS Feed
洞爺湖と環境と私
裏方の裏方日記〜日々是広報 2008/05/20 12:57
プロがなぜ、二次創作を願うのか--Gacktが歌い、三浦建太郎が描く「がくっぽいど」
ミュージシャンのGacktさんと漫画家の三浦建太郎さんという2人のプロが参加しながらも、ユーザーが自由に作品を公開できるという歌声合成ソフト「がくっぽいど」。この開発経緯を開発元に聞いた。
iPhone、月額通信料金は7280円からに--ソフトバンクモバイルが発表
UPDATE ソフトバンクモバイルはiPhoneの通信料金プランを発表した。月額980円のホワイトプランに、データ定額制プラン「パケット定額フル」、「S!ベーシックパック(i)」をあわせ、月額7280円からとなる。
ジョブズ氏引退後のアップルを考える
カリスマ的な創業者が社を去った後、会社の業績が低迷する事例は、ハイテクだけでなく、さまざまな業界で見られる。アップルは「ジョブズ氏後」に備えているのかどうか検討する。