Graphviz、バージョンアップで挙動が変わった?

Graphvizをバージョンアップしたら、出力したグラフのノード配置が変わってしまった!!

 

 

 

1.環境

OS : Windows7 Home Premium
Ruby : ruby 1.9.3p392 (2013-02-22) [i386-mingw32]
gem : ruby-graphviz(1.0.9)

今回、graphviz本体だけを最新バージョン 2.34 zip版にあげて(http://www.graphviz.org/Download_windows.php、同じ処理して発覚した。

このとき、graphviz本体以外は変更していない。

 

※graphviz2.30.1を数ヶ月使っていたが、この期間にはubuntuでも何度も同じことをやっていて、
 ほぼ同じ挙動だったので、今までは気にならなかった。
 (正確に言うと、winとubuntuでエッジの描画が少し違ったけど、それでも許せる程度の違いだった)

 

 

というわけで、直近のバージョンをいくらか調べてみた。

 ダウンロード元はここ(http://www.graphviz.org/pub/graphviz/stable/windows/

 

 

2.検証で使ったスクリプト

require 'graphviz'

g = GraphViz::new( "title name",:type => "graph",:splines => "ortho",:layout=>"dot")

elements=Hash.new

g.subgraph{ |c|
  c[:rank=>'source']
  elements['ff']=c.add_node('ff',:shape=>"box",:label=>"A",:fontname=>"MS UI Gothic")
  elements['fm']=c.add_node('fm',:shape=>"box",:label=>"B",:fontname=>"MS UI Gothic")
  elements['ff_fm']=c.add_node('ff_fm',:shape=>"point")
  c.add_edge(elements['ff'],elements['ff_fm'],:arrowhead=>"none")
  c.add_edge(elements['fm'],elements['ff_fm'],:arrowhead=>"none")
}

g.output(:png=>"image.png")

 

 

3.上記スクリプトを各バージョンで出力した結果

 

graphviz本体バージョン 2.30.1(msi版)

 http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.30.1.msi

 f:id:hamakichitaro:20140110003936p:plain

 

graphviz本体バージョン 2.30.1(zip版)

 http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.30.1.zip

  エラー!!

  f:id:hamakichitaro:20140110004241p:plain

 

  ※msi版とzip版のフォルダをdiffを取ったら、差異がゴロゴロでてきた。

 

graphviz本体バージョン 2.32(zip版)

 http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.32.zip

 f:id:hamakichitaro:20140110004515p:plain

 

graphviz本体バージョン 2.34(zip版)

 http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.34.zip

 f:id:hamakichitaro:20140110004906p:plain

 

graphviz本体バージョン 2.34(msi版) 

 http://www.graphviz.org/pub/graphviz/stable/windows/graphviz-2.34.msi

 f:id:hamakichitaro:20140110010203p:plain

 

 

4.考察

というわけで、msi版とzip版が異なることが分かったものの、それが理由ではなかった。ver.2.30.1からver.2.32に更新されるときに、何か変更があったのだろう。でも、バージョンアップ時の変更箇所の説明が見つからない。どこかにあるはずなんだけど・・・

ノードの配置がこれだけ変わってしまうと困ります。

ver.2.30.1(zip版)がエラーになってしまうのはもっと困ります。何なんだろう。

 

 

5.結論

しばらくver.2.30.1msi版を使い続けることにする。なんかスッキリしないけど。