モジュールを公開する

モジュールを他の開発者が利用できるようにするには、Goツールから見えるように公開します。モジュールを公開すると、そのパッケージをインポートする開発者は、go getなどのコマンドを実行して、モジュールへの依存関係を解決できるようになります。

注: 公開したモジュールのタグ付きバージョンは、公開後に変更しないでください。モジュールを使用する開発者にとって、Goツールはダウンロードされたモジュールを最初のダウンロードコピーと照合して認証します。2つが異なる場合、Goツールはセキュリティエラーを返します。以前に公開したバージョンのコードを変更するのではなく、新しいバージョンを公開してください。

こちらも参照

公開手順

モジュールを公開するには、次の手順を実行します。

  1. コマンドプロンプトを開き、ローカルリポジトリ内のモジュールのルートディレクトリに移動します。

  2. go mod tidyを実行します。これにより、モジュールが蓄積した不要な依存関係がすべて削除されます。

    $ go mod tidy
    
  3. すべてが機能していることを確認するために、go test ./...を最後に実行します。

    これにより、Goテストフレームワークを使用するために記述した単体テストが実行されます。

    $ go test ./...
    ok      example.com/mymodule       0.015s
    
  4. git tagコマンドを使用して、プロジェクトに新しいバージョン番号でタグを付けます。

    バージョン番号には、このリリースでの変更の性質をユーザーに知らせる番号を使用してください。詳細については、「モジュールのバージョン番号付け」を参照してください。

    $ git commit -m "mymodule: changes for v0.1.0"
    $ git tag v0.1.0
    
  5. 新しいタグをオリジンリポジトリにプッシュします。

    $ git push origin v0.1.0
    
  6. go listコマンドを実行して、Goに公開するモジュールに関する情報でモジュールのインデックスを更新するように促し、モジュールを利用できるようにします。

    GoプロキシにGOPROXY環境変数を設定するステートメントをコマンドの前に置きます。これにより、リクエストがプロキシに到達することが保証されます。

    $ GOPROXY=proxy.golang.org go list -m example.com/mymodule@v0.1.0
    

モジュールに関心のある開発者は、他のモジュールと同様に、そこからパッケージをインポートしてgo getコマンドを実行します。最新バージョンに対してgo getコマンドを実行することも、次の例のように特定のバージョンを指定することもできます。

$ go get example.com/mymodule@v0.1.0