v2以上のバージョンを持つライブラリのimport
golang/goのWiki に書いてある通り、v2以上ではモジュールのパスに /vN
をいれる必要がある。これを読むだけだとわかりにくいのだが、具体的には、importする際に import "github.com/k0kubun/pp"
のかわりに
import (
pp "github.com/k0kubun/pp/v3"
)
とする必要がある。/v3
なしで書くとgo.mod内で v3.0.1+incompatible
とかになってしまう。
k0kubun/ppのリポジトリがディレクトリをv3で開始していたり、ブランチにv3を持っていたりといったことをする必要はない。
go mod tidy
go mod tidy
をやるとgo.modがいい感じになる。使わなくなったものを消したい時などに使うとよさそう。
Go Modulesのリリース
普通にgit tagを vX.Y.Z
で打つ。打たないと、ちゃんとGo Modulesで使ってる人には更新が行かなくなりそう。
tools.go
tools.go という文化 があるらしい。k0kubun/pp みたいな、一時的には使うけどそれを使うコードをコミットするわけではないみたいなライブラリも、tools.go 内でimportしておくと、k0kubun/pp を使う度にgo.modに差分を出すことを防げてよさそう。
tools.go
package main
import (
_ "github.com/k0kubun/pp/v3"
)