🦍
Goで作ったライブラリのバージョンアップ手順
初めに
以前Goでクリップボードから画像を取得&保存できるライブラリclipboard-imageを作りました。
ただ、関数名が気に入らなかったので名前を変えてv1->v2にアップしてgo get
したら次のエラーが出ました。
go get github.com/skanehira/clipboard-image@v2.0.0: github.com/skanehira/clipboard-image@v2.0.0: invalid version: module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v2
go modules
を使っているからなのか、少々面倒だったのでv1以上にする手順を残しておきます。
手順
以下とおりにやれば、バージョンアップできるはずです。
-
ライブラリの
go.mod
に/v2
をつける
変更前module github.com/skanehira/clipboard-image
変更後
module github.com/skanehira/clipboard-image/v2
-
タグをつけてpush
git tag v2.0.0 git push origin --tags
-
利用する側で
go get module/v2
go get github.com/skanehira/clipboard-image/v2
-
importにバージョンをつける
import ( "github.com/skanehira/clipboard-image/v2" )
解説
どうやらgo modules
を使っているライブラリをv1以上にする場合は、module@2.0.0
ではなくmodule/v2
というふうにgo.mod
に定義する必要があるようです。
詳細は参考文献のgo get の動作メモ
を参照ください。
Discussion