モジュールの開発と公開のワークフロー
他の人のためにモジュールを公開したい場合、これらのモジュールを使いやすくするためにいくつかの慣習を採用します。
以下の高レベルのステップは、モジュールのリリースとバージョン管理のワークフローで詳しく説明されています。
- 1. モジュールに含まれるパッケージを設計し、コーディングします。
- 2. Goツールを介して他の人が利用できるように、慣習に従ってリポジトリにコードをコミットします。
- 3. モジュールを公開して、開発者が発見できるようにします。
- 4. 時間が経つにつれて、各バージョンの安定性と後方互換性を示すバージョン番号の慣習を使用してモジュールを改訂します。
設計と開発
モジュール内の関数とパッケージが一貫した全体を形成している場合、開発者がモジュールを見つけて使用しやすくなります。モジュールの公開APIを設計する際は、その機能を集中させ、明確に保つようにしてください。
また、後方互換性を考慮してモジュールを設計・開発することで、ユーザーが自分のコードへの影響を最小限に抑えながらアップグレードできるようになります。後方互換性を壊さないバージョンをリリースするために、コード内で特定の技術を使用できます。これらの技術については、Goブログのモジュールの互換性を保つを参照してください。
モジュールを公開する前に、replaceディレクティブを使用してローカルファイルシステムで参照できます。これにより、モジュールがまだ開発中の間に、モジュール内の関数を呼び出すクライアントコードを書くのが容易になります。詳細については、モジュールのリリースとバージョン管理のワークフローの「未公開モジュールに対するコーディング」を参照してください。
分散型公開
Goでは、リポジトリ内のコードにタグを付けてモジュールを公開し、他の開発者が使用できるようにします。モジュールを中央集権的なサービスにプッシュする必要はありません。Goツールは、モジュールのパス(スキームを省略したURL)を使用してリポジトリから直接モジュールをダウンロードできます。
開発者は、自分のコードにパッケージをインポートした後、Goツール(go get
コマンドを含む)を使用して、コンパイル用のモジュールのコードをダウンロードします。このモデルをサポートするために、他の開発者のためにGoツールがリポジトリからモジュールのソースを取得できるようにする慣習とベストプラクティスに従います。たとえば、Goツールは、指定したモジュールのモジュールパスと、リリース用にモジュールにタグ付けしたバージョン番号を使用して、ユーザーのためにモジュールを見つけてダウンロードします。
ソースと公開の慣習およびベストプラクティスについての詳細は、モジュールソースの管理を参照してください。
モジュールを公開するための手順については、モジュールの公開を参照してください。
パッケージの発見
モジュールを公開し、誰かがGoツールでそれを取得した後、Goパッケージ発見サイトのpkg.go.devに表示されるようになります。そこで、開発者はサイトを検索してモジュールを見つけ、そのドキュメントを読むことができます。
モジュールを使用するには、開発者はモジュールからパッケージをインポートし、go get
コマンドを実行して、そのソースコードをダウンロードしてコンパイルします。
開発者がモジュールを見つけて使用する方法についての詳細は、依存関係の管理を参照してください。
バージョン管理
モジュールを時間とともに改訂し改善する際、各バージョンの安定性と後方互換性を示すように設計されたバージョン番号(セマンティックバージョニングモデルに基づく)を割り当てます。これにより、モジュールを使用する開発者は、モジュールが安定しているかどうか、アップグレードが動作に重大な変更を含む可能性があるかどうかを判断できます。モジュールのバージョン番号は、リポジトリ内のソースにタグを付けることで示します。
メジャーバージョンの更新を開発する方法については、メジャーバージョンの更新の開発を参照してください。
Goモジュールのセマンティックバージョニングモデルの使用方法については、モジュールのバージョン番号付けを参照してください。