ツールのバージョン管理

From Pitagora-Galaxy Wiki
Jump to: navigation, search

Main Page >> Admin >>

同一のワークフローを再現するためには、Galaxy ツールのバージョン(wrapper.xml の version タグ)と別に、Tool Shed(mercurial)のリビジョンを考慮する必要がある。Tool Shed の仕様として、過去のリビジョンがダウンロードできない場合があるため要注意!

Tool Shed でダウンロード可能なリビジョン

  • 機能変化のないリビジョン更新の場合、最新のリビジョンのみがダウンロード可能になる
    • API で過去のリビジョンを指定してツールをインストールしようとしても新しいリビジョンがインストールされる
  • この場合の過去のリビジョンは ToolShed 経由でインストールする方法がない
    • 過去のリビジョンで解析を再現することができない

ピタゴラ VM の運用案

そのため、解析の再現のためにはピタゴラ VM のような仕組みが必要。そこで、ピタゴラ VM の運用は次の通りとする。

  • Pitagora VM のパッケージングの際には既存のツールは最も新しい Revision に更新される
  • Revision が更新されてもワークフローは動くはずだが、本当に動くかどうかはテストで確かめる
  • ワークフローは同じでも Pitagora VM のバージョンが異なると、結果も異なる可能性がある
  • 利用者はワークフローを再現したい場合には同じバージョンの Pitagora VM を使う必要がある

機能変化の有無の検知

  • 機能的な変化がないことを検知する方法は、ToolShedがツールごとに生成するメタデータの変化を見ている
    • ToolShedでのツール開発者がバージョンを上げる度にToolShedがメタデータを生成し、以前のものと変化がなければ、新しいものを ‘installable’ にする
    • Dev チームからの回答: https://twitter.com/martenson/status/638188445303705600
  • 例)Cufflinks ツールの場合
    • 履歴は、Web 経由で実際の Mercurial リポジトリを見ることができる:https://toolshed.g2.bx.psu.edu/repos/devteam/cufflinks/graph/
    • 機能変化としてツール設定ファイル (cufflinks_wrapper.xml) の tool version だけをチェックしているというわけでもない
    • 下記、上の方ほど新しいリビジョン。後続のリビジョンがメタデータを更新しない場合、インストール不可(installable == ×)になる
Revision      installable        変更内容
------------------------------------------------------------------ 
64698e16f4a6  ○   cufflinks_wrapper.py 変更 
5346d5eea8b1  ×   cufflinks_wrapper.xml も含めていろいろ変更 
9aab29e159a7  ○   cufflinks_wrapper.xml 変更 (tool version変更なし) 
fe6f99e3d7f4  ×   tool-data/*.sample 変更 (merge heads)
7498f5a8fe06  ○   tool_data_table_conf.xml.sample 変更 
da11bfc10e81  ○   tool version 0.0.6 -> 0.0.7 
b01956f26c36  ○   tool-data/*.sample 変更 
------------------------------------------------------------------