2012年2月5日日曜日

Redmine Code Review Plugin 0.4.7をリリースしました。

Code Review Plugin 0.4.7 Released.

今回の主な変更点はRedmineのtrunkで実装されたMulitple SCMへの対応です。

Mulitple SCMとは1つのプロジェクトに対し複数のリポジトリを関連付ける機能で、Ruby 1.9対応と並んでRedmine 1.4.0の大きな変更点です。

tunkのRedmineを使っている方はCode Review Pluginをアップグレードしてください。

2012年1月20日金曜日

Netbeans IDE 7.1 にRubyプラグインをインストールする

Netbeans IDE 7.1がリリースされたのでさっそく入れてみましたが、プラグイン一覧の中にRubyがまだありませんでした。これじゃあRedmineのプラグイン開発には使えないなと使用を断念しようと思いましたが、以下にプレビュー版のRubyプラグインをインストールする方法が載っていました。

Workaround for Ruby support on Netbeans 7.1

インストールの手順は以下の通り
  1. 上記ページにzipファイルへのリンクがあるのでダウンロードし、任意の場所に展開します。
  2. Netbeans IDEのツール→プラグイン→ダウンロード済み→プラグインの追加でzipファイルを展開したフォルダを開きます。
  3. zip内にあるすべての*.nbmファイルを選択して「開く」を押します。
  4. あとは質問に答えていけばインストールできます。

image

2011年12月17日土曜日

Redmineのプロジェクト設定画面にタブを追加する

Redmine Advent Calendar jp 2011 17日目です。

Redmineのプラグインを作っていると、Redmine内のプロジェクト毎にプラグイン固有の設定を持ちたくなります。Wiki Extensions や Code ReviewプラグインではRedmineのプロジェクト設定メニューに設定タブを追加しています。

image

実はRedmine本体にはプロジェクト設定画面にタブを追加するしくみは提供されていません。
今回はプロジェクト設定画面にプラグイン独自のタブを追加する方法を解説します。Wiki Extensions プラグインの実際のソースを元に説明したいと思います。

projects_helperを拡張する


プロジェクト設定タブを作っているコードはRedmine本体のapp/helpers/projects_helper.rbの中にあるproject_settings_tabsというメソッドです。この中でタブの定義が配列としてハードコーディングされています。このproject_settings_tabsというメソッドをalias_method_chainを使用して拡張します。
Wiki Extensionsのソースではlib/wiki_extensions_projects_helper_patch.rbにその処理が書かれています。この中のポイントは36行名にある

action = {:name => 'wiki_extensions', 
      :controller => 'wiki_extensions_settings', 
      :action => :show, 
      :partial => 'wiki_extensions_settings/show', 
      :label => :wiki_extensions}

です。
これがタブの定義になります。:nameはタブを識別するためのシンボルです。:controllerと:actionはこのアクションを実行する権限のある人にのみこのタブを表示することになります。表示権限の設定であり、実際の動作には関係ありません。partialにはタブを選択した際に表示されるviewのerbを指定します。labelはタブの表示タイトルです。
このlib/wiki_extensions_projects_helper_patch.rbinit.rb内で読み込む設定を行います。

require 'dispatcher'
Dispatcher.to_prepare :redmine_wiki_extensions do
  require_dependency 'projects_helper'
  unless ProjectsHelper.included_modules.include? WikiExtensionsProjectsHelperPatch
    ProjectsHelper.send(:include, WikiExtensionsProjectsHelperPatch)
  end 
end

viewを作る



lib/wiki_extensions_projects_helper_patch.rbのactionでpartialに設定した wiki_extensions_settings/show に対応するerbを作ります。ファイルは app/views/wiki_extensions_settings/_show.html.erb です。partialなのでファイル名の頭に_(アンダースコア)が付くので気を付けてください。


中身は普通のformです。プラグインの設定入力フォームを作ってください。


controllerを作る



最後にformのsubmitに対応するcontrollerのactionを書きます。Wiki Extensionsの場合はapp/controllers/wiki_extensions_settings_controller.rbのupdateというメソッドです。通常のRailsプログラミングのようにformで入力されたデータをDBにセーブした後、最後に以下の行を追加します。

redirect_to :controller => 'projects', :action => "settings", :id => @project, :tab => 'wiki_extensions'


これで再度プロジェクト設定画面に戻ります。

以上で簡単な説明は終わりです。是非チャレンジしてみてください。

2011年12月2日金曜日

Redmine 1.3.0の個人的な注目機能

Redmine Advent Calendar jp 2011 2日目です。
昨日のchangeworldさんの記事で補足。昔のCode Review Pluginはdevelopmentモードじゃ動かなかったけど、最新版は動きますよ。config.cache_classes がtrueでもfalseでもいけます(多分)。
さて、Redmineの久々のメジャーバージョンアップである1.3.0のリリースが近づいています。12/2 0:35現在すべてのチケットがクローズされています
image
このAdvent Calendarが終了するまでにはリリースされるのではないでしょうか。
1.3.0で注目されている機能には@naitohさんの力作であるwikiのPDF出力やリポジトリブラウザでのリビジョングラフ表示、Rest APIの強化などありますが、個人的にうれしいのはWikiのsingle section editです。これはWikiを編集する際にページ全体ではなく特定の章のみ編集する機能です。
image
編集したい章のタイトル右にある鉛筆アイコンをクリックするとその章のみ編集できます。長いページを編集する際には大変便利。まあ、普通のwikiはだいたいこの機能を持っているのでやっとRedmineにも実装されたというところですが。
とまあ、楽しみな1.3.0ですが、問題もありまして、リポジトリブラウザのリビジョングラフ機能がCode Review Pluginとバッティングすることが判っています。1.3.0対応のCode Review Pluginは近々リリース予定ですのでお待ちください。
では次の方お願いします。

2011年11月25日金曜日

Redmine Commit Relation Editor Plugin 0.0.2をリリースしました。

さっそくバグ報告があったので修正版をリリースしました。
http://www.r-labs.org/news/121
修正点は以下の1点です。
  • 親プロジェクトまたは子プロジェクトのチケットに関連付けができないバグを修正(#884)

2011年11月23日水曜日

Redmine Commit Relation Editor Plugin 0.0.1をリリースしました。

久々に新しいプラグインを作りました。Redmine上でコミットとチケットの関連付けを編集するプラグインです。
http://www.r-labs.org/projects/r-labs/wiki/Commit_Relation_Editor
Redmineではリポジトリのコミットメッセージにチケット番号を入力することでコミットとチケットの関連付けを行うことができます。チケット駆動開発の合言葉「No ticket, No commit」が示すようにこの関連付けは非常に重要です。
しかしコミットメッセージに入力するチケット番号を間違えたり、番号を入れ忘れたりすると後から関連付けを修正することができず悲しい思いをします。
このプラグインを使用するとリポジトリブラウザ上から新たにチケットを関連付けたり既存の関連付けを削除したりできるようになります。
image

2011年10月22日土曜日

Redmine Code Review Plugin 0.4.4をリリースしました。

改善要望やらバグ報告やらいろいろ溜まってきたので一旦リリースしました。まだまだ修正中なのでしばらくしたらまたリリースすると思います。

ダウンロードはbitbucketから。

https://bitbucket.org/haru_iida/redmine_code_review/downloads

http://www.redmine.org/plugins/codereview

変更点は以下です。今回は細かな変更のみです。

  • コードレビュー用トラッカーが入力必須のカスタムフィールドを持っていた場合には、コードレビュー作成フォームから入力できるようにしました。(#259)
  • Developmentモードで動かない問題を修正しました。(#261)
  • レビュー表示時に例外が発生する場合がある問題を修正しました。(#812)
  • レビュー一覧表示画面で各レビュータイトルがセンタリングされていたのを左寄せに変更しました。(#843)
  • ドイツ語用言語ファイルを更新しました。(#794)
  • レビューアサイン者は自動的にレビューチケットのウォッチャーに入るようにしました。(#841)
  • レビュータイトルが入っていれば、レビューの本文が空でも登録できるようにしました。(#842)
  • 選択可能なカテゴリが無い場合にはレビューフォームにカテゴリ選択欄を表示しないようにしました。(#852)
  • 選択可能なバージョンが無い場合にはレビューフォームにバージョン選択欄を表示しないようにしました。(#852)

レビュー本文を入力しなくても登録できるようになったのは自分で使っていても地味に便利になったと感じています。「変数名を判りやすく変更して!」など単純な指摘であればタイトルだけで十分に表現可能なので。