Trac」カテゴリーアーカイブ

アプリのテスト管理に不可欠となったバグ追跡システムとは

はじめに

みなさんは、トラブルチケットという言葉をお聞きになったことはあるでしょうか。トラブルチケットは、問題発生時に発行される言わば受付票のようなもので、IT業界では障害管理を始めさまざまな用途で使われています。ここでは、アプリケーションのテストに不可欠な存在となったバグ追跡システムについて紹介するとともに、バグ追跡システムのユースケースについて紹介します。

バグ追跡システムとは

バグ追跡システム(BTS:Bug Tracking System)は、アプリケーションのテスト時や利用開始後に発生した障害を管理するシステムです。アプリケーションのリリース前に行われるテストは、アプリケーションの開発などに関わった関係者だけで行われますが、一度リリースしたアプリケーションが、数千から数万人規模で利用される場合、障害だけでなく、その他の問い合わせも利用者の増加とともに増えてくる事が予想されます。これらを人手を使って処理することも可能ですが、障害報告や問い合わせの件数が増えて来ると、人が対応していたのでは、対応や回答までのレスポンスが速くなったり、遅くなったりなど担当者の業務負荷に左右されることになります。しかし、バグ追跡システムを使うことで、利用者から受けたバグ報告や問い合わせ内容をシステムに登録し、受付番号(トラブルチケット)を発行することで、受け付けたチケットの受付日、受付時間、受付内容、完了日、担当者などの対応状況を一元管理できます。このように、バグ追跡システムでは、報告された内容をシステムに登録することで、未対応のチケットや解決に時間が掛かっているチケットなどチケットの状況をさまざまな角度から分析し、障害報告や問い合わせへの対応を通して、アプリケーションの品質改善などに役立てています。以下では、バグ追跡システムのユースケースについて紹介します。

2000-02

代表的なバグ追跡システム

フリーのバグ管理システムには、Tracや影舞のようにPythonやRubyで実装されたシステムの他に、BugzillaのようにPerlで実装されたシステムもあり、さまざまなシステムが公開されています。以下に、代表的なオープンソースソフトウエア(OSS)のバグ追跡システムを簡単に紹介します。

Trac(トラック)

Tracは、スウェーデンのEdgewall Software社が開発するプロジェクト管理システムです。プログラミング言語Pythonで実装されており、プロジェクト管理システムのサブ機能として、バグ管理システムが搭載されています。Wiki(ウィキ)などの情報共有ポータルサイトも構築できるため、プロジェクト関係者間で資料やさまざまな情報を共有できるため、大規模なプロジェクト管理に適しています。Tracは、LAMP(Linix,Apache,MySQL,PostgreSQL)環境だけで無く、殆どのUNIXマシンで動作します。

2000-03

Bugzilla(ばぐじら)

ウエブブラウザFirefoxで有名なMozilla Foundationが開発しているバグ管理システムです。プログラミング言語Perlで実装されており、日本語化も可能です。元々Netscape Communications社のウエブブラウザNetscapeのバグ管理のために作られたシステムのため、安定して利用できるシステムだと言えます。Tracと同様に、殆どのUNIXマシンで動作します。

2000-04

影舞(かげまい)

影舞は、Fukuoka Tomoyuki氏が開発したバグ管理システムです。プログラミング言語Rubyで実装されており、データベースが無くても動作する手軽さとソースコードの少なさが特徴です。2008年3月にリリースされたバージョン0.8.8が最新のバージョンであり、現在は開発を終了していますが、Bugzillaと同様に安定して利用でき、カスタマイズしやすいシステムだと言えます。Tracと同様に、殆どのUNIXマシンで動作します。

2000-05

ユースケース1:ソフトウエアの障害管理

ケース1は、ソフトウエアの障害管理です。バグ追跡システムは、ソフトウエアのバグを追跡するシステムですから、バグ管理に利用されるケースが最も多くなっています。フリーのUNIXであるFreeBSD Projectでは、1994年以降GNATS(GNU BUG TRACKING SYSTEM)というバグ追跡システムを利用しており、FreeBSDのユーザーは、send-prコマンドを利用して、FreeBSDのGNATSシステムに問題報告を送信できるようになっています。また、ウエブインタフェースを利用したバグ報告も利用できるようになっています。

ユースケース2:営業支援システム

ケース2は、営業支援システム(SFA:Sales Force Assist)への適用です。バグ追跡システムでは、報告日、報告者、報告内容、優先度、添付ファイル、プラットフォーム、バージョン、再現性などの項目を使ってバグ管理に必要な情報を登録します。この機能を営業管理システム用にカスタマイズすることで、訪問日、営業担当者、同行者、訪問先、営業内容、案件確度、添付ファイルなどを管理することができます。そのためには、バグ管理システムのカスタマイズが必要となりますが、今回紹介した影舞は、ソースコードの少なさからカスタマイズに適しています。

ユースケース3:QA管理システム

ケース3は、QA管理システムへの適用です。QA管理は、Yahoo知恵袋やOK Waveなどのように掲示板方式で実装されることが多いのですが、バグ管理システムをカスタマイズして利用することで、例えば登録された情報をCSV形式で出力したり、出力する項目もカスタマイズによって追加することができるため、掲示板方式のQ&Aシステムよりも柔軟なシステムを構築できます。

まとめ

ここまで、バグ追跡システムについて紹介するとともに、ユースケースについて紹介しました。オープンソースソフトウエアのバグ管理システムは、さまざまなプログラミング言語で実装されており、カスタマイズが必要になった場合でも、開発しやすい言語のシステムを選定することで、既存のシステムの機能拡張を行うことができます。今回紹介したユースケースをヒントに、新たなユースケースを検討してバグ管理システムを活用してみませんか。

Shibuya.trac第14回勉強会

おおまえです。梅雨真っ只中じめじめして暑いので、片付けていたサーキュレーターを出しました。

さて、開催自体がかなりひさびさなのですが、先週金曜6月14日に Shibuya.trac第14回勉強会が開催されました。これに参加して簡単な発表をしてきました。↓がそのときのスライドです。Trac ベースの Apache Bloodhound と Trac のここ最近のことについてです。

勉強会に参加するのはひさしぶりですが、また何かの機会に参加したいですね。

Tracチケット通知メールをHTMLメールで送るプラグイン

おおまえです。いつのまにか梅雨に入っていてすぐに夏なんだなぁ…陽射しは強いし暑いのは好きじゃないんです。(ぐったり……)

さて、なんか唐突な感じですが、今回は Trac からのチケット通知メールを HTML メールで送れるようにするプラグインを作ったので、それを紹介しようと思います。

Trac からのチケット通知メールは、固定幅フォント前提でカラムが76に入るように折り返しを行ってメールを作成してくるので、カスタムフィールドのラベルが長かったりすると、見辛い感じになってしまいます。

そこで、これを HTML メールとして作成できれば、固定幅フォントや76カラムの制約に拘らず比較的自由にレイアウトできるようになります。

インストール手順

1. easy_install でインストール

easy_install でインストールできます。

C:>easy_install -ZU http://trac-hacks.org/svn/trachtmlnotificationplugin/0.12
Downloading http://trac-hacks.org/svn/trachtmlnotificationplugin/0.12
Doing subversion checkout from http://trac-hacks.org/svn/trachtmlnotificationplugin/0.12 to c:\docume~1\admini~1.ope\locals~1\temp\easy_install-gjfkwq\0.12
Processing 0.12
Running setup.py -q bdist_egg --dist-dir c:\docume~1\admini~1.ope\locals~1\temp\easy_install-gjfkwq\0.12\egg-dist-tmp-mlpzpt
zip_safe flag not set; analyzing archive contents...
trachtmlnotificationplugin 0.12.0.1 is already the active version in easy-install.pth

Installed c:\traclight\python\lib\site-packages\trachtmlnotificationplugin-0.12.0.1-py2.6.egg
Processing dependencies for trachtmlnotificationplugin==0.12.0.1
Finished processing dependencies for trachtmlnotificationplugin==0.12.0.1

2. trac.ini でプラグインを有効にする

有効にしたい Trac プロジェクトの conf/trac.ini か inherit-file で共有している trac.ini でこのプラグインを有効にします。

# trac.ini
[components]
trachtmlnotification.* = enabled

3. SmtpEmailSender の代わりに HtmlNotificationSmtpEmailSender を使うように設定する

この HtmlNotificationSmtpEmailSender が HTML メールを作成します。

# trac.ini
[notification]
email_sender = HtmlNotificationSmtpEmailSender

4. [trac] default_language を ja などにする

HTML 部分を作成する際に、この言語設定を使うので ja などに設定しておきます。

# trac.ini
[trac]
default_language = ja

この後、Trac を動作させている Web サーバを再起動させます。

チケットを作成したりコメントしたりする

チケットを作成するとこのような感じのメールになります。

コメントしたときにはこのような感じ。添付ファイルもリストされます。

このプラグインの仕組み

現状の Trac にはチケット通知時のメール作成を代替させるようなインターフェイスはありません。ですので、実現するには Trac を修正するしかないのですが、このプラグインでは IEmailSender というインターフェイスを使って実現しています。

IEmailSender はメールの送信手段を提供するためのインターフェイスで、SMTP と sendmail コマンドで送信するコンポーネントが Trac 自体に定義されています。このインターフェイスを実装するとメールの送信を行うものなので、メール全体 (message/rfc822) がそのまま取得することができます。

渡ってきたメール全体から X-Trac-Ticket-URL ヘッダを探してチケットの ID とコメント番号を取り出します。そこからチケットを改めて取得し HTML メールになる部分を構築し、代わりにメール送信を行う、という仕組みになっています。

ざっくりした説明ですが、こんな感じです。それでわ。

マイルストーンを利用したチームの進捗管理

 

マイルストーンの有効活用についてエントリーを作成しました。
tracpath のマイルストーンは1つの達成したい目標を指します。プロジェクトでは達成したい目標に向かって、ステップ毎に計画を立てて実行していきます。実行後、検証を行って新たな計画を立てていく。このようなサイクルでプロジェクトを進めていきます。
サイクルの一区切りとなるマイルストーンをうまく利用することで、あなたのチーム内においてプロジェクトを整理することができます。

tracpath は弊社が開発に関わっているオープンソースの Trac をエンタープライズ向けに提供しているクラウドサービスです。

Trac / tracpath を使ったマイルストーンの使い方を見てみましょう。

マイルストーンの利用例

EC-Cube

EC-Cube オープンソースのECサイト構築システムの開発で利用
http://svn.ec-cube.net/open_trac/roadmap

WordPress

WordPress オープンソースのブログ管理システムの開発で利用
http://core.trac.wordpress.org/roadmap

tracpath

Git/Mercurial/Subversion クラウド型プロジェクト管理サービス
http://tracpath.com/

マイルストーンの使い方

ご紹介したオープンソースプロジェクトは、マイルストーンを「次回リリース」「次々回リリース」「未計画」に分類して管理しています。

次回リリース/次々回リリース

  • 次回計画している予定
  • 計画と方針
  • 機能(チケット)
  • 完了・未完了のチケット

が分かるようになっています。

開発チーム内で情報共有し、自分たちが進むべき道を示しているマイルストーンを有効に活用することで得られるメリットはとても大きいです。マイルストーンに紐つけられたチケットによりタスクや課題の状況、マイルストーンの全体進捗率、残っている課題が一目で分かります。複数チームの場合、チーム毎にマイルストーンを設定することもできます。
tracpath はあなたのチームに合わせた柔軟な運用スタイルにあわせて利用できるように、使い方に特別な制約がありません。チームの開発方針や確立したスタイルを変えなくてもすぐに活用できるように設計されています。
 

 

Trac プラグイン:TicketCalendarPlugin の説明と使い方

 

Trac プラグイン:TicketCalendarPlugin の使い方を説明します。

このプラグインは自分が担当しているチケットを「いつまでに、何を、どのくらい」対応しなければいけないかをビジュアル的に知りたいと思い、開発したプラグインです。
インストール方法はこちらのエントリーTrac プラグイン:TicketCalendarPlugin – チケットを月間カレンダーに表示するプラグイン(インストール編)を先にご覧下さい。

TicketCalendarPlugin の概要

 

TicketCalendarPlugin の特長

 

  • 期限付きのチケットを月間カレンダー上で俯瞰
  • リスト表示機能で直近の作業を確認
  • チケットクエリ条件をつかって自分たちに必要なチケットのみ表示
  • マイルストーンとチケットを1つの画面で見る
  • マクロ機能で Trac Wiki に貼り付け可能
  • 見た目が綺麗

 

TicketCalendarPlugin の機能

 

  • 期限のあるチケットをBOXカレンダー表示
  • 期限のあるチケットをリスト表示
  • マイルストーンをカレンダーに表示
  • チケットIDからチケット詳細画面に移動
  • 日付(開始日)を指定して新規チケット作成
  • チケットのフィルタ機能、カスタムクエリのフィルタがそのまま使える
  • チケットのソート機能が使える
  • マクロで Wiki や マイルストーンに貼り付け
  • カレンダーとリストに表示するチケット分類アイコンを指定可能
  • カレンダーとリストに表示するチケット重要度カラーを指定可能
  • カレンダーとリストに表示するマイルストーンのアイコン・カラーを指定可能
  • BOXカレンダーの週の始まる日を指定可能
  • カスタムフィールドの開始日、終了日をユーザーが定義可能

TicketCalendarPlugin のインストールと設定内容についてはTrac プラグイン:TicketCalendarPlugin – チケットを月間カレンダーに表示するプラグインをご覧下さい。

 

1. スクリーンショット

 
TicketCalendarPlugin のスクリーンショットをご覧下さい。見たままの簡単操作であなたのチケットを教えてくれます。

TicketCalendarPlugin:月間カレンダー表示 TicketCalendarPlugin:リスト表示 TiketCalendarPlugin:1日のチケット一覧を表示

 

2. 使い方

 

月間カレンダーを見る

月間カレンダーを見る 月表示のBOXカレンダーを表示します。グローバルメニューから「チケットカレンダー」をクリックして表示されます。

カレンダーのチケットを見る

カレンダーのチケットを見る カレンダーに表示されるチケットをクリックすると、チケットの詳細を吹き出しで表示します。チケットIDのリンクをクリックするとチケット詳細画面に遷移します。

カレンダーから新しいチケットを作成する

カレンダーから新しいチケットを作成する 月間カレンダーの日付セルをクリックすると吹き出しが表示されます。開始日を指定してチケットを作成、または期日を指定してチケットを作成することができます。

リストでチケットを見る

リストでチケットを見る 右上にある「リスト表示」をクリックするとチケットを今日の日付から1週間分リスト表示します。「先週のチケットを見る」「翌週のチケットを見る」をクリックすると先週・翌週のチケットリストを見ることができます。

 

3. 活用方法

 
どこかで見たり聞いたことある普通のカレンダー表示するだけのシンプルなプラグインですが当社での活用方法をお話しします。

チームの進捗管理に利用

 
チームの進捗会議を行うときに、Wikiに報告書を書くようにしています。(書いた報告書をみんなで共有)
進捗報告で利用する報告書にチケットカレンダーを貼り付けておくと、チーム毎、担当者毎の作業の混み具合や予定が「パッ」と俯瞰できます。

全体を一発で知るにはとてもよい機能だと思っています。

印刷してお客様向け報告に利用

 
カレンダー表示とリスト表示のどちらにも「マクロ」を出力する機能があります。
このマクロを Wiki に貼り付けます。
あとは、作業内容の報告・問題点などを記述すれば、あっという間に報告書のできあがりです。(実際のお客様に提出する場合はこれだけではダメですが。)

社内報告、協力会社への報告・共有、チームの情報共有などなど、サクッと資料を作ってしまいましょう。

ぜひ、TicketCalendarPlugin をお試し下さい。
皆様のご意見を聞かせて頂ければ今後の開発にいかしていきます。
ブログのコメントかお問い合せフォームよりお声をお待ちしております。
 

Trac プラグイン:TicketCalendarPlugin – チケットを月間カレンダーに表示するプラグイン(インストール編)

 

こんにちは、新しい Trac プラグインをリリースいたしました。
チケットに「開始日」「終了日」を設定すると Google Calendar の月間表示のように機能する TicketCalendarPlugin を開発いたしました。

このプラグインは自分が担当しているチケットを「いつまでに、何を、どのくらい」対応しなければいけないかをビジュアル的に知りたいと思い、開発したプラグインです。

動作しているスクリーンショット(イメージ図)は以下です。

このエントリーではインストールと初期設定について見ていきます。

1. easy_install でインストール

easy_install に http://trac-hacks.org/wiki/TicketCalendarPlugin/0.12 を渡せばさくっとインストールできます。
svn コマンドがない環境では、これではインストールできないと思います。その場合、Trac-hacksから手動でダウンロードを行い、ダウンロードしたディレクトリを easy_install に渡すようにしてください。

C:>easy_install -Z http://trac-hacks.org/svn/TicketCalendarPlugin/0.12
Downloading http://trac-hacks.org/svn/TicketCalendarPlugin/0.12
Doing subversion checkout from http://trac-hacks.org/svn/TicketCalendarPlugin/0.12 to c:\docume~1\admini~1.ope\locals~1\temp\easy_install-x_lmas\0.12
Processing 0.12
Running setup.py -q bdist_egg --dist-dir c:\docume~1\admini~1.ope\locals~1\temp\easy_install-x_lmas\0.12\egg-dist-tmp-ubt6k_
zip_safe flag not set; analyzing archive contents...
TicketCalendarPlugin 0.12.0.1 is already the active version in easy-install.pth

Installed c:\traclight\python\lib\site-packages\TicketCalendarPlugin-0.12.0.1-py2.6.egg
Processing dependencies for TicketCalendarPlugin==0.12.0.1
Finished processing dependencies for TicketCalendarPlugin==0.12.0.1

2. trac.ini でプラグインを有効にする

有効にしたい Trac プロジェクトの conf/trac.ini でこのプラグインを有効にします。(inherit-file で共有している trac.ini でも可能)

# trac.ini
[components]
ticketcalendar.web_ui.* = enabled
[ticketcalendar]
first_week_day = 6
milestone.color = #C2C2C2
milestone.icon = ui-icon-flag
ticket.due_date = due_date
ticket.due_date.format = %Y/%m/%d
ticket.start_date = start_date
ticket.start_date.format = %Y/%m/%d

この後、Trac を動作させている Web サーバを再起動させます。
チケットカレンダーを利用するためにチケットにカスタムフィールドに2項目追加する必要があります。
チケットカレンダーで利用するカスタムフィールドは trac.ini で定義します。

例示した設定の場合

  • start_date ・・・作業開始日
  • due_date ・・・作業終了日

を設定しています。利用する前にカスタムフィールドを追加してください。
これでインストール作業は終了です。

利用方法の説明についてはこちらのエントリー「Trac プラグイン:TicketCalendarPlugin の使用方法」を参照してください。

3. 設定の説明とカスタマイズ

チケットカレンダーは trac.ini で色やアイコンを利用者の好みにカスタマイズすることができます。
TicketCalendarPlugin の設定項目の説明と利用方法についてまとめています。

TicketCalendarPlugin 設定一覧
解説 設定例
first_week_day 週の始まる日を 0:月曜 から 6:日曜 の間で設定します。デフォルト値は 6 です。
first_week_day = 6
milestone.color マイルストーンのカラーを指定します。
milestone.color = #C2C2C2
milestone.icon マイルストーンのアイコンを指定します。アイコンの種類はjQuery-UIアイコン一覧が利用可能です。
milestone.icon = ui-icon-flag
ticket.due_date チケットカレンダーに表示するために必須項目です。チケットの終了日のカスタムフィールドを指定します。
ticket.due_date = due_date
ticket.due_date.format 終了日として利用するカスタムフィールドの日付フォーマットを指定します。
ticket.due_date.format = %Y/%m/%d
ticket.start_date チケットカレンダーに表示するために必須項目です。チケットの開始日のカスタムフィールドを指定します。
ticket.start_date = start_date
ticket.priority.color チケット優先度の背景色を CSS カラーで設定します。trac.ini に設定しない場合、デフォルトが利用されます。
設定例:
ticket.priority.color = #faa, #ffa, ...
または
ticket.priority.color = blocker:#faa, critical:#ffa, ...

デフォルト:
ticket.priority.color = #fa6653, #ffad46, #7bd148, #4986e7, #cca6ac
ticket.type.icon チケット分類のアイコンを設定します。アイコンの種類はjQuery-UIアイコン一覧が利用可能です。trac.ini に設定しない場合、デフォルトが利用されます。
設定例
ticket.type.icon = ui-icon-contact, ui-icon-lightbulb, ...
または
ticket.type.icon = task:ui-icon-contact, defect:ui-icon-lightbulb, ...

デフォルト:
ticket.type.icon = ui-icon-contact, ui-icon-lightbulb, ui-icon-check, ui-icon-gear, ui-icon-comment

Tracマクロによる仕事に使える厳選マクロと使い方

サイクロンは Trac Wiki による文書作成機能があります。Trac や TracLightning で利用可能な Trac マクロもそのまま利用する事が可能です。
プロジェクトチームの情報共有のために Wiki を活用されているチームもそうでないチームも、Trac マクロを利用する事でプロジェクト運営がぐっと楽になります。
ここでは、仕事に使える厳選マクロとしてご紹介したいと思います。

  1. 目次の作成・・・PageOutline マクロ。見出しから目次を自動生成するマクロ
  2. 最近の変更一覧・・・RecentChanges マクロ。最近更新された Wiki ページを一覧表示するマクロ
  3. チケット一覧・・・TicketQuery マクロ。チケット一覧を様々な条件で一覧表示するマクロ
  4. Wikiページ一覧・・・TitleIndex マクロ。Wikiページを様々な条件で一覧表示するマクロ
  5. プロジェクト内リンク・・・マイルストーンやリポジトリ、チケット、チェンジセットへの簡単リンク

1. 見出しから目次を生成するマクロ(PageOutline)

TracWikiは文書を作成する上で必要最小限の機能を備えています。ワープロソフトをつかって文書を作成するよりもずっと早く文書を作成することができます。「PageOutline」マクロは作成した文書構造から自動で目次を作成するマクロです。

実際の文書をみたほうが理解しやすいと思います。

[[PageOutline()]]
= ciklone スタートアップガイド =
== 1. はじめに ==
=== 1.1 導入 ===
ciklone(サイクロン) ソフトウェアエンジニアのための、Webベースバグ管理システムです。 本資料では、チーム開発、バグ管理、バージョン管理をキーワードとして、ciklone(サイクロン)をあなたのプロジェクトでうまく導入するための説明をしています。

これまでの経験で、バグ管理、バージョン管理を使ったことがある方もそうでない方も、これからのソフトウェア開発に役立つと考えられる内容にまとめております。
…
=== 1.2 バグ管理の必要性 ===
組込みシステムエンジニアやWebアプリケーションエンジニア、多くのソフトウェア開発に携わる開発者達。 製品開発やシステム開発の現場で「バグ管理」はどのように行っているでしょうか。

ページの目次が自動生成されます。目次はページ内リンクになっているのでクリックすると目的の見出しまでジャンプできます。
Wikiの目次を生成するためには文書に以下のマクロを記述するだけです。

 [[PageOutline()]]

さらに詳しい使い方は、「Wikiマクロを活用する」をご覧ください。

2. 最近更新された Wiki ページを一覧表示するマクロ(RecentChanges)

プロジェクトチームで情報共有する場合やチームのポータルサイトとして Wiki を活用している場合、最近更新された Wiki ページの一覧を表示しておくとよいでしょう。タイムラインと異なり、Wiki だけのページを条件付きで表示することができます。

使い方

 [RecentChanges(tc,5)]]

RecentChanges に引数があります。最初の引数は、「tc」という Wiki の階層ページの下にあるWikiを表示することを意味しています。すべての Wiki ページを指定する場合、最初の引数は何も書きません。

 [RecentChanges(,5)]]

2つめの引数は、最近更新されたページの数です。「5」は過去更新されたページを5個リンクにする、ということを指定しています。タイムラインのように過去の時間に関係なく、最近更新されたページ数を一覧表します。

3. 様々な条件でチケットをレポートするマクロ(TicketQuery)

Trac にはチケットを表示する強力なレポート機能があります。そのレポート機能を Wiki マクロで実現することができます。
使い方によっては、

  • 毎日の作業日報や週報をマクロで簡単に生成
  • 議事録の課題リストやタスクリストを自動生成
  • 自分の作業メモや「やることリスト」パーソナルページ
  • チームの作業一覧ページ

など、使い方によって毎日の開発作業を効率的にしてくれます。

基本的な使い方「新規開発プロジェクトの自分の担当チケットを一覧表示する」

基本形式:[[TicketQuery(条件式,表示形式,ソート条件)]]

[[TicketQuery(status!=closed&owner=$USER,table,order=serverity)]]

サンプル条件の説明

  • 条件式(第1引数)…チケット属性の英字名を指定します。「=」(同じ)、「!=」(同じではない)が指定可能です。複数の条件は「&」で連結可能です。
  • 表示形式…チケット一覧の表示形式を指定します。表示形式は4種類(list,compact,count,table)があります。
  • ソート条件…一覧表示されたチケットのソート条件を指定します。「order=」のあとにチケット属性の英字名を指定します。(id,version,status,serverity) サンプルでは優先度でソートしています。

TicketQuery の条件式はクエリ言語といわれる高機能なマクロが利用可能です。上で示した例はよく使う簡単な例ですが
さらに詳しい解説はサイクロンのマニュアルをご確認ください。(https://[あなたのサブドメイン].ciklone.com/-/wiki/TracQuery)

4. 様々な条件で Wiki ページを表示するマクロ(TitleIndex)

単純に Wiki ページの一覧表を作成することができます。特定のカテゴリの Wiki や関連する文書の Wiki ページを埋め込むことができます。
使い方は

 - コンパクトに表示
  [[TitleIndex(tc/Meeting/,format=compact)]]
 - 標準
  [[TitleIndex(tc/Meeting/)]]

5. マイルストーンやチケットにアクセスするためのリンク機能

サイクロンのプロジェクト管理機能で利用している各機能は簡単にリンクを作成することができます。TracLinksと呼ばれるリンク機能は、

  • ソースコードのコミットメッセージ
  • Wikiページ
  • チケット、レポート、マイルストーンでの説明記述箇所

で利用することが可能です。また、プロジェクト内のテキストフィールド内でも利用できます。

Wiki ページ
CamelCase, wiki:CamelCase
親ページ
[..]
チケット
#1, ticket:1
チケットのコメント
comment:1:ticket:2
レポート
{1}, report:1
チェンジセット
r1, [1], changeset:1, (特定パス配下) [1/trunk], changeset:1/trunk
リビジョンログ
r1:3, [1:3], log:@1:3, log:trunk@1:3, [2:5/trunk]
diff
diff:@1:3, diff:tags/trac-0.9.2/wiki-default//tags/trac-0.9.3/wiki-default または diff:trunk/trac@3538//sandbox/vc-refactoring@3539
マイルストーン
milestone:1.0
添付ファイル
attachment:example.tgz (現在のページへの添付ファイル), attachment:attachment.1073.diff:ticket:944 (他のリソースへの添付ファイル)
リポジトリのファイル
source:trunk/COPYING
特定リビジョンのリポジトリのファイル
source:/trunk/COPYING@200
リポジトリのファイルの特定行
source:/trunk/COPYING@200#L25

さらに詳しい解説はサイクロン内のマニュアルを参照してください。(https://[あなたのURL].ciklone.com/-/wiki/TracLinks)
このように少しの学習でとても便利な機能が利用可能です。
ぜひ、ご活用ください。

Trac / TracLightning のデータを ciklone に移行する機能のご紹介


サイクロンに新しい機能が追加されました。
TracTracLightning で運用していたデータをサイクロンに簡単に移行することができます。
クラウドサービス「サイクロン」をぜひお試しください。
この機能は、

  • 社内サーバで運用していたTracやTracLightningのプロジェクトをサイクロンのプロジェクトとして移行できます(Tracデータ移行機能)
  • Trac のバージョンは、0.10.x 〜以降に対応しています。
    • Trac 1.0.x / 0.12.x / 0.11.x / 0.10.x
    • TracLightning は Trac バージョンが対応していればインポートすることが可能です。
  • Wiki,マイルストーン,コンポーネント,カスタムフィールド,優先度,解決方法,重要度,分類,バージョンが移行されます。
  • 移行エラーが発生した場合、エラー内容を詳細に表示しますので原因特定に役立ちます。

Trac をご利用の方はぜひお試しください。サイクロンはセキュアでエンタープライズ向けのホスティングサービスを提供しています。
ユーザの管理やデータバックアップ、新規プロジェクトの作成など、社内サーバで対応が必要だった管理業務から解放されます。サイクロンに移行した後、Trac に環境を戻したい場合もサポートしています。(ユーザデータのバックアップ機能をご確認ください。)

Trac/Traclightning のデータを移行する方法

それでは、実際にデータ移行する方法を解説します。
まずは利用環境の移行プロジェクトフォルダに移動し、zip アーカイブを作成する必要があります。

1. Trac 環境の確認

Trac プロジェクトのアーカイブファイルをアップロードするための準備を行います。
SQLiteデータベースを使用している場合は、プロジェクトフォルダを zip コマンドや tar コマンドで直接アーカイブし、そのファイルをアップロードします。Windowsをご利用の場合、「2. Windows環境の場合」を参照してください。

$ zip -r FILE.zip /PATH/TO/TRACENV

SQLite 以外のデータベースを使用している場合は、TracMigratePluginを使って SQLite データベースに変換してください。

$ easy_install -ZU http://trac-hacks.org/svn/tracmigrateplugin/0.12
$ trac-admin /PATH/TO/TRACENV config set components "tracmigrate.*" enabled
$ trac-admin /PATH/TO/TRACENV migrate /tmp/tracenv-export sqlite:db/trac.db
$ zip -r FILE.zip /tmp/tracenv-export

2. Windows環境の場合(Trac/TracLightning)

Windows 環境の場合、エクスプローラーからプロジェクトフォルダを「zip」ファイルに圧縮します。(例:
TracLightning)

2-1. Windows エクスプローラーからプロジェクトフォルダに移動

C:\TracLight\projects\trac

2-2. 移行対象のプロジェクトを右クリック、zip 圧縮します

2-3. 移行準備は完了です。

作成した zip アーカイブファイルを準備できました。

3. Linux環境の場合

Linux 環境の場合、コンソールから Trac プロジェクトフォルダに移動します。

cd /var/www/trac

または

cd /var/share/trac/projects/

などのTracをインストールしたフォルダに移動。
次に、Trac の移行対象プロジェクトを zip コマンドや tar コマンドで直接アーカイブします。(Linux(CentOS 5.4)にTracをインストールする)

$ zip -r FILE.zip /PATH/TO/TRACENV

4. 次に移行先:ciklone プロジェクトを作成します

プロジェクト管理権限を持つユーザでログイン後、グローバルメニュー「プロジェクト」をクリックして「プロジェクト作成」を押下します。

「ファイルからインポートする」を選択し、アーカイブしたTracデータをアップロードします。
最後に、「作成」をクリックするとサイクロンのプロジェクトを作成しあなたのTracデータを移行します。

エラーが発生した場合、画面上に詳細なエラー情報が表示されますのでご確認ください。

5. 移行されたプロジェクトを確認します。

移行後のプロジェクトをブラウザで閲覧します。
画像は、TracLightningのサンプルプロジェクトを移行した例です。

5. さいごに

Trac のデータ移行機能は多くの場合正常に動作することを確認していますが、利用している環境・プラグインなどにより正常に移行できない場合があるかもしれません。その場合、問題点の報告をお願いします。お客様のフィードバックによりさらによいサービスにしていきます。

Trac 1.0 リリースノート (日本語訳)

時間がたってしまいましたが、2012-09-10 に Trac 1.0 がリリースされました。またしても2年ぶりのリリースです。ダウンロードは http://trac.edgewall.org/wiki/TracDownload からできます。

ここにリリースノートの日本語訳とサマリを載せておきます。

ちなみに、次回リリース 1.0.1, 1.1.1 ともにスケジュールは 2012-12-09 (3ヶ月後) になっています。

リリースノートのサマリ

  • Wiki
    • #7124 TitleIndex マクロに exclude と include 引数を追加。
    • #9220 Wiki ページの削除時にページの情報 (履歴の数や最終更新など) を表示するように。
    • #10120 RecentChanges マクロに単純なリストを表示する group=none を追加。(デフォルトは group=date で 1.0 以前の挙動で日付でグループ化される)
    • #10592 インラインコードのスタイルに灰色の背景色を付けるように。
  • 添付
    • #7078 Wiki やチケットにある添付ファイルを zip 形式で一度にダウンロードできるように。
    • #10313 長いファイル名を持つ添付ファイルでも保存できるように、ファイル名を SHA-1 ハッシュ化して保存。(trac-admin upgrade が必要)
    • #10743 添付ファイル数を見出しに表示するように。「添付ファイル (3)」のような形式。
  • チケット
    • #525 チケットの一括更新機能を追加 (batchmodifyplugin より)
    • #7145 チケット更新が衝突したときの処理を改善。追加されたコメントや衝突内容がインタラクティブに表示されるようになる。
    • #7934 チケットコメントを新しいコメントまたは古いコメントから表示できるように。またコメントのみを表示できるように。
    • #9354 ticket clone を tracopt コンポーネントとして追加。
    • #9989 チケットコメントをスレッド表示できるように。
    • #10270 チケットのワークフローを [[Workflow()]] マクロで視覚化して表示できるように。
  • 日時
    • #9581 管理の基本設定ページでデフォルトのタイムゾーンと言語を設定できるように。
    • #9777 個人設定で日時表示を相対表示または絶対表示の選択をできるように。[trac] default_dateinfo_format でデフォルトを設定。pretty_dateinfo 関数で変換。
    • #10245 jQuery UI を同梱。マイルストーンの期日や完了日を date/time picker で選択できるように。
    • #10756 管理ページとタイムラインの日付入力で date picker を使えるように。
  • i18n/l10n
    • #2182 日時の入力書式・表示書式の i18n 対応。
    • #9666 trac.ini オプションの説明を翻訳できるように。(tracini.po カタログに分離)
    • #10038 言語設定に応じて翻訳されたマクロの説明を表示するように。
  • バージョン管理
    • #1492 更新履歴 (revisionlog) ページにリビジョングラフが表示されるように。
    • #9824 ソースブラウザに比較を行うリビジョンを入力できる項目を追加。
    • #10594 Git をビルトインでサポート。
    • #10712 Subversion 用のコードを tracopt に移動。(trac.ini での設定変更は trac-admin upgrade で行われる)
  • 管理
    • #8954 trac-admin hotcopy コマンドで SQLite 以外でもデータベースのエクスポートを行うように。
    • #9366 管理にある権限ページで、権限とグループを個々にテーブルを用意して表示するように。(元は一つのテーブルで一緒に表示していた)

Trac 1.0 リリースノート全項目

  • admin/console
    • #8954 trac-admin hotcopy コマンドで SQLite 以外でもデータベースのエクスポートを行うように。
    • #9336 trac-admin に permission export と permission import コマンドが追加。権限設定のエクスポートとインポートができるように。
  • admin/web
    • #540 認証済みの場合には個々の RSS への URL は /login?referer=${url} を使うように。
    • #8866 管理ページにある追加用のフォームを float:right で配置するのをやめてブロックで配置するようになった
    • #9366 管理にある権限ページで、権限とグループを個々にテーブルを用意して表示するように。(元は一つのテーブルで一緒に表示していた)
    • #10752 管理にある権限ページで、利用できなくなっている権限を灰色で表示。
  • attachment
    • #7078 Wiki やチケットにある添付ファイルを zip 形式で一度にダウンロードできるように。
    • #7894 添付ファイルを X-Sendfile ヘッダでファイルシステムから直接送信できるように。
    • #10313 長いファイル名を持つ添付ファイルでも保存できるように、ファイル名を SHA-1 ハッシュ化して保存するように。(trac-admin upgrade が必要)
    • #10353 validate_attachment でのエラーメッセージの表示を改善。
    • #10743 添付ファイル数を見出しに表示するように。「添付ファイル (3)」のような形式。
  • database backend
    • #5120 mysql のときにのデータベース文字列に追加でパラメータを渡せるように。
    • #6348 データベース系の例外をデータベースに応じた例外クラスで補足できるように。
    • #9842 IDatabaseConnector.init_db() で schema 引数に初期スキーマを指定できるように。
    • #9949 MySQL への接続に TLS/SSL を使えるように。
    • #10451 trac-admin upgrade 処理でコンポーネントごとにデータベース接続を用意することでロバストになるように。
  • general
    • #2375 権限がないときのエラーメッセージを改善
    • #8036 既存のメタ権限を拡張できるように。
    • #8695 make apidoc で API ドキュメントを作成できるように。
    • #9351 TracIni ページでデフォルト値を表示するように。
    • #9418 コンポーネントの初期化方法を変更し、初期化途中のインスタンスが見えないように。
    • #9453 セッションに変更があれば、レスポンスの送信時には必ずセッションを保存するように。(send_error は除く)
    • #9462 [inherit] htdocs_dir で共有する htdocs ディレクトリを指定できるように。
    • #9536 Python 2.4 互換コードを削除。
    • #9581 管理の基本設定ページでデフォルトのタイムゾーンと言語を設定できるように。
    • #9777 個人設定で日時表示を相対表示または絶対表示の選択をできるように。[trac] default_dateinfo_format でデフォルトを設定。pretty_dateinfo 関数で変換。
    • #9836 TracIni ページでセクションの説明を表示できるように。説明は ConfigSection で定義。
    • #9870 @cached プロパティの挙動とドキュメントを改善。
    • #10165 jQuery 1.7.2 に変更。
    • #10244 jQuery を CDN からロードできるように。
    • #10245 jQuery UI を同梱。マイルストーンの期日や完了日を date/time picker で選択できるように。
    • #10284 URL のハッシュ部分を #/word (または #?word) にすると word の部分の文字列でページ内を検索するように。
    • #10435 cgi-bin ディレクトリを contrib/cgi-bin ディレクトリに移動。
    • #10453 セッションクッキーに HttpOnly を指定できるように。
    • #10644 iso8601 形式の時刻にミリ秒以下を指定できるように。
    • #10683 AuthzPolicy で Unicode 文字を使えるように。
    • #10756 管理ページとタイムラインの日付入力で date picker を使えるように。
    • #10762 jQuery UI 1.8.21 に。
    • #10771 to_json() でシングルクォートを正しく処理するように。
  • i18n
    • #9354 ticket clone を tracopt コンポーネントとして追加。
    • #9666 trac.ini オプションの説明を翻訳できるように。(tracini.po カタログに分離)
    • #10038 言語設定に応じて翻訳されたマクロの説明を表示するように。
    • #10505 日付パースをロバストに。
    • #10717 babel.js にある API を改善。gettext, _, ngettext から直接書式化パラメータを渡せるように。
    • #10749 babel.js で domain を正しく扱えるように。
  • notification
    • #8356 Email address in user preferences is not honored when user name contains an “@”)”]個人設定の氏名に @ 文字を含んでいてもメールアドレスの値を使うように。
    • #8360 メール通知の From ヘッダに更新者の名前を使う設定ができるように。
  • plugin/git
    • #10594 Git をビルトインでサポート。
    • #10607 git サブプロセスを適切に終了するように。
    • #10676 git コミット中にある mergetag フィールドをサポート。
    • #10688 git サブプロセスとの通信をロバストに行うように。
    • #10819 正しくない git パスをを指定した場合にエラーを適切に報告するように。
  • query system
    • #10533 コードブロック中のテキストが印刷時に切り抜かれないように。
  • roadmap
    • #2182 日時の入力書式・表示書式の i18n 対応。
    • #9820 マイルストーンページで「前の~」「ロードマップに戻る」「次の~」のリンクをつけるように。
  • ticket system
    • #525 チケットの一括更新機能を追加 (batchmodifyplugin より)
    • #7145 チケット更新が衝突したときの処理を改善。追加されたコメントや衝突内容がインタラクティブに表示されるようになる。
    • #7197 チケットのプレビューにチケットの番号、ステータス、種別が入るように。
    • #7934 チケットコメントを新しいコメントまたは古いコメントから表示できるように。またコメントのみを表示できるように。
    • #9989 チケットコメントをスレッド表示できるように。
    • #10270 チケットのワークフローを [[Workflow()]] マクロで視覚化して表示できるように。
    • #10398 チケットの新規作成時には、最初の変更を行ってからプレビューを実行するように。
    • #10643 カスタムフィールドでテキストの場合に、reference と list のフォーマットをサポート。チケットページでフィールド値に対して自動的にクエリリンクを作るときにこのフォーマットの値が利用される。
    • #10821 チケットタイトルにあるステータス、種別、解決方法の項目に対して自動的にクエリリンクを作るように。
  • timeline
    • #10652 タイムラインで折りたたんでいるチェンジセットが重複した変更ファイル名を表示しないように。
    • #10713 長いチケットのIDリストが折り返されるように。(チケットの一括更新時のイベントなど)
  • version control
    • #1492 更新履歴 (revisionlog) ページにリビジョングラフが表示されるように。
    • #9607 タイムラインでチェンジセットに対するタグ(ブランチ)を表示するように。
    • #10712 Subversion 用のコードを tracopt に移動。(trac.ini での設定変更は trac-admin upgrade で行われる)
  • version control/browser
    • #7228 リポジトリブラウザでファイルやフォルダにダウンロードリンクが付くように。
    • #9824 ソースブラウザに比較を行うリビジョンを入力できる項目を追加。
  • version control/log view
    • #9869 更新履歴 (wiki:TracRevisionLog) とリポジトリブラウザ (wiki:TracBrowser) で現在のブランチ名を表示するように。
  • web frontend
    • #10012 デフォルトテーマを CSS3 で更新。
  • web frontend/tracd
    • #7958 tracd に実行ユーザ/グループを指定するオプションを追加。
    • #9371 tracd の Basic 認証に SHA1 パスワードのサポートを追加。
    • #9599 tracd が socket をリッスンに失敗した時のエラーを報告するように。
  • wiki system
    • #7124 TitleIndex マクロに exclude と include 引数を追加。
    • #9220 “are you sure you want to delete this page?” question needs more details)”] Wiki ページの削除時にページの情報 (履歴の数や最終更新など) を表示するように。
    • #9406 Wiki プロセッサー #!rtl を追加。RTL テキストブロックになる。
    • #9619 並べて編集機能をエディタ側ないしプレビュー側をスクロールできるように改善。
    • #9986 PageOutline マクロに箇条書きではなくリストを出力できるように。(inline スタイルの場合)
    • #10099 Wiki ページで以前のバージョンのものに簡単に戻せるようなボタンを追加。
    • #10120 RecentChanges マクロに単純なリストを表示する group=none を追加。(デフォルトは group=date で 1.0 以前の挙動で日付でグループ化される)
    • #10592 インラインコードのスタイルに灰色の背景色を付けるように。
    • #10668 Image マクロに ZWSP (U+200B) 文字に対してロバストになるように。(Trac のページからコピーしたときに入る)

fulmo 1.0 リリースと機能紹介

 

こんにちは。今回はオープングルーヴが開発したオープンソースのブラウザアプリケーション「fulmo(フルモ)」が大幅にバージョンアップしましたので紹介します。

fulmo はブラウザ専用のスクリーンキャプチャーとBTSへのバグレポート機能をもっています。これまでの機能は

  • Webアプリケーションのスクリーンショットを作成し、BTS(バグ管理)に登録
  • BTS(バグ管理)に新規チケット登録
  • 複数のサイトを管理、いつでも切替
  • Trac, Trac Lightning, ciklone に対応
  • 右クリックメニューやツールバーのアイコンからすばやくチケット登録
  • 対応ブラウザ: Google Chrome 12 以降、Firefox 3.6 以降 (IE、Safari、Opera には対応しておりません)

でした。今回、fulmo 1.0 に追加された機能は利用者から要望の多かった

  • Redmine 1.4/2.0 対応
  • 画像の編集機能
    • 図形描画(丸、四角など)
    • テキスト、ぼかし、直線、自由線
    • 保存、ライブラリ・スタンプ機能
    • ドラッグ & ドロップによる添付 (TracDragDrop プラグイン導入サイトのみ) や保存 (Chrome のみ)
    • などの基本的な画像編集機能が備わっています。
  • ドラッグ&ドロップでファイルを保存とチケット添付

スクリーンショット

   
開発の現場で必要な機能が追加され、これまで以上に使いやすく開発を強力にサポートします。

ダウンロードはこちらをご覧ください。

 

インストールについて(環境別)

fulmoを利用するためにはご利用の環境に合わせたfulmoプラグインをインストールしてください。

ciklone以外のBTSである、Trac / Redmine で利用する場合はサーバにプラグインをインストールする必要があります。fulmoはWindows / Mac OSXのどちらでも利用する事ができます。

ciklone(サイクロン)で利用する場合

cikloneでfulmoを利用するためには、ブラウザアドオン(拡張)をインストールするだけで利用することができます。

Trac/Traclightningで利用する場合

Tracでfulmoを利用するためには、サーバ側にTracのXML-RPCプラグインをインストールする必要があります。

ご利用環境に合わせてTracにプラグインをインストールしてください。Trac LightningはXML-RPCプラグインがインストール済みのため、導入済みのプラグインが「有効」になっていることを確認してください。

確認方法は、管理アカウントでTrac Lightningにログインして、「管理」-> 「プラグイン」 -> 「tracxmlrpc1.1.2-r9970」が有効になっていることを確認します。

Redmineで利用する場合

Redmineでfulmoを利用するためには、サーバ側にRedmineの「redmine_fulmo_helper」プラグインをインストールする必要があります。このプラグインは当社がオープンソースにて開発・提供しています。

redmine_fulmo_helperの詳細な情報やソースコードはgithubをご覧ください。

fulmoのオンラインドキュメントはこちらをご覧ください。

Redmineプラグインやfulmoについてのお問い合わせはこちらからお問い合わせください。

皆様のご意見によりさらに使いやすく改良していきます。