Redmine 「コードレビュープラグイン(Code Review)導入編」

Redmineにコードレビューの機能をつけるプラグインである「Code Review」の導入方法について述べる。

前提条件、下準備
Redmineがインストールされている。
Rubyがインストールされている。

ダウンロード
Code Reviewをharu_iida / redmine_code_review / Downloads — Bitbucketからダウンロードする。最新版のzipファイルを落とせば良いだろう。
ダウンロードしたファイルを解凍する。

配置
解凍したファイルをRedmineに配置する。配置場所はRedmineのインストールフォルダのvendor/plugins内である。

rakeコマンド
Rubyのコンソールを開き、プラグインを配置したpluginsディレクトリで下記のコマンドを実行する。

rake db:migrate_plugins RAILS_ENV=production 

そうすると、
Missing the i18n 0.4.2 gem. Please 'gem install -v=0.4.2 i18n'
と出力される。ようするに、gemのバージョンが違うと・・・。
ちなみに、インストールしているgemは1.8.11だったので、かなりのダウングレードでは?

とりあえず、

gem install -v=0.4.2 i18n

を実行してみる。

再度rakeコマンドを実行してみると、

Missing the Rails 2.3.11 gem.Please 'gem install -v=2.3.11 rails',update your RAILS_GEMVERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

という文が出力される。

とりあえず、上にならって

gem install rails --version 2.3.11

というコマンドでrailsのバージョンを下げてみることに。

さあ、これでどうだとrakeコマンドを実行すると、

WARNING: 'require 'rake/rdoctask'' is deprecated.Please use 'require 'rdoc/task'(in RDoc 2.4.2+)' instead.
WARNING: 'task :t,arg,:needs => [deps]' is deprecated. Please use 'task :t,[args] => [deps]' instead.

と出力された。これは新しいパターン。。

ネットで調べたところ、rakeのバージョンが新しすぎるとこうなるとか。。たしかに、度重なるダウングレードによって、インストールしているrakeが動作しないということはあるかもしれない。
「基本的にRails3.0.5より前のRailsでは、rakeのバージョンは0.8.7を使う」のだそうだ。
っと、いうことで、

gem uninstall rake
gem install rake -v0.8.7

を実行。

再度rakeコマンドを実行すると、

Use RbConfig instead of obsolete and deprecated Config.
(in C:Program Files/BiNami Redmine Stack/apps/redmine)
rake aborted!
uninitialized constant Gem::SyckDefaultKey 

と出力された。
これまた、今までにないエラー文。。

とりあえず、ググッてみたところ、Redmineをバージョンアップしようとしてrake db:migrateしたら、rake aborted! (uninitialized constant ActiveSupport::Dependencies::Mutex) - id:rx7(@namikawa)の技術メモ - 技術日記に、「gemのバージョンが新し過ぎるから」という貴重な情報!
たしかに、現状のgemのバージョンが1.8.13って新しすぎる(笑)

gem install rubygems-update -v=1.3.7

を実行できるようにするため、現状のバージョンをアンインストールしようとする。

gem uninstall -v=1.8.13

そうすると、

ERROR: While executing gem...(Gem::CommandLineError)

となる。おいおい。エラーからエラーですか。。
これについて調べてみると、インストールするときにsudoというコマンドをつけなければならなかったらしい。
それならデフォルトの仕様にしろよって話である。
gem uninstallでGem::InstallError|DIGITAL SQUADブログ
そもそもsudoコマンドとはWindowsのコマンドなのか?何やら怪しい香りがする。。

とりあえず、方針転換で「rakeコマンドを打つディレクトリが違うのではないか?」という点を疑ってみる。
BitNami Redmine Stack\apps\redmine\vendor\pluginsで実行していたが、このフォルダ内にはrakeファイルはない。
っと、いうことで、BitNami Redmine Stack\apps\redmineまでプロンプトのディレクトリを戻してrakeコマンドを実行してみる。

rake aborted!
uninitialized constant Gem::SyckDefaultKey

(See full trace by running task with --trace)

と、表示される。結局以前と同じエラー。。
なんだかtraceがなんちゃらといっているので、rakeコマンドを

rake db:migrate_plugins RAILS_ENV=production --trace 

にして実行してみる。
traceを見る限り、rakeの実行はされているけれどもGemやらが動いていないとのことのようだ。。
もう一点、traceで気になるのはCドライブ直下のRubyを参照していること。一応、BitNamiのフォルダの中にもRubyがインストールされているわけで、ひょとしたら違うRubyファイルを呼び出しているのか?

"C:Program Files\BitNami Remine Stack\ruby\bin\rake" -f Rakefile rake db:migrate_plugins RAILS_ENV=production --trace

これでもエラー文変わらず。。
traceを見ると結局Cドライブ直下のRubyが呼び出されている。
いっそのことこいつをアンインストールしてみるか!ってんで、Cドライブ直下のRubyをアンインストール。
今度はRubyのコマンドそのものが認識されないようになった。当然と言えば、当然だが、Redmineと共に入っているRubyへのパスが通っていないのではないか?という新たな疑問が浮上する。
とりあえず、BitNamiフォルダ内のRubyにパスを設定してみると、Rubyのコマンドを受け付けるようになった。
この状態でRedmineフォルダまで移動し、

rake db:migrate_plugins RAILS_ENV=production --trace

を入力。

Core_RL_magick_dllが見つからなかったため、このアプリケーションを開始できませんでした。

と、出力される。
http://www.qualysite.co.jp/tech-blog/?p=2581を見るに、またしてもパスを通せということらしい。
とりあえず、パスを通し、コマンドプロンプトを再起動してrakeコマンドを入力してみる。
!!!!
通った!!

BitNami Redmineのmanageツールでアプリの再起動をかける。
実際にプロジェクトを作成してみると以下のとおり、