govendor と heroku

govendor は goパッケージをバージョン管理できるツール

プロジェクトのvendor以下をローカルパッケージとして管理できるgoの機能を拡張することで機能する。

github.com

govendor fetch <package name>

とすると、vendor/vendor.json の下に管理用のjsonファイルが作成される。

herokuもこのツールを対応している。

注意点としては、goのパッケージロードで、vendorディレクトリにパッケージがなければ、$GOPATH以下を読みに行くので、ローカルではvendorディレクトリにパッケージがなく、$GOPATHにはあってビルドが通るけど、heroku上ではどちらにもなくてビルドがこける。ということがあるので、ちゃんと必要なパッケージはvendor.jsonに記述しておく必要がある。