Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

Trac-0.11のワークフロー

via. http://labs.unoh.net/2006/08/trac_qatesting.html

Trac-0.10系の最大の不満点は「確認中」というステータスがない事ですが、Trac-0.11から「ワークフロー」として実装されるとの事。ということで、すでにTrac-0.10.4-ja-1をインストールしてあった環境でサクッと試してみました。
upgrade手順は以下のような感じ。今回は0.11b1を使用しました。

$ python -V
Python 2.3.4
$ svn co http://svn.edgewall.com/repos/trac/tags/trac-0.11b1/
$ cd trac-0.11b1/
$ sudo python setup.py install
$ trac-admin /path/to/trac_project upgrade
$ trac-admin /path/to/trac_project wiki upgrade
$ 

upgrade終了後、trac.iniを見てみると、ワークフロー関連の設定が追加されています。

             :
restrict_owner = false

[ticket-workflow]
accept = new -> assigned
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY
leave = * -> *
leave.default = 1
leave.operations = leave_status
reassign = new,assigned,reopened -> new
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
reopen = closed -> reopened
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolve = new,assigned,reopened -> closed
resolve.operations = set_resolution
resolve.permissions = TICKET_MODIFY

[timeline]
changeset_long_messages = false
             :

パッと見、分かるような分からないような感じですが、これでTrac-0.10のワークフローと同じです。で、これに

  • 作業中
  • 確認中

のステータスを追加すると、以下のような感じになります。

[ticket-workflow]
accept = new -> assigned
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY
leave = * -> *
leave.default = 1
leave.operations = leave_status
reassign = new,assigned,reopened,in_work -> assigned
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
start = assigned -> in_work
start.operations = set_owner_to_self
start.permissions = TICKET_MODIFY
reopen = verify,closed -> reopened
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
resolve = new,assigned,reopened,in_work -> verify
resolve.operations = set_resolution
resolve.permissions = TICKET_MODIFY
verified = verify -> closed
verified.permissions = TICKET_MODIFY

図で書くと

な感じ。こういう具合に、いろいろとカスタマイズできそうです。また、trac-0.11b1/sample-plugins/workflow/enterprise-review-workflow.iniがかなり参考になると思います。