retool で golang の周辺ツールの vendoring
golang における依存関係の管理は、golang 本体の vendoring 対応やオフィシャルの依存関係管理ツールである dep の登場によってかなりいい感じになりつつあります。しかし、dep で管理できるのはあくまでもコードから参照するライブラリのみであり、npm でいう devDependencies に含めるような周辺ツールのバージョンを管理することはできません。
このことは dep の Issue にもなっており、将来的には改善されるかもしれませんが、現状使えるツールとして retool を試してみました。
retool は実行ファイルの vendoring を行うシンプルなツールで、ツール類のバージョンを固定する機能や、実行ファイルをプロジェクトのディレクトリ以下の _tools/bin
に配置する機能を持っています。
この手のパッケージマネージャを使ったことがあればすぐに使えると思います。
わざわざ説明するまでもないレベルですが、retool add
でパッケージを tools.json に追加しつつインストールできて、retool do
でインストールしたコマンドを実行できます。
tools.json の内容でパッケージをインストールしたい場合は retool sync
を実行します。
retool が決定版的なツールかというとそういうわけではないでしょうが、dep が対応したとしてもその時移行すればいい程度の話なので、自分で頑張るよりはサクッと retool に任せてしまうのが楽だと思いました。