TracWorkflowバージョン 2バージョン 3 との変更


以下の違いを無視:
日時:
2012/10/20 13:54:06 (12年前)
更新者:
trac
コメント:

--

凡例:

未変更
追加
削除
更新
  • TracWorkflow

    v2 v3  
    66== デフォルトのワークフロー == #TheDefaultTicketWorkflow 
    77=== 0.10 からアップグレードした Environment === #Environmentsupgradedfrom0.10 
    8 `trac-admin <env> upgrade` を実行したとき、`trac.ini` に `[ticket-workflow]` セクションが追加され、 0.10 でのワークフロー (original ワークフロー) と同様のアクションをするようにデフォルトの設定値が設定されます。 
     8`trac-admin <env> upgrade` を実行したとき、`trac.ini` に `[ticket-workflow]` セクションが追加され、 
     90.10 でのワークフロー (original ワークフロー) と同様のアクションをするようにデフォルトの設定値が設定されます。 
    910 
    1011original ワークフローは下図を参照してください: 
    1112 
    12 [[Image(htdocs:../common/guide/original-workflow.png)]] 
    13  
    14 original ワークフローにはいくつかの重要な "欠点" があります; 新しいチケットを承認 (accept) したときにステータスは 'assigned' に設定されますが、 'assigned' のチケットを再割り当て (reassign) するとステータスは 'new' に設定され、直観的ではありません。 
    15 これは original ワークフローから "basic" ワークフローに移行することで解決します; original ワークフローから basic ワークフローへの移行には [http://trac.edgewall.org/browser/trunk/contrib/workflow/migrate_original_to_basic.py contrib/workflow/migrate_original_to_basic.py] が役に立つかもしれません。 
     13{{{#!Workflow width=500 height=240 
     14leave = * -> * 
     15leave.operations = leave_status 
     16leave.default = 1 
     17accept = new -> assigned 
     18accept.permissions = TICKET_MODIFY 
     19accept.operations = set_owner_to_self 
     20resolve = new,assigned,reopened -> closed 
     21resolve.permissions = TICKET_MODIFY 
     22resolve.operations = set_resolution 
     23reassign = new,assigned,reopened -> new 
     24reassign.permissions = TICKET_MODIFY 
     25reassign.operations = set_owner 
     26reopen = closed -> reopened 
     27reopen.permissions = TICKET_CREATE 
     28reopen.operations = del_resolution 
     29}}} 
     30 
     31original ワークフローにはいくつかの重要な "欠点" があります。 新しいチケットを承認 (accept) したときにステータスは 'assigned' に設定されますが、 'assigned' のチケットを再割り当て (reassign) するとステータスは 'new' に設定され、直観的ではありません。 
     32これは original ワークフローから "basic" ワークフローに移行することで解決します。 original ワークフローから basic ワークフローへの移行には [http://trac.edgewall.org/browser/trunk/contrib/workflow/migrate_original_to_basic.py contrib/workflow/migrate_original_to_basic.py] が役に立つかもしれません。 
    1633 
    1734=== 0.11 で新規作成した Environment === #Environmentscreatedwith0.11 
     
    2037basic ワークフローは下図を参照してください: 
    2138 
    22 [[Image(htdocs:../common/guide/basic-workflow.png)]] 
     39{{{#!Workflow width=700 height=300 
     40leave = * -> * 
     41leave.operations = leave_status 
     42leave.default = 1 
     43accept = new,assigned,accepted,reopened -> accepted 
     44accept.permissions = TICKET_MODIFY 
     45accept.operations = set_owner_to_self 
     46resolve = new,assigned,accepted,reopened -> closed 
     47resolve.permissions = TICKET_MODIFY 
     48resolve.operations = set_resolution 
     49reassign = new,assigned,accepted,reopened -> assigned 
     50reassign.permissions = TICKET_MODIFY 
     51reassign.operations = set_owner 
     52reopen = closed -> reopened 
     53reopen.permissions = TICKET_CREATE 
     54reopen.operations = del_resolution 
     55}}} 
    2356 
    2457== そのほかのワークフロー == #AdditionalTicketWorkflows 
    2558 
    26 Trac のソースツリーの中でいくつかのワークフローのサンプルを提供しています; [trac:source:trunk/contrib/workflow contrib/workflow] の `.ini` コンフィグセクションを探してみてください。その中のひとつにあなたが探しているものがあるでしょう。それらをあなたの `trac.ini` ファイルの `[ticket-workflow]` セクションに貼り付けてください。しかし、もしあなたがすでに起票済みのチケットをもっていて、それらのチケットのステータスが新しいワークフローに含まれていない場合に、問題が生じるでしょう。 
    27  
    28 これらの例の [http://trac.edgewall.org/wiki/WorkFlow/Examples ダイヤグラム] を見ることができます。 
     59Trac のソースツリーの中でいくつかのワークフローのサンプルを提供しています [trac:source:trunk/contrib/workflow contrib/workflow] の `.ini` コンフィグセクションを探してみてください。その中のひとつにあなたが探しているものがあるでしょう。それらをあなたの `trac.ini` ファイルの `[ticket-workflow]` セクションに貼り付けてください。しかし、もしあなたがすでに起票済みのチケットをもっていて、それらのチケットのステータスが新しいワークフローに含まれていない場合に、問題が生じるでしょう。 
     60 
     61これらの例の [trac:WorkFlow/Examples ダイヤグラム] を見ることができます。 
    2962 
    3063== 基本的なワークフローのカスタマイズ == #BasicTicketWorkflowCustomization 
     
    4578 
    4679''actionname''`.operations` で使用できる値は以下の通りです: 
    47  - del_owner -- チケットの所有者を削除します。 
    48  - set_owner -- チケットの所有者を選択された所有者か入力された所有者に設定します。 
    49    - ''actionname''`.set_owner` カンマ区切りのリストか1つの値を設定することができます。 
    50  - set_owner_to_self -- チケットの所有者をログインユーザに設定します。 
    51  - del_resolution -- チケットの解決方法を削除します。 
    52  - set_resolution -- チケットの解決方法を選択された解決方法か入力された解決方法に設定します。 
    53    - ''actionname''`.set_resolution` カンマ区切りのリストか1つの値を設定することができます。 
    54 {{{ 
    55 例: 
    56  
     80 - del_owner -- チケットの所有者を削除します 
     81 - set_owner -- チケットの所有者を選択された所有者か入力された所有者に設定します 
     82   - ''actionname''`.set_owner` カンマ区切りのリストか1つの値を設定することができます 
     83 - set_owner_to_self -- チケットの所有者をログインユーザに設定します 
     84 - del_resolution -- チケットの解決方法を削除します 
     85 - set_resolution -- チケットの解決方法を選択された解決方法か入力された解決方法に設定します 
     86   - ''actionname''`.set_resolution` カンマ区切りのリストか1つの値を設定することができます。 例: 
     87     {{{ 
    5788resolve_new = new -> closed 
    5889resolve_new.name = resolve 
     
    6091resolve_new.permissions = TICKET_MODIFY 
    6192resolve_new.set_resolution = invalid,wontfix 
    62 }}} 
    63  - leave_status -- "変更しない 現在のステータス: <現在のステータス>" (英語版では "leave as <current status>") を表示してチケットへの変更を行いません 
     93     }}} 
     94 - leave_status -- "変更しない 現在のステータス: <現在のステータス>" (英語版では "leave as <current status>") を表示してチケットへの変更を行いません 
    6495'''Note:''' `set_owner` と `del_owner` などのように相反する操作を同時に指定した場合の動作は不定です。 
    6596 
     
    123154もし、上記で述べたような testing ステージがあるような複雑なワークフローを使用していて、キーワードに ''closes'' があった場合にステータスを ''closed'' にする代わりに、 ''testing'' に移したいならば、かなりコードを改変させる必要があるでしょう。 
    124155 
    125 `trac-post-commit-hook` については、 [[trac:wiki:0.11/TracWorkflow#How-ToCombineSVNtrac-post-commit-hookWithTestWorkflow|Trac 0.11 レシピ]] を参照して下さい。これは、このコンポーネントを修正する方法についていくつかのアイディアをくれるでしょう。 
     156`trac-post-commit-hook` については、 [[trac:wiki:0.11/TracWorkflow#How-ToCombineSVNtrac-post-commit-hookWithTestWorkflow|Trac 0.11 レシピ]] を参照して下さい。このコンポーネントの修正方法がいくらかわかるでしょう。 
    126157 
    127158== 例: レビュー状態を追加する == #Example:Addsimpleoptionalgenericreviewstate 
     
    164195leave.default = 1 
    165196leave.operations = leave_status 
    166 reassign = new,assigned,reopened -> new 
     197reassign = new,assigned,accepted,reopened -> assigned 
    167198reassign.operations = set_owner 
    168199reassign.permissions = TICKET_MODIFY 
     
    212243(訳注: この項はワークフローシステムの実装に関するアイデア集です。現在実装されているものではないので、プラグインを作成するときなどに参考にしてください) 
    213244 
    214 New enhancement ideas for the workflow system should be filed as enhancement tickets against the `ticket system` component.  If desired, add a single-line link to that ticket here.  Also look at the [th:wiki:AdvancedTicketWorkflowPlugin] as it provides experimental operations. 
     245New enhancement ideas for the workflow system should be filed as enhancement tickets against the `ticket system` component.  If desired, add a single-line link to that ticket here.  Also look at the [http://trac-hacks.org/wiki/AdvancedTicketWorkflowPlugin AdvancedTicketWorkflowPlugin] as it provides experimental operations. 
    215246 
    216247If you have a response to the comments below, create an enhancement ticket, and replace the description below with a link to the ticket. 
     
    222253''This appears to add complexity without adding functionality; please provide a detailed example where these additions allow something currently impossible to implement.'' 
    223254 
    224  * operations could be anything: sum up the time used for the activity, or just write some statistical fields like  
     255 * operations could be anything: sum up the time used for the activity, or just write some statistical fields like 
    225256''A workflow plugin can add an arbitrary workflow operation, so this is already possible.'' 
    226257 
     
    231262 
    232263 * Actions should be selectable based on the ticket type (different Workflows for different tickets) 
    233 ''Look into the [th:wiki:AdvancedTicketWorkflowPlugin]'s `triage` operation.'' 
    234  
     264''Look into the [http://trac-hacks.org/wiki/AdvancedTicketWorkflowPlugin AdvancedTicketWorkflowPlugin]'s `triage` operation.'' 
     265 
     266 * I'd wish to have an option to perform automatic status changes. In my case, I do not want to start with "new", but with "assigned". So tickets in state "new" should automatically go into state "assigned". Or is there already a way to do this and I just missed it? 
     267''Have a look at [http://trac-hacks.org/wiki/TicketCreationStatusPlugin TicketCreationStatusPlugin] and [http://trac-hacks.org/wiki/TicketConditionalCreationStatusPlugin TicketConditionalCreationStatusPlugin]'' 
     268 
     269 * I added a 'testing' state. A tester can close the ticket or reject it. I'd like the transition from testing to rejected to set the owner to the person that put the ticket in 'testing'. The [http://trac-hacks.org/wiki/AdvancedTicketWorkflowPlugin AdvancedTicketWorkflowPlugin] is close with set_owner_to_field, but we need something like set_field_to_owner. 
     270 
     271 * I'd like to track the time a ticket is in each state, adding up 'disjoints' intervals in the same state.