2010-11-29

Redmine Importerを使わせていただきました。

Redmineに関する重大なニュースが流れて、びっくりした週末。
何が自分にできるんだろうな....と思いつつも、なかなか使うばかりで提供ができません。お恥ずかしい限りです。

* * *
さて、先日、「チケットを一括でインポートしたいんだけど、カスタムフィールドも一緒に登録できますか?」というリクエストを同僚からいただきました。
今まででも、下記のプラグインを利用していたのですが、カスタムフィールドはNGでした。

いろいろ探してみたところ、@yusuke_kokubo さんから、もう一つのプラグインを紹介していただきました。(ありがとうございます!)

こちらのプラグイン、有難いことにカスタムフィールドからファイルのエンコーディング指定まで可能。(ありがとうございます!)
※残念ながら、上記2つのプラグインは名前がかぶってしまうので、そのままでは同居は出来ません。

さて、junoさんのプラグインを、Redmine0.9xで試したところ、まず言語ファイルの場所が変わっているため、config/locales 以下にファイルを移動させました。このあたりは、多くの皆さんがBlogに書かれている通りで、インデントの調整なども行いました。

その後、こちらの記事も拝見し、NKFによる文字コードの変換の部分を、1行づつ変換ではなく、ファイルを読み込むところで一気に変換するよう、調整してみました。

加えてみた変更は、以下の通り。

  • 読み込み時にNKFでまとめて変換
  • Permissionの調整 (Controllerの :authorize を利用)
  • ルーティングを調整 (/:project/:controller/:action の順にしてみた)
  • メッセージの調整
  • プラグインに関しては、r-labs チュートリアルを参考にしています!

せっかくなので、Gitの練習用に、junoさんのソースをフォークさせていただいたき、そちらに変更分を登録してみました
たぶん1.0xでも動くかな...と思っていますが、不具合があったら修正してみます。

なお、一括インポートの注意点ですが、チケットが作成/更新されると、通常のフローと同じで、メールが送信されます。

Issue.saveのところで、コードには明示しなくとも、Issue Observerがメール送信のコードを呼び出すようです。
一括登録時は、メールが出ないように設定できるといいなあ...と思いました。

2010-11-15

Hudson勉強会に行ってきました。(20111112)

諸般の事情により、平日夕方や週末のIT系の勉強会からは、ずっと遠ざかっていました。

ですが、どうしても、『川口さん自身がいらっしゃる、Hudson勉強会だけには参加したい~!』と思い、なんとか周囲のご理解とご協力を得て、出席に漕ぎ着けることができました。

#ちなみに、職場から会場までは、さほど遠くないので、開始45分前に出れば十分だろうな…と思っていたのですが、意外と駅から会場の法政大学までの行き方がわからず、思ったより時間がかかってしまいました(^^;
念願の勉強会、書きたいことはたくさんあるのですが、本当に楽しかった、の一言に付きました。
セッションもLTも、どれも甲乙付けがたく、これで(基本の)参加費は無料というのが申し訳ないくらいです。

* * *

個人的に、非常に感銘を受けたのは、@magnet88jp さんの、 Hudson活用事例 です。

私は仕事の中で、こじんまりと、社内向けのWebアプリやツールを作ったりもしているのですが、QAとかテストのことを全く考慮していませんでした。
ですから、@magnet88jpさんのプレゼンで、もう穴があったら入りたいくらいに恥ずかしくなってしまいました…。
実は私の職場の後輩も、今回の勉強会に参加してくれていたので、本人なりにいろいろ感じ取っているはず。きっと今後に活かしてくれる、と思っています。

ご本人には、とても恐れ多くてお話することができませんでしたが、本当に貴重なお話をしてくださって、有難うございました。

今回の勉強会のメモです。久しぶり。
プレゼン&LTの中で、大ウケで、かつ遊びゴコロが一番刺激されたのは、@kiy0takaさんの モテるHudsonエンジニア
Hudsonに絡めた、『これでもか、これでもか~!』という、モテるための策が次々と繰り出され、会場も大爆笑でした。
Groovyを利用したTerminal Pluginも物凄く楽しいのですが、LTの最後の『合コン』テロが衝撃的。

......とても『ご清聴』どころじゃありませんでした!!
  • なお、合コンテロ、週明けに会社のHudsonで試してみよう、と画策し、Scriptを埋め込んで検証してみたところ、IEではテロが未遂に終わってしまいました(互換性の問題)。
    IEでなんとか表示させたいなと思ったのですが、如何せんJSも明るくないので、ここは断念。
  • Firefoxではバッチリですが、カスタマイズしたダッシュボード/View上では、やはりテロは行われませんでした。
    トップページでは見事に遂行されていますが、各Viewの説明毎に記載しないと、気づいてもらいにくいかもしれません。
    (Hudsonのヘッダそのものに埋め込む手もありますが)
* * *
いつもお世話になっている、haruさんのLTの中では、E-mail Extプラグインを使って、Redmineにチケットを上げているという使い方が紹介されていました。私も同じプラグインを使っているんですが、そういう発想はありませんでした。
なるほど…(^^;
ちなみに、私はRedmine派でRedmine Hudson pluginを利用していますが、懇親会の会場では、周りをtracユーザの皆様に囲まれてしまいました...。
* * *
もちろん、川口さんご本人のお話も外せませんが、書ききれないので、またいつか。
#ご本人による、『ハドソン』ではなく、『ハドスン』という響きが、とても意外でした。

とにかく、なんといっても、MLやネットでお世話になった方にご挨拶することが出来たのは、本当に嬉しく、こうして書いていても、しみじみとした気持ちが沸いてきています。
たぶん今後もそんなに勉強会には参加できないと思います。それだけに、改めて、今回機会をいただけたこと、そして会そのものを企画、進めてくださった皆様に心から感謝申し上げます。

HudsonからSVNリポジトリへのアクセス

普通はあんまりなにも考えずに、Subversionリポジトリにアクセスしてチェックアウトできます。
ただし、Hudsonのサーバから見て、SubversionのサーバはProxy経由でアクセスできない場合は、このままだとチェックアウトもポーリングもできません。
どうしたものかなあ…と思っていたら、Proxyの設定が可能なようで、Hudsonの場合は、下記を参考にして hudsonの実行ユーザの .subversion/config を調整しました。

なるほど、なるほど。
環境変数のhttp_proxyに設定してしまうと、proxyの使い分けがうまくできませんが、Subversionの設定ファイルを利用すれば、ドメイン毎にプロキシを利用したり、しなかったりと、細かい調整が出来るようです。