Contents
ワークフロー管理プラグイン:TracWorkflowAdminPlugin
TracWorkflowAdmin はチケットのワークフロー管理のために、シンプルなWebインターフェースを提供し、ワークフローを簡単に追加・編集することができます。 Trac をつかったチケット運用を始めて軌道にのってきたらワークフローをカスタマイズ、自分たちのプロジェクトに併せて活用しましょう。
機能
- アクションや表示名をインラインで追加・編集できるWeb-UI
- リアルタイムでワークフローダイアグラム表示(プレビュー機能)
- 設定間違いをメッセージで通知
trac-hacks
http://trac-hacks.org/wiki/TracWorkflowAdminPlugin
ダウンロード
Zipファイルをダウンロードします。
スクリーンショット
インストール
- easy_install を使います。
$ easy_install http://trac-hacks.org/svn/tracworkflowadminplugin/0.12
Python 2.4の場合、[simplejson http://pypi.python.org/pypi/simplejson]が必要です。
$ easy_install simplejson
- プラグインを有効にします。
# conf/trac.ini [components] tracworkflowadmin.* = enabled
Windows/Trac(TracLightning)編:インストール
前準備として、Tracが正常に動作する環境とpythonへのパスが通っていること。python は TracLightning と同時にインストールされます。パスの設定なども導入時に出来ていると思います。
{Tracホーム}\python\Scripts
手順
- スタート-[Trac]-[コマンドプロンプト]を実行。
- プラグインのインストール
$ easy_install http://trac-hacks.org/svn/tracworkflowadminplugin/0.12
- 実行結果
C:\TracLight\bin>easy_install.exe c:\TracLight\plugins\svn\tracworkflowadmin\0.12 Processing 0.12 Running setup.py -q bdist_egg --dist-dir c:\TracLight\plugins\svn\tracworkflowadmin\0.12\egg-dist-tmp-k4yidd zip_safe flag not set; analyzing archive contents... Removing tracworkflowadmin 0.1 from easy-install.pth file Adding tracworkflowadmin 0.12.0.1 to easy-install.pth file Installed c:\traclight\python\lib\site-packages\tracworkflowadmin-0.12.0.1-py2.6.egg Processing dependencies for tracworkflowadmin==0.12.0.1 Finished processing dependencies for tracworkflowadmin==0.12.0.1
- Tracを再起動
TracLightningの場合、
- 「コマンドプロンプトで起動」を使っている場合は、コマンドプロンプトを閉じて再度「コマンドプロンプトで起動」を実行します
Windowsサービスで起動している場合は、管理ツールからサービスを選んで TracLightning のサービスを再起動します
- プラグインを有効にする
再起動できたらブラウザから TracLightning のプロジェクトに管理者カウントでログインします。
ログイン後、管理メニュー → プラグインをクリック。 インストールした「TracWorkflowAdmin」を有効にします。変更を適用をクリック。 以上でプラグインのインストールは終了です。 ※プラグインの有効・無効はプロジェクト毎に設定する必要があります。
使用方法
環境
- Windows XP SP3
TracLightning 3.1.1
- 普通は、trac.ini に [ticket-workflow] セクションを作成し、[ticket-workflow] セクション内にサンプルを貼り付けて終了。
残念ながら、TracWorkflowAdmin にはGUIで trac.ini の {ticket-workflow} を編集できる機能がないので画像を示しながら設定例を解説します。当然、trac.ini の {ticket-workflow}セクションにコピーアンドペーストしても良いです。
ワークフローがカスタマイズできるといっても、「new ではじまり close で終わる」は変わりません。 |
設定例1.TracWorkflowAdmin の初期化で提供されるワークフロー
標準的なワークフローです。流れとしては、新規作成(new) → 担当割り当て(assigned) → 解決(closed) となります。新規作成(new) → 担当する(accepted) → 解決(closed) という流れもあり、こちらはチケットを自分で選んで処理する場合のフローです。
[ticket-workflow] accept = new,assigned,accepted,reopened -> accepted accept.default = 999 accept.name = 担当する accept.operations = set_owner_to_self accept.permissions = TICKET_MODIFY leave = new,assigned,accepted,reopened,closed -> * leave.default = 1000 leave.name = 変更しない leave.operations = leave_status reassign = new,assigned,accepted,reopened -> assigned reassign.default = 998 reassign.name = 担当を変える reassign.operations = set_owner reassign.permissions = TICKET_MODIFY reopen = closed -> reopened reopen.default = 997 reopen.name = 再オープンする reopen.operations = del_resolution reopen.permissions = TICKET_CREATE resolve = new,assigned,accepted,reopened -> closed resolve.default = 996 resolve.name = 解決にする resolve.operations = set_resolution resolve.permissions = TICKET_MODIFY
設定例2.最もシンプルなワークフロー
最もシンプルなフローです。新規作成(new) → 解決(closed) 。一人で利用している場合やワークフロー機能を使わない場合など、チケットを備忘録やタスクとしてシンプルに利用するときに良いかもしれません。
[ticket-workflow] leave = new,closed,reopened -> * leave.default = 1000 leave.name = 変更しない leave.operations = leave_status reopen = closed -> reopened reopen.default = 999 reopen.name = 差し戻す reopen.operations = del_resolution reopen.permissions = TICKET_CREATE resolve = new,reopened -> closed resolve.default = 998 resolve.name = 解決にする resolve.operations = set_resolution resolve.permissions = TICKET_MODIFY
設定例3.「確認待ち」ステータスを追加したワークフロー
- フローダイアグラムは少し複雑になります。
- チケットの作業が完了したとき、「確認待ち」というステータスが必要な場合があります。バグ管理の場合、開発者が対応済みと思っても、解決していないことや認識違いが多々あります。そこで、「完了」の前に必ず別の担当者による「確認」を入れることでバグが修正されたことをチェックしたり、再現しないことを確認したあとで「完了」にするためのワークフローです。
- このワークフローでは完了にするためには必ず「解決・確認を依頼する」を経由しなければいけません。場合によっては直接完了できるフローを追加しても良いかもしれません。
[ticket-workflow] leave = new,assigned,accepted,reopened,closed,resolved -> * leave.name = 変更しない。 leave.default = 1 leave.operations = leave_status accept = new,assigned,accepted,reopened -> accepted accept.name = 着手する。 accept.default = 0 accept.operations = set_owner_to_self accept.permissions = TICKET_MODIFY reassign = new,assigned,accepted,reopened -> assigned reassign.name = 担当者変更 reassign.default = 0 reassign.operations = set_owner reassign.permissions = TICKET_MODIFY reject = resolved -> assigned reject.name = 差し戻す。 reject.default = 0 reopen = closed,resolved -> reopened reopen.name = 再オープンする。 reopen.default = 0 reopen.operations = del_resolution reopen.permissions = TICKET_CREATE resolve = new,assigned,accepted,reopened -> resolved resolve.name = 解決、確認を依頼する。 resolve.default = 0 resolve.operations = set_resolution resolve.permissions = TICKET_MODIFY verify = resolved -> closed verify.name = 完了を承認する。 verify.default = 0 verify.operations = set_resolution
操作(operations)の説明
- del_owner ― チケットの所有者を削除します。
- set_owner ― チケットの所有者を選択された所有者か入力された所有者に設定します。
- actionname.set_owner カンマ区切りのリストか1つの値を設定することができます。
- set_owner_to_self ― チケットの所有者をログインユーザに設定します。
- del_resolution ― チケットの解決方法を削除します。
- set_resolution ― チケットの解決方法を選択された解決方法か入力された解決方法に設定します。