There are No Perfect Redmine

44
Jun 12, 2009 Junya Ogura <[email protected] > 完璧なRedmineなど存在しない Saturday, June 13, 2009

description

2009年6月12日 Redmine勉強会での発表資料。

Transcript of There are No Perfect Redmine

Page 2: There are No Perfect Redmine

181,696

22

projects

tickets

users

2008.10~

社内Redmineの規模

Saturday, June 13, 2009

Page 3: There are No Perfect Redmine

自己紹介

• Junya Ogura (おぐらじゅんや)

• 株式会社サーバーワークス 所属• PHP, Ruby, Javaプログラマ

id:junosooey.comtwitter.com/junyagithub.com/juno

Saturday, June 13, 2009

Page 4: There are No Perfect Redmine

アジェンダ

•なぜTracをやめたか•移行にあたってやったこと• Textile記法ないわー• CSVで一括インポート•楽しく利用してもらうための細工•パッチのプラグイン化

Saturday, June 13, 2009

Page 5: There are No Perfect Redmine

なぜTracをやめたか

Saturday, June 13, 2009

Page 6: There are No Perfect Redmine

説明しなくてもわかりますよね

Saturday, June 13, 2009

Page 7: There are No Perfect Redmine

なぜTracをやめたか

•管理画面の機能が貧弱•拡張しづらい (Python...)

•開発の停滞感 などなど

Saturday, June 13, 2009

Page 8: There are No Perfect Redmine

移行にあたってやったこと

Saturday, June 13, 2009

Page 9: There are No Perfect Redmine

移行にあたってやったこと

•マニュアルの作成•段階的な導入•積極的な要望の吸い上げ•自分が率先して使う

Saturday, June 13, 2009

Page 10: There are No Perfect Redmine

マニュアルの作成

PDF 34 pagesSaturday, June 13, 2009

Page 11: There are No Perfect Redmine

段階的な導入

• Tracとの並行運用• 新規プロジェクトはRedmineで• 既存のプロジェクトはTracのまま• フェーズの変わり目でRedmineに移行• TracはRead Only扱いで残す (チケットは移行しない)

新規プロジェクト

既存プロジェクト

Saturday, June 13, 2009

Page 12: There are No Perfect Redmine

積極的な要望の吸い上げ

•「Tracよりよくなった」感の演出• 不評なところをどんどん改善していく• Railsアプリケーションなので手が入れやすい• CSSのカスタマイズなど

Saturday, June 13, 2009

Page 13: There are No Perfect Redmine

自分が率先して使う

• 「それ、RedmineのWikiに書いておきました」• 小さな社内プロジェクトでもRedmineを使う• 社内ブログで使い方に触れる

Saturday, June 13, 2009

Page 14: There are No Perfect Redmine

Textile記法ないわー

Saturday, June 13, 2009

Page 15: There are No Perfect Redmine

説明しなくてもわかりますよね

Saturday, June 13, 2009

Page 16: There are No Perfect Redmine

Textile記法ないわーh1.修正してほしいところ

*登録フォーム**送信ボタンの位置をもう少し右にして下さい

h2.コード例

<pre>Codehere...</pre>

"参考資料":http://example.com/

• けっこうHTMLむきだし• plain textの状態だと非常に見づらい• とくに再編集があるWikiの記法としては使いづらい

Saturday, June 13, 2009

Page 17: There are No Perfect Redmine

Markdownが使いたい!

修正してほしいところ====

*登録フォーム*送信ボタンの位置をもう少し右にして下さい

コード例‐‐‐‐

Codehere...

[参考資料](http://example.com/)

• 自然なPlain Textに見える

Saturday, June 13, 2009

Page 18: There are No Perfect Redmine

redmine_markdown_formatter

http://github.com/bitherder/redmine_markdown_formatter/tree/master

Saturday, June 13, 2009

Page 19: There are No Perfect Redmine

Markdown Extraが使いたい!

テーブル。|Fruit|Price||‐‐‐‐‐‐|‐‐‐‐‐‐||Apple|100||Orange|95|

脚注付きの文が書けます。[^1]

[^1]:MarkdownExtra拡張です。

ヘッダ1{#header1}

====

[ヘッダ1へのリンク](#header1)

http://michelf.com/projects/php‐markdown/extra/

Saturday, June 13, 2009

Page 20: There are No Perfect Redmine

redmine_markdown_extra_formatter

http://github.com/juno/redmine_markdown_extra_formatter/tree/master

Saturday, June 13, 2009

Page 21: There are No Perfect Redmine

CSVで一括インポート

Saturday, June 13, 2009

Page 22: There are No Perfect Redmine

CSVで一括インポート• PMからの要望 (Excel派)

• テスト項目をチケット管理する際はとくに欲しい• 一括登録さえできればいい (一括更新はいらない)

怒濤のテスト

Saturday, June 13, 2009

Page 23: There are No Perfect Redmine

CSVで一括インポート

redmine_importer (スカイアークシステムさん)http://www.skyarc.co.jp/engineerblog/entry/post_12.html

post_issue_vbs (ファーエンドテクノロジーさん)http://code.google.com/p/farend‐redmine‐tools/wiki/post_issue_vbs

ExcelRedmineAddIn (id: kaorun55さん)http://d.hatena.ne.jp/kaorun55/20090524/1243177625

Saturday, June 13, 2009

Page 24: There are No Perfect Redmine

redmine_importer (Martin Liu’s)

http://www.martinliu.info/2009/04/redmine_importer‐redmine‐csv‐import‐plugin/

Saturday, June 13, 2009

Page 25: There are No Perfect Redmine

redmine_importer (Martin Liu’s)

よさそうなので、日本語化しました

http://github.com/juno/redmine_importer/tree/master

Saturday, June 13, 2009

Page 26: There are No Perfect Redmine

redmine_importer (Martin Liu’s)

id,title,body1,"xxxxxを実装する","がんばれ"

2,"xxxxxを修正する","がんばれ"

3,"xxxxxをテストする","がんばれ"

用意するCSVはこんな感じ

Saturday, June 13, 2009

Page 27: There are No Perfect Redmine

redmine_importer (Martin Liu’s)

CSVのアップロード

Saturday, June 13, 2009

Page 28: There are No Perfect Redmine

redmine_importer (Martin Liu’s)

列のマッチングをしてインポート

Saturday, June 13, 2009

Page 29: There are No Perfect Redmine

楽しく利用してもらうための細工

Saturday, June 13, 2009

Page 30: There are No Perfect Redmine

ユーザーアイコン

Saturday, June 13, 2009

Page 31: There are No Perfect Redmine

ユーザーアイコン

活動状況も一目瞭然

Saturday, June 13, 2009

Page 32: There are No Perfect Redmine

ユーザーアイコン

Gravatarを利用する (Redmine 0.8.0-)

• デフォルトで使える• ユーザーが自由に画像を変更できる• メールアドレスをGravatarに登録する必要がある

Saturday, June 13, 2009

Page 33: There are No Perfect Redmine

ユーザーアイコン

Local avatars Pluginを利用するhttp://www.redmine.org/boards/3/topics/5365

• 画像はRedmineサーバ上に格納される• 画像の変更は管理画面からしかできない

Saturday, June 13, 2009

Page 34: There are No Perfect Redmine

他にも• favicon.icoをちゃんと作る• グラフィカルなプラグイン (Gompertanなど)

• スニペット共有プラグイン (redmine_codebook)

redmine_codebookhttp://github.com/sroegner/redmine_codebook/tree/master

Saturday, June 13, 2009

Page 35: There are No Perfect Redmine

パッチのプラグイン化

Saturday, June 13, 2009

Page 36: There are No Perfect Redmine

パッチのプラグイン化

•通知メールのSubjectを変更する• UTF-8で長いSubjectのメールが文字化けするので• OutlookやiPhoneでたまに発生

• Changesetのコミッタ名を整形する• リポジトリアクセスにはLDAP認証を使っており、Changesetのauthorが [email protected] となる

• 表示の際にドメイン部を除去するようにした

こんなパッチを作っていました

Saturday, June 13, 2009

Page 37: There are No Perfect Redmine

パッチのプラグイン化

バージョンアップの度に、パッチをあてる必要がある

問題点

‐‐‐app/models/changeset.rb.orig+++app/models/changeset.rb@@‐59,7+59,7@@enddefauthor‐user||committer.to_s.split('<').first+(user||committer.to_s.split('<').first).gsub(/@.+/,'')enddefbefore_create

Saturday, June 13, 2009

Page 38: There are No Perfect Redmine

パッチのプラグイン化

Changesetのauthor整形プラグインをつくる

プラグイン化

Saturday, June 13, 2009

Page 39: There are No Perfect Redmine

パッチのプラグイン化

Plugin Tutorial

プラグイン作成の資料

http://www.redmine.org/wiki/redmine/Plugin_Tutorial

Plugin Internalshttp://www.redmine.org/wiki/redmine/Plugin_Internals

Saturday, June 13, 2009

Page 40: There are No Perfect Redmine

パッチのプラグイン化

$cdredmine$script/generateredmine_pluginsimplify_changeset_author

ひな形を作成

プラグイン名

Saturday, June 13, 2009

Page 41: There are No Perfect Redmine

パッチのプラグイン化init.rbを編集

require'redmine'

require'dispatcher'require'changeset_patch'

Dispatcher.to_preparedoChangeset.send(:include,ChangesetPatch)end

Redmine::Plugin.register:redmine_simplify_changeset_authordoname'SimplifyChangesetAuthorplugin'author'Authorname'description'ThisisapluginforRedmine'version'0.0.1'end

vendor/plugins/redmine_simplify_changeset_author/init.rb

Saturday, June 13, 2009

Page 42: There are No Perfect Redmine

パッチのプラグイン化

require_dependency'changeset'moduleChangesetPatchdefself.included(base)#:nodoc:base.send(:include,InstanceMethods)base.class_evaldoalias_method_chain:author,:simplifyendendmoduleInstanceMethodsdefauthor_with_simplifyauthor_without_simplify.gsub(/@.+/,'')endendend

lib/changeset_patch.rbを作成

redmine_simplify_changeset_author/lib/changeset_patch.rb

Saturday, June 13, 2009

Page 43: There are No Perfect Redmine

パッチのプラグイン化

• これでバージョンアップ作業も簡単に• alias_method_chainを使いこなすのがポイント• パッチ対象のクラスによっては上手くいかないときもある• クラスのロードのタイミングや、リロードされることを考慮する

Saturday, June 13, 2009

Page 44: There are No Perfect Redmine

Fin.

Saturday, June 13, 2009