go mod 試験導入

nyagos の依存パッケージである zetamatta/go-texts/mbcs に不具合があったので、それをちゃんと import するよう、go modules を設定してみた。 そのメモ。間違っている箇所があればご指摘歓迎

go-texts 側

go modules を使用するモードに切り替える

set GO111MODULE=on

各パッケージフォルダーで go.mod を作成し、レポジトリへ反映する。これは v0~v1のトップだけではダメのようだ。v2 とかのメジャーバージョンフォルダーにも必要。また、go.mod は go build で更新されるので、そのあとに commit するのも忘れてはいけない。

cd ~/go/src/github.com/zetamatta/go-texts/
go mod init
go build
git add go.mod
cd mbcs
go mod init
go build
git add go.mod
git commit -m "add go.mod"

v1.0.1 というタグをつけておく。v1.0.0 ではないのは単に既に同タグが使用済みだったからというだけ

git tag v1.0.1

GitHub にも go.mod とタグを反映しておく。モジュールは別フォルダーに個別にダウンロードされるので、ローカルのパッケージにだけタグがあっても意味がない。

git push
git push --tag

go-box 側

今回の不具合ではないが、go-box という依存モジュールは v2 というフォルダーを既に使っていて、そのままビルドするとエラーが発生してしまった。

cd ~/go/src/github.com/zetamatta/go-box
go mod init
go build
git add go.mod
cd v2
git mod init
go build
git add go.mod
git commit -m "Add go.mod"

nyagos 本体

cd ~/go/src/github.com/zetamatta/nyagos
go mod init
go build
git add go.mod

これで Ok なはずだが、ビルドスクリプト修正

  • 環境変数 GO111MODULE を on にするコードを追加
  • go get が必要なくなるので、make get は何もしないようにする

ところで、これ、そのバージョン以降の最新版という指定をする方法はないんでしょうかねぇ。。。

追記

気になっていた import モジュールの最新化だけど、「Go言語の基礎〜Go 1.11 開発環境構築とパッケージバージョン管理〜 – RE:ENGINES」によると、

go get -u

でいいみたい。