Retrospectivaを試してみた

実際に試したのは 4月29日。

Trac に対する不満

Trac からの移行を考えている。なんでかっていうと

  • Trac は複数のプロジェクトを扱うことができない
  • 1Trac : 1ユーザーDB になるのでプロジェクトが増えるとユーザー管理が面倒くさい

Trac は基本的に認証用のユーザー DB と権限管理のユーザー DB が分離している。デフォルトでは認証は HTTP サーバの BASIC 認証を利用していて、権限を Trac の DB に保存する形。この形のままプロジェクトごとに Trac が増えていくとかなり管理しにくいこと請け合い。

もしかするとリポジトリは1つにすべしという考え方に基づいているのかもしれない。でも自分の経験では適切に分割してある方がやはり扱いやすい。これは皮肉なことに(?)特に Trac を使い始めてから強く感じている。例えば複数のプロジェクトの branch が増えてくると Trac で browse するのも一苦労1。開発プロジェクトと管理プロジェクトではチケットの設計だってずいぶん違う。

まぁそんな訳で複数のリポジトリ、複数のプロジェクトを一つの ITS で管理できたらいいなと思うようになってきていた。調べると Trac にも複数のプロジェクトを横断的に閲覧することを助けてくれる plugin はある。でもそれは目的と違うんだよなぁ。

ごく大雑把に特徴

というわけで Retrospectiva. ざっと調べたのと軽く動かしてみた印象での特徴は以下のような感じ。

  • Ruby on Rails アプリ
  • ということは ActiveRecord で扱えるすべての DBMS とともに動く
  • 機能的には Trac + WebAdmin + blog
  • 独自に認証の機構を持つ
  • 複数プロジェクトを管理可能、これらをグループと関連づけて運用する
    • プロジェクトごとに参加メンバーが違うなど

この時点で複数プロジェクトのために複数 Trac を設置して、それぞれバラバラにユーザー管理しなければいけないという事態からは解放される。

インストール

Rails のインストールは省略。今回はFreeBSD上で、すでにOpenFL(Fastladder.org)のために構築してあった Rails 2.0.2 の環境でテスト。

試した時点ではアーカイブのダウンロードという選択肢はなく、svn co する以外にない。ちょっとビジネス寄りの人にはいやがられるかもね。

Rails 2.0.2 では stable 1.0 は動かなかった。trunk(Rev.495) は動いた。

リポジトリとの関連付けは任意

Trac と大きく違うのは、

  • リポジトリとプロジェクトは必ずしも結びついていなくてよい
  • リポジトリは local だけでなく remote でもよい
    • 試してないけどたぶん2

つまり、リポジトリを使わないプロジェクト(開発以外)などにも使えるってことだ。これはなかなかいいと思う。メニューのカスタマイズもできるので Browse のメニューは必要なければ消しちゃえばいい3。開発者と非開発者で同じ Retrospectiva を共有しやすいと思う。

subversion 以外とも連携できるようにということは配慮されているみたいだけど、今のところ subversion しか使えないように見える。4

migration

trac からの移行用スクリプトはある。どれだけ双方のバージョンに追随しているのかは分からないけど。

「とりあえず見るだけ」ってどうやんの?

「Default」グループに各Viewの権限を、すべてのプロジェクトに対して割り振っておく。これやっておかないと(少なくとも試した rev. では)ログインしないと何にもできない状態になる。Trac に慣れているとここは面食らう。

redMineとの比較

ついでに redMine とも比較してみた。ただし gihyo.jp の記事を読んだだけ。これによると Trac, Retrospectiva に対する特徴としては

  • 最近のバージョンはパッケージに Rails 同梱でインストール簡単
    • Rails との互換性の問題などは考える必要がない
  • ロールによる権限管理
  • ワークフローが定義可能
  • Issue ごとに進捗率が設定可能
  • svn commit メッセージ連携機能
    • Issue の close を commit だけで完了可能(たぶん Trac なんかでも plugin でできなくはないと思うけど、標準で用意されてるってのが大きいのかな?)
  • Wiki, 文書、ニュース
    • ニュースが blog 的なものだとすると文書は?
    • Wiki は履歴が残る
  • forum もある

個人的な印象だけど、

なんか全体的にグループウェア的で、Tracクローンとは呼べないと思う。

Trac の経験があるなら移行は Retrospectiva の方が楽。redMine の方がどちらかというと開発者よりもマネージャ寄りの機能が充実しているような気がするけど、それは単に Trac も Retrospectiva もそういうことをあまり考えていないだけかもしれない。

まとめ

いずれにせよ Retrospectiva も redMine も Trac のようには plugin も情報も充実していない。Trac のどこに不足を感じ、これらのどこに魅力を感じるのか考えて決めるべし。

余談 - API ってないの?

贅沢を言えば Retrospectiva を API で操作できればなーって感じ。例えば

Mylyn&Tracでリズムに乗ってタスクを大掃除♪ (1/4) - @IT

では Trac に XmlRpcPlugin を追加して Eclipse との連携を実現している。こういうのが Retrospectiva にもあれば、eclipse に限らず外部のツールと連携させやすくなる。ブラウザさえあれば管理できるのがこれらのツールのメリットでもあるけれど、やはり HTML 上の UI には限度があると思う。Mozilla アプリの extension でも AIR でもいいけど、扱いやすい外部ツールを用意しやすくする仕組みは大事だよなーと、Twitter を irc クライアントで利用しながらつくづく思うのであった。

  1. ViewCVS を使っていたときは HTML の table にズラッと出てくる形ではなかったのでそれほど気にならなかった。 

  2. てゆーか svnsync なんてものが 1.4 以降からあったのか。 

  3. はず。 

  4. ちょっと grep 掛けてみただけ。 

More

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Develop Document Jekyll