vgo とは
将来、標準になるであろう Go 言語のバージョン管理ツール。
詳しくは research!rsc: Go & Versioning を参照。
Qiita にて日本語訳を書いてくださっている方もいるので、日本語で読みたければ下記を参照。
実際に使ってみた
先日の投稿で紹介したリポジトリで vgo を使ってみた。
こちらがその PR。
要点をかいつまんで説明すると以下の通り。
- 新しく「モジュール」という考え方が登場する
vgo
コマンド自体はgo
コマンドと互換を持つgo.mod
というファイルに依存モジュールのバージョン情報を持つ- minimal version selection の考え方により lock ファイルは必要ない
vgo build
の際に、(import されているが)インストールされていないモジュールは自動でインストールされる- この際
go.mod
も自動で書き換えられる
- この際
所感など
go
コマンドと互換を持っているので、簡単に使うことができた。
そもそも既存のバージョン管理ツール(dep
, glide
など)から簡単に移行できるようにデザインされているとのこと。
なので学習・検証の目的以外で、現時点ではあえて vgo を使う必要はなく、正式に採用されるまで待つので良さそう。
余談
vgo について調べてるけど、minimal version selection の概念に思わず唸った。
— おかしょい (@okashoi) October 6, 2018
シンプルな方法で諸問題を解決しつつ、付加価値も与える。「アイデア」として理想的。
(もちろん、それによって別の問題が出てくる可能性があるは忘れてはいけないが)https://t.co/QUuKvdr5ct