2010/01/03

2010年の書き初め:GraphvizでTracのBasic Workflowを描く

はぁ、あっという間に2000年代も10年が経ってしまいました。 今年もよろしくお願いします。

書き初めという事でドキュメントの図そのままですが、Graphvizを使ってTrac 0.11から標準になったBasic Workflowを描いてみました。

Graphvizで絵を描く

構造的なオブジェクトに対して、単純な表記で描く事ができるGraphvizはいろいろな局面で便利なツールです。

Tracをいろいろ試しているところでWorkflowのカスタマイズは将来的に不回避に思えたので、その時のためにGraphvizを使ってWorkflowの.dotファイルを作成してみました。 Tracのマニュアルそのままの図なので、おもしろくはないですけどね。

trac_workflow.dotファイル

digraph TracWorkFlow {
  node [shape=ellipse fontsize=14 width="0.8" margin=0.1 ]

  init [ label="*" color=black ]
  init -> { init } [label="leave" ]
  new [ color=black ]
  new -> { accepted } [ label="accept" color=green fontcolor=green ]
  new -> { assigned } [ label="reassign" color=blue fontcolor=blue ]
  new -> { closed } [label="resolve" color=red fontcolor=red ]
  assigned [ color=blue ]
  assigned -> { assigned } [label="reassign" color=blue fontcolor=blue ]
  assigned -> { accepted } [label="accept" color=green fontcolor=green ]
  assigned -> { closed } [label="resolve" color=red fontcolor=red ]
  accepted [ color=green ]
  accepted -> { accepted } [label="accept" color=green fontcolor=green ]
  accepted -> { assigned } [label="reassign" color=blue fontcolor=blue ]
  accepted -> { closed } [label="resolve" color=red fontcolor=red ]
  closed [ color=red ]
  closed -> { reopened } [label="reopen" color=purple fontcolor=purple ]
  reopened [ color=purple ]
  reopened -> { closed  } [label="resolve" color=red fontcolor=red ]
  reopened -> { accepted } [label="accept" color=green fontcolor=green ]
  reopened -> { assigned } [label="reassign" color=blue fontcolor=blue ]
}
出力結果

結果は次のようになります。

$ dot -o trac_workflow.gif trac_workflow.dot
$ convert trac_workflow.gif trac_workflow.png

dotコマンドで変換後のPNG画像

0 件のコメント: