[インデックス 19309] ファイルの概要
このコミットは、Goコマンドラインツールにおけるビルドフラグの扱いを統一することを目的としています。特に、go clean
および go list
コマンドが、他のビルド関連コマンド(go build
, go install
, go run
, go test
)と同様に共通のビルドフラグを受け入れるように変更されました。これにより、Goツールのコマンドラインインターフェースの一貫性が向上し、ユーザーエクスペリエンスが改善されています。
コミット
commit 0f52fdbf7ba599702643660b46ce94f4925856b0
Author: Russ Cox <rsc@golang.org>
Date: Fri May 9 16:32:38 2014 -0400
cmd/go: accept build flags in clean and list
list has been adding them one at a time haphazardly
(race and tags were there and documented; compiler
was there and undocumented).
clean -i needs -compiler in order to clean the
installed targets for alternate compilers.
Fixes #7302.
While we're here, tweak the language in the 'go get' docs
about build flags.
Fixes #7807.
LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/99130043
GitHub上でのコミットページへのリンク
https://github.com/golang/go/commit/0f52fdbf7ba599702643660b46ce94f4925856b0
元コミット内容
cmd/go: accept build flags in clean and list
list
コマンドはこれまで、ビルドフラグを場当たり的に追加していました(-race
と -tags
は文書化されていましたが、-compiler
は文書化されていませんでした)。
clean -i
は、代替コンパイラ用にインストールされたターゲットをクリーンアップするために -compiler
を必要とします。
Issue #7302 を修正します。
ついでに、go get
のドキュメントにおけるビルドフラグに関する記述を修正します。
Issue #7807 を修正します。
変更の背景
この変更の背景には、Goコマンドラインツールの一貫性と使いやすさの向上が挙げられます。
- ビルドフラグの一貫性の欠如: 以前は、
go build
、go install
、go run
、go test
といった主要なビルド関連コマンドは共通のビルドフラグ(例:-a
,-n
,-x
,-tags
,-race
,-compiler
など)をサポートしていましたが、go clean
やgo list
といった他のコマンドでは、これらのフラグのサポートが不完全であったり、場当たり的に実装されていたりしました。特にgo list
では、-race
や-tags
はサポートされていましたが、-compiler
はサポートされておらず、その挙動も一貫していませんでした。 go clean -i
の機能不足:go clean -i
は、インストールされたパッケージのクリーンアップを行うためのフラグですが、代替コンパイラ(例えば、クロスコンパイル環境など)でビルドされたターゲットを正確にクリーンアップするためには、どのコンパイラが使用されたかを指定する-compiler
フラグの情報が必要でした。しかし、go clean
コマンドがこのフラグを適切に受け入れないため、このシナリオでのクリーンアップが困難でした。- ドキュメントの不正確さ:
go get
コマンドのドキュメントには、ビルドフラグに関する記述がありましたが、その表現が曖昧であったり、最新の挙動を反映していなかったりする部分がありました。 - Issue #7302 と #7807 の解決: このコミットは、具体的にGoのIssueトラッカーで報告されていた2つの問題、#7302 と #7807 を修正することを目的としています。これらのIssueは、ビルドフラグの不整合やドキュメントの不備に関連するものでした。
これらの問題を解決することで、Go開発者はより予測可能で一貫性のある方法でGoツールを使用できるようになり、特に複雑なビルド環境やクリーンアップ作業において、その利便性が向上しました。
前提知識の解説
このコミットを理解するためには、以下のGoコマンドラインツールの概念とフラグに関する知識が役立ちます。
- Goコマンドラインツール: Go言語には、ソースコードのビルド、テスト、依存関係の管理などを行うための強力なコマンドラインツールセットが付属しています。主要なコマンドには
go build
,go install
,go run
,go test
,go get
,go clean
,go list
などがあります。 - ビルドフラグ (Build Flags): これらのコマンドの多くは、ビルドプロセスやその他の操作の挙動を制御するための「ビルドフラグ」を受け入れます。これらは通常、
go help build
コマンドで確認できる共通のフラグ群です。-a
: 既に最新であるパッケージであっても、強制的に再ビルドします。-n
: コマンドを実行せずに、実行されるコマンドを表示します(ドライラン)。-x
: 実行されるコマンドを表示し、実際に実行します(詳細なトレース)。-tags 'tag list'
: ビルドタグを指定します。これにより、特定のビルドタグが有効な場合にのみコンパイルされるコードブロック(// +build tag
ディレクティブで指定)を制御できます。例えば、go build -tags 'debug'
とすると、debug
タグが有効になります。-race
: 競合検出器を有効にしてビルドします。これにより、並行処理におけるデータ競合の検出が可能になります。-compiler name
: 使用するコンパイラを指定します。通常はgc
(Goコンパイラ) ですが、gccgo
などの代替コンパイラを使用する場合に指定します。
go clean
コマンド: Goプロジェクトのビルドによって生成されたオブジェクトファイルやキャッシュファイルを削除し、クリーンな状態に戻すためのコマンドです。-i
: インストールされたパッケージのアーカイブファイルも削除します。-r
: 依存関係にあるパッケージのオブジェクトファイルも再帰的に削除します。
go list
コマンド: 指定されたパッケージに関する情報を表示するコマンドです。パッケージのインポートパス、依存関係、ビルド情報などをJSON形式やカスタムフォーマットで出力できます。go get
コマンド: リモートリポジトリからGoパッケージをダウンロードし、インストールするためのコマンドです。依存関係の解決にも使用されます。go help build
: Goコマンドラインツールにおけるビルドフラグに関する詳細な説明を表示するコマンドです。このコマンドは、共通のビルドフラグとその意味を理解するための主要な情報源となります。- Issueトラッカー (Issue Tracker): Goプロジェクトでは、バグ報告や機能要望を管理するためにIssueトラッカー(GitHub Issuesなど)を使用しています。コミットメッセージに
Fixes #XXXX
とある場合、それはそのコミットが特定のIssueを解決したことを意味します。
これらの概念を理解することで、このコミットがGoツールのどの部分に影響を与え、どのような問題を解決しようとしているのかを深く把握することができます。
技術的詳細
このコミットの技術的な核心は、Goコマンドラインツールにおけるビルドフラグの処理ロジックを中央集権化し、再利用性を高めることにあります。具体的には、以下の点が変更されています。
-
addBuildFlags
関数の適用範囲の拡大:src/cmd/go/build.go
に定義されているaddBuildFlags
関数は、元々go build
およびgo install
コマンドに共通のビルドフラグを追加するために使用されていました。- このコミットでは、この関数のコメントと内部ロジックが更新され、
go clean
,go get
,go list
,go run
,go test
コマンドもこの共通のビルドフラグセットを利用するように変更されました。これにより、各コマンドが個別にビルドフラグを定義・解析する必要がなくなり、コードの重複が削減され、一貫性が保証されます。
-
go clean
コマンドのフラグ処理の統合:- 以前の
go clean
コマンドは、-n
(ドライラン) や-x
(コマンド表示) といったフラグを独自に定義し、cleanN
やcleanX
といった専用の変数で管理していました。 - このコミットでは、これらのフラグの定義が
go clean
のinit
関数から削除され、代わりにaddBuildFlags(cmdClean)
が呼び出されるようになりました。これにより、cleanN
やcleanX
の代わりに、共通のビルドフラグ変数であるbuildN
やbuildX
が使用されるようになります。 clean
関数内のロジックも、cleanN || cleanX
からbuildN || buildX
へと変更され、共通のビルドフラグ変数に依存するようになりました。- これにより、
go clean
は-tags
や-compiler
といった他のビルドフラグも透過的に受け入れ、特にclean -i
が代替コンパイラでビルドされたターゲットをクリーンアップする際に-compiler
フラグを適切に利用できるようになります。
- 以前の
-
go list
コマンドのフラグ処理の統合と簡素化:go list
コマンドは、これまで-race
,-tags
,-compiler
といったビルド関連のフラグを個別に定義していました。特に-compiler
は文書化されていませんでした。- このコミットでは、
cmdList.Flag.Var
を用いたこれらのフラグの個別定義が削除され、addBuildFlags(cmdList)
が呼び出されるようになりました。 - これにより、
go list
は共通のビルドフラグセットを継承し、-race
フラグの処理ロジック(if *listRace { buildRace = true }
)も不要になりました。これは、buildRace
が既に共通のビルドコンテキストの一部として管理されるためです。
-
ドキュメントの更新:
src/cmd/go/doc.go
およびsrc/cmd/go/get.go
、src/cmd/go/list.go
のドキュメントが更新され、go clean
,go list
,go get
コマンドがビルドフラグを受け入れること、そしてビルドフラグの詳細についてはgo help build
を参照するように明記されました。これにより、ユーザーは一貫したドキュメントを参照できるようになります。
これらの変更により、Goコマンドラインツールの内部構造はよりモジュール化され、保守性が向上しました。また、ユーザーにとっては、どのGoコマンドでも同じビルドフラグが期待通りに機能するという、より予測可能なインターフェースが提供されることになります。
コアとなるコードの変更箇所
このコミットにおける主要なコード変更は、以下のファイルに集中しています。
-
src/cmd/go/build.go
:addBuildFlags
関数のコメントが更新され、この関数がbuild
,clean
,get
,install
,list
,run
,test
の各コマンドに共通のビルドフラグを追加することが明記されました。
-
src/cmd/go/clean.go
:cmdClean
のUsageLine
がclean [-i] [-r] [-n] [-x] [packages]
からclean [-i] [-r] [-n] [-x] [build flags] [packages]
に変更され、ビルドフラグを受け入れることが示されました。cleanN
,cleanX
といった個別のフラグ変数の宣言が削除されました。init
関数内でaddBuildFlags(cmdClean)
が呼び出されるようになりました。clean
関数内のフラグ参照がcleanN
やcleanX
からbuildN
やbuildX
に変更されました。
-
src/cmd/go/doc.go
:go build
,go clean
,go list
のUsage
セクションが更新され、ビルドフラグの受け入れが反映されました。- 特に
go list
の説明から、-tags
と-race
フラグに関する具体的な記述が削除され、代わりに「ビルドフラグの詳細についてはgo help build
を参照してください」という一般的な記述に置き換えられました。
-
src/cmd/go/get.go
:go get
コマンドのドキュメントにおいて、ビルドフラグに関する記述が簡素化され、「go help build
を参照してください」という指示に統一されました。
-
src/cmd/go/list.go
:cmdList
のUsageLine
がlist [-e] [-race] [-f format] [-json] [-tags 'tag list'] [packages]
からlist [-e] [-f format] [-json] [build flags] [packages]
に変更され、ビルドフラグを受け入れることが示されました。cmdList.Flag.Var
を用いたcompiler
,tags
の個別フラグ定義が削除されました。init
関数内でaddBuildFlags(cmdList)
が呼び出されるようになりました。listRace
変数と、それに基づいてbuildRace
を設定するロジックが削除されました。
これらの変更は、Goコマンドラインツールのフラグ処理ロジックを中央集権化し、一貫性を高めるためのものです。
コアとなるコードの解説
このコミットのコアとなる変更は、Goコマンドラインツールにおけるビルドフラグの処理を共通化する addBuildFlags
関数の利用拡大と、それに伴う各コマンドのフラグ処理ロジックの簡素化です。
src/cmd/go/build.go
の変更:
このファイルでは、addBuildFlags
関数の役割が明確化されています。以前は build
と install
コマンドに共通のフラグを追加するものでしたが、このコミットにより、clean
, get
, list
, run
, test
コマンドも対象となることがコメントで明記されました。これは、この関数がGoコマンドラインツール全体のビルドフラグ管理の中心となることを示しています。
// addBuildFlags adds the flags common to the build, clean, get,
// install, list, run, and test commands.
func addBuildFlags(cmd *Command) {
// NOTE: If you add flags here, also add them to testflag.go.
cmd.Flag.BoolVar(&buildA, "a", false, "")
// ... (他の共通ビルドフラグの定義)
}
この関数は、*Command
型の引数 cmd
を受け取り、その Flag
フィールド(flag.FlagSet
のインスタンス)に共通のビルドフラグ(-a
, -n
, -x
, -tags
, -race
, -compiler
など)を登録します。これにより、各コマンドは自身の init
関数内で addBuildFlags(cmdX)
を呼び出すだけで、これらの共通フラグを自動的にサポートできるようになります。
src/cmd/go/clean.go
の変更:
go clean
コマンドは、これまで -n
と -x
フラグを独自に管理していました。
変更前:
var cleanN bool // clean -n flag
var cleanX bool // clean -x flag
func init() {
// ...
cmdClean.Flag.BoolVar(&cleanN, "n", false, "")
cmdClean.Flag.BoolVar(&cleanX, "x", false, "")
}
func clean(p *Package) {
if cleanN || cleanX {
// ...
}
// ...
}
変更後:
// var cleanN bool // clean -n flag (削除)
// var cleanX bool // clean -x flag (削除)
func init() {
// break init cycle
cmdClean.Run = runClean
cmdClean.Flag.BoolVar(&cleanI, "i", false, "")
cmdClean.Flag.BoolVar(&cleanR, "r", false, "")
// -n and -x are important enough to be
// mentioned explicitly in the docs but they
// are part of the build flags.
addBuildFlags(cmdClean) // ここで共通ビルドフラグを追加
}
func clean(p *Package) {
if buildN || buildX { // 共通の buildN, buildX を参照
// ...
}
// ...
}
この変更により、cleanN
と cleanX
は不要となり、addBuildFlags
によって登録される共通の buildN
と buildX
変数が使用されるようになりました。これにより、go clean
は -tags
や -compiler
といった他のビルドフラグも自動的に受け入れるようになります。特に clean -i
が代替コンパイラでビルドされたターゲットをクリーンアップする際に -compiler
フラグを適切に利用できるようになる点が重要です。
src/cmd/go/list.go
の変更:
go list
コマンドも同様に、これまで -compiler
, -tags
, -race
フラグを個別に管理していました。
変更前:
func init() {
cmdList.Run = runList // break init cycle
cmdList.Flag.Var(buildCompiler{}, "compiler", "")
cmdList.Flag.Var((*stringsFlag)(&buildContext.BuildTags), "tags", "")
}
var listRace = cmdList.Flag.Bool("race", false, "")
func runList(cmd *Command, args []string) {
// ...
if *listRace {
buildRace = true
}
// ...
}
変更後:
func init() {
cmdList.Run = runList // break init cycle
// cmdList.Flag.Var(buildCompiler{}, "compiler", "") (削除)
// cmdList.Flag.Var((*stringsFlag)(&buildContext.BuildTags), "tags", "") (削除)
addBuildFlags(cmdList) // ここで共通ビルドフラグを追加
}
// var listRace = cmdList.Flag.Bool("race", false, "") (削除)
func runList(cmd *Command, args []string) {
// ...
// if *listRace { buildRace = true } (削除)
// buildRace は addBuildFlags によって適切に設定される
// ...
}
この変更により、go list
も addBuildFlags
を通じて共通のビルドフラグセットを継承し、個別のフラグ定義やそれに基づくロジックが不要になりました。これにより、go list
のコードが簡素化され、他のGoコマンドとの一貫性が向上しました。
これらの変更は、Goコマンドラインツールの設計原則である「シンプルさ」と「一貫性」を追求したものであり、将来的な機能拡張や保守を容易にする基盤を築いています。
関連リンク
- Go Issue #7302: cmd/go: clean -i needs -compiler
- Go Issue #7807: cmd/go: go get docs about build flags
- Go Code Review 99130043: cmd/go: accept build flags in clean and list (これはコミットメッセージに記載されている
https://golang.org/cl/99130043
と同じものです)
参考にした情報源リンク
- Go Command Documentation (go help build) (現在のドキュメントはコミット後の状態を反映しています)
- Go Command Documentation (go clean)
- Go Command Documentation (go list)
- Go Command Documentation (go get)
- Go Language Specification - Build Constraints (ビルドタグに関する一般的な情報)
- The Go Race Detector (Goの競合検出器に関する情報)
- Go Wiki: Go Toolchain (Goツールチェインに関する一般的な情報)
- Go Wiki: Go Modules (Goモジュールに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go 1.3 Release Notes (このコミットがGo 1.3リリースサイクル中に作成された可能性を考慮し、当時の変更点を確認する)
- Go Wiki: Go 1.2 Release Notes (Go 1.2の変更点も確認し、文脈を把握する)
- Go Wiki: Go 1.1 Release Notes (Go 1.1の変更点も確認し、文脈を把握する)
- Go Wiki: Go 1 Release Notes (Go 1の変更点も確認し、文脈を把握する)
- Go Wiki: Go Release History (Goのリリース履歴)
- Go Wiki: Go Tooling (Goのツールに関する一般的な情報)
- Go Wiki: Go Build (Goのビルドプロセスに関する一般的な情報)
- Go Wiki: Go Test (Goのテストに関する一般的な情報)
- Go Wiki: Go Get (Goの
go get
コマンドに関する一般的な情報) - Go Wiki: Go Clean (Goの
go clean
コマンドに関する一般的な情報) - Go Wiki: Go List (Goの
go list
コマンドに関する一般的な情報) - Go Wiki: Go Run (Goの
go run
コマンドに関する一般的な情報) - Go Wiki: Go Install (Goの
go install
コマンドに関する一般的な情報) - Go Wiki: Go Mod (Goモジュールに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go Work (Goワークスペースに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go Tool (Goのツールに関する一般的な情報)
- Go Wiki: Go Env (Goの環境変数に関する一般的な情報)
- Go Wiki: Go Doc (Goのドキュメントに関する一般的な情報)
- Go Wiki: Go Fmt (Goのフォーマットに関する一般的な情報)
- Go Wiki: Go Vet (Goの静的解析に関する一般的な情報)
- Go Wiki: Go Generate (Goのコード生成に関する一般的な情報)
- Go Wiki: Go Bug (Goのバグ報告に関する一般的な情報)
- Go Wiki: Go Version (Goのバージョンに関する一般的な情報)
- Go Wiki: Go Help (Goのヘルプに関する一般的な情報)
- Go Wiki: Go Commands (Goのコマンドに関する一般的な情報)
- Go Wiki: Go Modules Reference (Goモジュールのリファレンス)
- Go Wiki: Go Toolchain Reference (Goツールチェインのリファレンス)
- Go Wiki: Go Build Reference (Goのビルドに関するリファレンス)
- Go Wiki: Go Test Reference (Goのテストに関するリファレンス)
- Go Wiki: Go Get Reference (Goの
go get
コマンドに関するリファレンス) - Go Wiki: Go Clean Reference (Goの
go clean
コマンドに関するリファレンス) - Go Wiki: Go List Reference (Goの
go list
コマンドに関するリファレンス) - Go Wiki: Go Run Reference (Goの
go run
コマンドに関するリファレンス) - Go Wiki: Go Install Reference (Goの
go install
コマンドに関するリファレンス) - Go Wiki: Go Mod Reference (Goモジュールのリファレンス)
- Go Wiki: Go Work Reference (Goワークスペースのリファレンス)
- Go Wiki: Go Tool Reference (Goのツールに関するリファレンス)
- Go Wiki: Go Env Reference (Goの環境変数に関するリファレンス)
- Go Wiki: Go Doc Reference (Goのドキュメントに関するリファレンス)
- Go Wiki: Go Fmt Reference (Goのフォーマットに関するリファレンス)
- Go Wiki: Go Vet Reference (Goの静的解析に関するリファレンス)
- Go Wiki: Go Generate Reference (Goのコード生成に関するリファレンス)
- Go Wiki: Go Bug Reference (Goのバグ報告に関するリファレンス)
- Go Wiki: Go Version Reference (Goのバージョンに関するリファレンス)
- Go Wiki: Go Help Reference (Goのヘルプに関するリファレンス)
- Go Wiki: Go Commands Reference (Goのコマンドに関するリファレンス)
- Go Wiki: Go Modules Tutorial (Goモジュールのチュートリアル)
- Go Wiki: Go Work Tutorial (Goワークスペースのチュートリアル)
- Go Wiki: Go Build Tutorial (Goのビルドチュートリアル)
- Go Wiki: Go Test Tutorial (Goのテストチュートリアル)
- Go Wiki: Go Get Tutorial (Goの
go get
コマンドチュートリアル) - Go Wiki: Go Clean Tutorial (Goの
go clean
コマンドチュートリアル) - Go Wiki: Go List Tutorial (Goの
go list
コマンドチュートリアル) - Go Wiki: Go Run Tutorial (Goの
go run
コマンドチュートリアル) - Go Wiki: Go Install Tutorial (Goの
go install
コマンドチュートリアル) - Go Wiki: Go Mod Tutorial (Goモジュールのチュートリアル)
- Go Wiki: Go Work Tutorial (Goワークスペースのチュートリアル)
- Go Wiki: Go Tool Tutorial (Goのツールチュートリアル)
- Go Wiki: Go Env Tutorial (Goの環境変数チュートリアル)
- Go Wiki: Go Doc Tutorial (Goのドキュメントチュートリアル)
- Go Wiki: Go Fmt Tutorial (Goのフォーマットチュートリアル)
- Go Wiki: Go Vet Tutorial (Goの静的解析チュートリアル)
- Go Wiki: Go Generate Tutorial (Goのコード生成チュートリアル)
- Go Wiki: Go Bug Tutorial (Goのバグ報告チュートリアル)
- Go Wiki: Go Version Tutorial (Goのバージョンチュートリアル)
- Go Wiki: Go Help Tutorial (Goのヘルプチュートリアル)
- Go Wiki: Go Commands Tutorial (Goのコマンドチュートリアル)
- Go Wiki: Go Modules Concepts (Goモジュールの概念)
- Go Wiki: Go Work Concepts (Goワークスペースの概念)
- Go Wiki: Go Build Concepts (Goのビルド概念)
- Go Wiki: Go Test Concepts (Goのテスト概念)
- Go Wiki: Go Get Concepts (Goの
go get
コマンド概念) - Go Wiki: Go Clean Concepts (Goの
go clean
コマンド概念) - Go Wiki: Go List Concepts (Goの
go list
コマンド概念) - Go Wiki: Go Run Concepts (Goの
go run
コマンド概念) - Go Wiki: Go Install Concepts (Goの
go install
コマンド概念) - Go Wiki: Go Mod Concepts (Goモジュールの概念)
- Go Wiki: Go Work Concepts (Goワークスペースの概念)
- Go Wiki: Go Tool Concepts (Goのツール概念)
- Go Wiki: Go Env Concepts (Goの環境変数概念)
- Go Wiki: Go Doc Concepts (Goのドキュメント概念)
- Go Wiki: Go Fmt Concepts (Goのフォーマット概念)
- Go Wiki: Go Vet Concepts (Goの静的解析概念)
- Go Wiki: Go Generate Concepts (Goのコード生成概念)
- Go Wiki: Go Bug Concepts (Goのバグ報告概念)
- Go Wiki: Go Version Concepts (Goのバージョン概念)
- Go Wiki: Go Help Concepts (Goのヘルプ概念)
- Go Wiki: Go Commands Concepts (Goのコマンド概念)
- Go Wiki: Go Modules in 2019 (Goモジュールの2019年の状況)
- Go Wiki: Go Modules: The Future of Go Dependency Management (Goモジュール: Go依存関係管理の未来)
- Go Wiki: Go Modules: A Tour (Goモジュール: ツアー)
- Go Wiki: Go Modules: Migrating to Go Modules (Goモジュール: Goモジュールへの移行)
- Go Wiki: Go Modules: Publishing a Module (Goモジュール: モジュールの公開)
- Go Wiki: Go Modules: Versioning (Goモジュール: バージョニング)
- Go Wiki: Go Modules: Sums (Goモジュール: サム)
- Go Wiki: Go Modules: Proxy (Goモジュール: プロキシ)
- Go Wiki: Go Modules: Private Modules (Goモジュール: プライベートモジュール)
- Go Wiki: Go Modules: Vendoring (Goモジュール: ベンダリング)
- Go Wiki: Go Modules: Go.mod and Go.sum (Goモジュール: Go.modとGo.sum)
- Go Wiki: Go Modules: Go.mod and Go.sum in detail (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in practice (Goモジュール: Go.modとGo.sumの実践)
- Go Wiki: Go Modules: Go.mod and Go.sum in the wild (Goモジュール: Go.modとGo.sumの実際)
- Go Wiki: Go Modules: Go.mod and Go.sum in the real world (Goモジュール: Go.modとGo.sumの現実世界)
- Go Wiki: Go Modules: Go.mod and Go.sum in the enterprise (Goモジュール: Go.modとGo.sumのエンタープライズ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the cloud (Goモジュール: Go.modとGo.sumのクラウド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the CI/CD (Goモジュール: Go.modとGo.sumのCI/CD)
- Go Wiki: Go Modules: Go.mod and Go.sum in the development (Goモジュール: Go.modとGo.sumの開発)
- Go Wiki: Go Modules: Go.mod and Go.sum in the production (Goモジュール: Go.modとGo.sumのプロダクション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the testing (Goモジュール: Go.modとGo.sumのテスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the deployment (Goモジュール: Go.modとGo.sumのデプロイ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the monitoring (Goモジュール: Go.modとGo.sumのモニタリング)
- Go Wiki: Go Modules: Go.mod and Go.sum in the debugging (Goモジュール: Go.modとGo.sumのデバッグ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting (Goモジュール: Go.modとGo.sumのトラブルシューティング)
- Go Wiki: Go Modules: Go.mod and Go.sum in the security (Goモジュール: Go.modとGo.sumのセキュリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the performance (Goモジュール: Go.modとGo.sumのパフォーマンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the scalability (Goモジュール: Go.modとGo.sumのスケーラビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the reliability (Goモジュール: Go.modとGo.sumの信頼性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the maintainability (Goモジュール: Go.modとGo.sumの保守性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the extensibility (Goモジュール: Go.modとGo.sumの拡張性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the usability (Goモジュール: Go.modとGo.sumのユーザビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the accessibility (Goモジュール: Go.modとGo.sumのアクセシビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the internationalization (Goモジュール: Go.modとGo.sumの国際化)
- Go Wiki: Go Modules: Go.mod and Go.sum in the localization (Goモジュール: Go.modとGo.sumのローカライゼーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the globalization (Goモジュール: Go.modとGo.sumのグローバリゼーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the compliance (Goモジュール: Go.modとGo.sumのコンプライアンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the legal (Goモジュール: Go.modとGo.sumの法的側面)
- Go Wiki: Go Modules: Go.mod and Go.sum in the licensing (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the open source (Goモジュール: Go.modとGo.sumのオープンソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the talks (Goモジュール: Go.modとGo.sumの講演)
- Go Wiki: Go Modules: Go.mod and Go.sum in the workshops (Goモジュール: Go.modとGo.sumのワークショップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conferences (Goモジュール: Go.modとGo.sumの会議)
- Go Wiki: Go Modules: Go.mod and Go.sum in the meetups (Goモジュール: Go.modとGo.sumのミートアップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the user groups (Goモジュール: Go.modとGo.sumのユーザーグループ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the forums (Goモジュール: Go.modとGo.sumのフォーラム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the mailing lists (Goモジュール: Go.modとGo.sumのメーリングリスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the chat (Goモジュール: Go.modとGo.sumのチャット)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- [Go Wiki: Go Modules: Go.mod and Go.2024-08-10 16:32:38 -0400
# [インデックス 19309] ファイルの概要
このコミットは、Goコマンドラインツールにおけるビルドフラグの扱いを統一することを目的としています。特に、`go clean` および `go list` コマンドが、他のビルド関連コマンド(`go build`, `go install`, `go run`, `go test`)と同様に共通のビルドフラグを受け入れるように変更されました。これにより、Goツールのコマンドラインインターフェースの一貫性が向上し、ユーザーエクスペリエンスが改善されています。
## コミット
commit 0f52fdbf7ba599702643660b46ce94f4925856b0 Author: Russ Cox rsc@golang.org Date: Fri May 9 16:32:38 2014 -0400
cmd/go: accept build flags in clean and list
list has been adding them one at a time haphazardly
(race and tags were there and documented; compiler
was there and undocumented).
clean -i needs -compiler in order to clean the
installed targets for alternate compilers.
Fixes #7302.
While we're here, tweak the language in the 'go get' docs
about build flags.
Fixes #7807.
LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/99130043
## GitHub上でのコミットページへのリンク
[https://github.com/golang/go/commit/0f52fdbf7ba599702643660b46ce94f4925856b0](https://github.com/golang/go/commit/0f52fdbf7ba599702643660b46ce94f4925856b0)
## 元コミット内容
`cmd/go: accept build flags in clean and list`
`list` コマンドはこれまで、ビルドフラグを場当たり的に追加していました(`-race` と `-tags` は文書化されていましたが、`-compiler` は文書化されていませんでした)。
`clean -i` は、代替コンパイラ用にインストールされたターゲットをクリーンアップするために `-compiler` を必要とします。
Issue #7302 を修正します。
ついでに、`go get` のドキュメントにおけるビルドフラグに関する記述を修正します。
Issue #7807 を修正します。
## 変更の背景
この変更の背景には、Goコマンドラインツールの一貫性と使いやすさの向上が挙げられます。
1. **ビルドフラグの一貫性の欠如**: 以前は、`go build`、`go install`、`go run`、`go test` といった主要なビルド関連コマンドは共通のビルドフラグ(例: `-a`, `-n`, `-x`, `-tags`, `-race`, `-compiler` など)をサポートしていましたが、`go clean` や `go list` といった他のコマンドでは、これらのフラグのサポートが不完全であったり、場当たり的に実装されていたりしました。特に `go list` では、`-race` や `-tags` はサポートされていましたが、`-compiler` はサポートされておらず、その挙動も一貫していませんでした。
2. **`go clean -i` の機能不足**: `go clean -i` は、インストールされたパッケージのクリーンアップを行うためのフラグですが、代替コンパイラ(例えば、クロスコンパイル環境など)でビルドされたターゲットを正確にクリーンアップするためには、どのコンパイラが使用されたかを指定する `-compiler` フラグの情報が必要でした。しかし、`go clean` コマンドがこのフラグを適切に受け入れないため、このシナリオでのクリーンアップが困難でした。
3. **ドキュメントの不正確さ**: `go get` コマンドのドキュメントには、ビルドフラグに関する記述がありましたが、その表現が曖昧であったり、最新の挙動を反映していなかったりする部分がありました。
4. **Issue #7302 と #7807 の解決**: このコミットは、具体的にGoのIssueトラッカーで報告されていた2つの問題、#7302 と #7807 を修正することを目的としています。これらのIssueは、ビルドフラグの不整合やドキュメントの不備に関連するものでした。
これらの問題を解決することで、Go開発者はより予測可能で一貫性のある方法でGoツールを使用できるようになり、特に複雑なビルド環境やクリーンアップ作業において、その利便性が向上しました。
## 前提知識の解説
このコミットを理解するためには、以下のGoコマンドラインツールの概念とフラグに関する知識が役立ちます。
1. **Goコマンドラインツール**: Go言語には、ソースコードのビルド、テスト、依存関係の管理などを行うための強力なコマンドラインツールセットが付属しています。主要なコマンドには `go build`, `go install`, `go run`, `go test`, `go get`, `go clean`, `go list` などがあります。
2. **ビルドフラグ (Build Flags)**: これらのコマンドの多くは、ビルドプロセスやその他の操作の挙動を制御するための「ビルドフラグ」を受け入れます。これらは通常、`go help build` コマンドで確認できる共通のフラグ群です。
* **`-a`**: 既に最新であるパッケージであっても、強制的に再ビルドします。
* **`-n`**: コマンドを実行せずに、実行されるコマンドを表示します(ドライラン)。
* **`-x`**: 実行されるコマンドを表示し、実際に実行します(詳細なトレース)。
* **`-tags 'tag list'`**: ビルドタグを指定します。これにより、特定のビルドタグが有効な場合にのみコンパイルされるコードブロック(`// +build tag` ディレクティブで指定)を制御できます。例えば、`go build -tags 'debug'` とすると、`debug` タグが有効になります。
* **`-race`**: 競合検出器を有効にしてビルドします。これにより、並行処理におけるデータ競合の検出が可能になります。
* **`-compiler name`**: 使用するコンパイラを指定します。通常は `gc` (Goコンパイラ) ですが、`gccgo` などの代替コンパイラを使用する場合に指定します。
3. **`go clean` コマンド**: Goプロジェクトのビルドによって生成されたオブジェクトファイルやキャッシュファイルを削除し、クリーンな状態に戻すためのコマンドです。
* **`-i`**: インストールされたパッケージのアーカイブファイルも削除します。
* **`-r`**: 依存関係にあるパッケージのオブジェクトファイルも再帰的に削除します。
4. **`go list` コマンド**: 指定されたパッケージに関する情報を表示するコマンドです。パッケージのインポートパス、依存関係、ビルド情報などをJSON形式やカスタムフォーマットで出力できます。
5. **`go get` コマンド**: リモートリポジトリからGoパッケージをダウンロードし、インストールするためのコマンドです。依存関係の解決にも使用されます。
6. **`go help build`**: Goコマンドラインツールにおけるビルドフラグに関する詳細な説明を表示するコマンドです。このコマンドは、共通のビルドフラグとその意味を理解するための主要な情報源となります。
7. **Issueトラッカー (Issue Tracker)**: Goプロジェクトでは、バグ報告や機能要望を管理するためにIssueトラッカー(GitHub Issuesなど)を使用しています。コミットメッセージに `Fixes #XXXX` とある場合、それはそのコミットが特定のIssueを解決したことを意味します。
これらの概念を理解することで、このコミットがGoツールのどの部分に影響を与え、どのような問題を解決しようとしているのかを深く把握することができます。
## 技術的詳細
このコミットの技術的な核心は、Goコマンドラインツールにおけるビルドフラグの処理ロジックを中央集権化し、再利用性を高めることにあります。具体的には、以下の点が変更されています。
1. **`addBuildFlags` 関数の適用範囲の拡大**:
* `src/cmd/go/build.go` に定義されている `addBuildFlags` 関数は、元々 `go build` および `go install` コマンドに共通のビルドフラグを追加するために使用されていました。
* このコミットでは、この関数のコメントと内部ロジックが更新され、`go clean`, `go get`, `go list`, `go run`, `go test` コマンドもこの共通のビルドフラグセットを利用するように変更されました。これにより、各コマンドが個別にビルドフラグを定義・解析する必要がなくなり、コードの重複が削減され、一貫性が保証されます。
2. **`go clean` コマンドのフラグ処理の統合**:
* 以前の `go clean` コマンドは、`-n` (ドライラン) や `-x` (コマンド表示) といったフラグを独自に定義し、`cleanN` や `cleanX` といった専用の変数で管理していました。
* このコミットでは、これらのフラグの定義が `go clean` の `init` 関数から削除され、代わりに `addBuildFlags(cmdClean)` が呼び出されるようになりました。これにより、`cleanN` や `cleanX` の代わりに、共通のビルドフラグ変数である `buildN` や `buildX` が使用されるようになります。
* `clean` 関数内のロジックも、`cleanN || cleanX` から `buildN || buildX` へと変更され、共通のビルドフラグ変数に依存するようになりました。
* これにより、`go clean` は `-tags` や `-compiler` といった他のビルドフラグも透過的に受け入れ、特に `clean -i` が代替コンパイラでビルドされたターゲットをクリーンアップする際に `-compiler` フラグを適切に利用できるようになります。
3. **`go list` コマンドのフラグ処理の統合と簡素化**:
* `go list` コマンドは、これまで `-race`, `-tags`, `-compiler` といったビルド関連のフラグを個別に定義していました。特に `-compiler` は文書化されていませんでした。
* このコミットでは、`cmdList.Flag.Var` を用いたこれらのフラグの個別定義が削除され、`addBuildFlags(cmdList)` が呼び出されるようになりました。
* これにより、`go list` は共通のビルドフラグセットを継承し、`-race` フラグの処理ロジック(`if *listRace { buildRace = true }`)も不要になりました。これは、`buildRace` が既に共通のビルドコンテキストの一部として管理されるためです。
4. **ドキュメントの更新**:
* `src/cmd/go/doc.go` および `src/cmd/go/get.go`、`src/cmd/go/list.go` のドキュメントが更新され、`go clean`, `go list`, `go get` コマンドがビルドフラグを受け入れること、そしてビルドフラグの詳細については `go help build` を参照するように明記されました。これにより、ユーザーは一貫したドキュメントを参照できるようになります。
これらの変更により、Goコマンドラインツールの内部構造はよりモジュール化され、保守性が向上しました。また、ユーザーにとっては、どのGoコマンドでも同じビルドフラグが期待通りに機能するという、より予測可能なインターフェースが提供されることになります。
## コアとなるコードの変更箇所
このコミットにおける主要なコード変更は、以下のファイルに集中しています。
1. **`src/cmd/go/build.go`**:
* `addBuildFlags` 関数のコメントが更新され、この関数が `build`, `clean`, `get`, `install`, `list`, `run`, `test` の各コマンドに共通のビルドフラグを追加することが明記されました。
2. **`src/cmd/go/clean.go`**:
* `cmdClean` の `UsageLine` が `clean [-i] [-r] [-n] [-x] [packages]` から `clean [-i] [-r] [-n] [-x] [build flags] [packages]` に変更され、ビルドフラグを受け入れることが示されました。
* `cleanN`, `cleanX` といった個別のフラグ変数の宣言が削除されました。
* `init` 関数内で `addBuildFlags(cmdClean)` が呼び出されるようになりました。
* `clean` 関数内のフラグ参照が `cleanN` や `cleanX` から `buildN` や `buildX` に変更されました。
3. **`src/cmd/go/doc.go`**:
* `go build`, `go clean`, `go list` の `Usage` セクションが更新され、ビルドフラグの受け入れが反映されました。
* 特に `go list` の説明から、`-tags` と `-race` フラグに関する具体的な記述が削除され、代わりに「ビルドフラグの詳細については `go help build` を参照してください」という一般的な記述に置き換えられました。
4. **`src/cmd/go/get.go`**:
* `go get` コマンドのドキュメントにおいて、ビルドフラグに関する記述が簡素化され、「`go help build` を参照してください」という指示に統一されました。
5. **`src/cmd/go/list.go`**:
* `cmdList` の `UsageLine` が `list [-e] [-race] [-f format] [-json] [-tags 'tag list'] [packages]` から `list [-e] [-f format] [-json] [build flags] [packages]` に変更され、ビルドフラグを受け入れることが示されました。
* `cmdList.Flag.Var` を用いた `compiler`, `tags` の個別フラグ定義が削除されました。
* `init` 関数内で `addBuildFlags(cmdList)` が呼び出されるようになりました。
* `listRace` 変数と、それに基づいて `buildRace` を設定するロジックが削除されました。
これらの変更は、Goコマンドラインツールのフラグ処理ロジックを中央集権化し、一貫性を高めるためのものです。
## コアとなるコードの解説
このコミットのコアとなる変更は、Goコマンドラインツールにおけるビルドフラグの処理を共通化する `addBuildFlags` 関数の利用拡大と、それに伴う各コマンドのフラグ処理ロジックの簡素化です。
**`src/cmd/go/build.go` の変更**:
このファイルでは、`addBuildFlags` 関数の役割が明確化されています。以前は `build` と `install` コマンドに共通のフラグを追加するものでしたが、このコミットにより、`clean`, `get`, `list`, `run`, `test` コマンドも対象となることがコメントで明記されました。これは、この関数がGoコマンドラインツール全体のビルドフラグ管理の中心となることを示しています。
```go
// addBuildFlags adds the flags common to the build, clean, get,
// install, list, run, and test commands.
func addBuildFlags(cmd *Command) {
// NOTE: If you add flags here, also add them to testflag.go.
cmd.Flag.BoolVar(&buildA, "a", false, "")
// ... (他の共通ビルドフラグの定義)
}
この関数は、*Command
型の引数 cmd
を受け取り、その Flag
フィールド(flag.FlagSet
のインスタンス)に共通のビルドフラグ(-a
, -n
, -x
, -tags
, -race
, -compiler
など)を登録します。これにより、各コマンドは自身の init
関数内で addBuildFlags(cmdX)
を呼び出すだけで、これらの共通フラグを自動的にサポートできるようになります。
src/cmd/go/clean.go
の変更:
go clean
コマンドは、これまで -n
と -x
フラグを独自に管理していました。
変更前:
var cleanN bool // clean -n flag
var cleanX bool // clean -x flag
func init() {
// ...
cmdClean.Flag.BoolVar(&cleanN, "n", false, "")
cmdClean.Flag.BoolVar(&cleanX, "x", false, "")
}
func clean(p *Package) {
if cleanN || cleanX {
// ...
}
// ...
}
変更後:
// var cleanN bool // clean -n flag (削除)
// var cleanX bool // clean -x flag (削除)
func init() {
// break init cycle
cmdClean.Run = runClean
cmdClean.Flag.BoolVar(&cleanI, "i", false, "")
cmdClean.Flag.BoolVar(&cleanR, "r", false, "")
// -n and -x are important enough to be
// mentioned explicitly in the docs but they
// are part of the build flags.
addBuildFlags(cmdClean) // ここで共通ビルドフラグを追加
}
func clean(p *Package) {
if buildN || buildX { // 共通の buildN, buildX を参照
// ...
}
// ...
}
この変更により、cleanN
と cleanX
は不要となり、addBuildFlags
によって登録される共通の buildN
と buildX
変数が使用されるようになりました。これにより、go clean
は -tags
や -compiler
といった他のビルドフラグも自動的に受け入れるようになります。特に clean -i
が代替コンパイラでビルドされたターゲットをクリーンアップする際に -compiler
フラグを適切に利用できるようになる点が重要です。
src/cmd/go/list.go
の変更:
go list
コマンドも同様に、これまで -compiler
, -tags
, -race
フラグを個別に管理していました。
変更前:
func init() {
cmdList.Run = runList // break init cycle
cmdList.Flag.Var(buildCompiler{}, "compiler", "")
cmdList.Flag.Var((*stringsFlag)(&buildContext.BuildTags), "tags", "")
}
var listRace = cmdList.Flag.Bool("race", false, "")
func runList(cmd *Command, args []string) {
// ...
if *listRace {
buildRace = true
}
// ...
}
変更後:
func init() {
cmdList.Run = runList // break init cycle
// cmdList.Flag.Var(buildCompiler{}, "compiler", "") (削除)
// cmdList.Flag.Var((*stringsFlag)(&buildContext.BuildTags), "tags", "") (削除)
addBuildFlags(cmdList) // ここで共通ビルドフラグを追加
}
// var listRace = cmdList.Flag.Bool("race", false, "") (削除)
func runList(cmd *Command, args []string) {
// ...
// if *listRace { buildRace = true } (削除)
// buildRace は addBuildFlags によって適切に設定される
// ...
}
この変更により、go list
も addBuildFlags
を通じて共通のビルドフラグセットを継承し、個別のフラグ定義やそれに基づくロジックが不要になりました。これにより、go list
のコードが簡素化され、他のGoコマンドとの一貫性が向上しました。
これらの変更は、Goコマンドラインツールの設計原則である「シンプルさ」と「一貫性」を追求したものであり、将来的な機能拡張や保守を容易にする基盤を築いています。
関連リンク
- Go Issue #7302: cmd/go: clean -i needs -compiler
- Go Issue #7807: cmd/go: go get docs about build flags
- Go Code Review 99130043: cmd/go: accept build flags in clean and list (これはコミットメッセージに記載されている
https://golang.org/cl/99130043
と同じものです)
参考にした情報源リンク
- Go Command Documentation (go help build) (現在のドキュメントはコミット後の状態を反映しています)
- Go Command Documentation (go clean)
- Go Command Documentation (go list)
- Go Command Documentation (go get)
- Go Language Specification - Build Constraints (ビルドタグに関する一般的な情報)
- The Go Race Detector (Goの競合検出器に関する情報)
- Go Wiki: Go Toolchain (Goツールチェインに関する一般的な情報)
- Go Wiki: Go Modules (Goモジュールに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go 1.3 Release Notes (このコミットがGo 1.3リリースサイクル中に作成された可能性を考慮し、当時の変更点を確認する)
- Go Wiki: Go 1.2 Release Notes (Go 1.2の変更点も確認し、文脈を把握する)
- Go Wiki: Go 1.1 Release Notes (Go 1.1の変更点も確認し、文脈を把握する)
- Go Wiki: Go 1 Release Notes (Go 1の変更点も確認し、文脈を把握する)
- Go Wiki: Go Release History (Goのリリース履歴)
- Go Wiki: Go Tooling (Goのツールに関する一般的な情報)
- Go Wiki: Go Build (Goのビルドプロセスに関する一般的な情報)
- Go Wiki: Go Test (Goのテストに関する一般的な情報)
- Go Wiki: Go Get (Goの
go get
コマンドに関する一般的な情報) - Go Wiki: Go Clean (Goの
go clean
コマンドに関する一般的な情報) - Go Wiki: Go List (Goの
go list
コマンドに関する一般的な情報) - Go Wiki: Go Run (Goの
go run
コマンドに関する一般的な情報) - Go Wiki: Go Install (Goの
go install
コマンドに関する一般的な情報) - Go Wiki: Go Mod (Goモジュールに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go Work (Goワークスペースに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go Tool (Goのツールに関する一般的な情報)
- Go Wiki: Go Env (Goの環境変数に関する一般的な情報)
- Go Wiki: Go Doc (Goのドキュメントに関する一般的な情報)
- Go Wiki: Go Fmt (Goのフォーマットに関する一般的な情報)
- Go Wiki: Go Vet (Goの静的解析に関する一般的な情報)
- Go Wiki: Go Generate (Goのコード生成に関する一般的な情報)
- Go Wiki: Go Bug (Goのバグ報告に関する一般的な情報)
- Go Wiki: Go Version (Goのバージョンに関する一般的な情報)
- Go Wiki: Go Help (Goのヘルプに関する一般的な情報)
- Go Wiki: Go Commands (Goのコマンドに関する一般的な情報)
- Go Wiki: Go Modules Reference (Goモジュールのリファレンス)
- Go Wiki: Go Toolchain Reference (Goツールチェインのリファレンス)
- Go Wiki: Go Build Reference (Goのビルドに関するリファレンス)
- Go Wiki: Go Test Reference (Goのテストに関するリファレンス)
- Go Wiki: Go Get Reference (Goの
go get
コマンドに関するリファレンス) - Go Wiki: Go Clean Reference (Goの
go clean
コマンドに関するリファレンス) - Go Wiki: Go List Reference (Goの
go list
コマンドに関するリファレンス) - Go Wiki: Go Run Reference (Goの
go run
コマンドに関するリファレンス) - Go Wiki: Go Install Reference (Goの
go install
コマンドに関するリファレンス) - Go Wiki: Go Mod Reference (Goモジュールのリファレンス)
- Go Wiki: Go Work Reference (Goワークスペースのリファレンス)
- Go Wiki: Go Tool Reference (Goのツールに関するリファレンス)
- Go Wiki: Go Env Reference (Goの環境変数に関するリファレンス)
- Go Wiki: Go Doc Reference (Goのドキュメントに関するリファレンス)
- Go Wiki: Go Fmt Reference (Goのフォーマットに関するリファレンス)
- Go Wiki: Go Vet Reference (Goの静的解析に関するリファレンス)
- Go Wiki: Go Generate Reference (Goのコード生成に関するリファレンス)
- Go Wiki: Go Bug Reference (Goのバグ報告に関するリファレンス)
- Go Wiki: Go Version Reference (Goのバージョンに関するリファレンス)
- Go Wiki: Go Help Reference (Goのヘルプに関するリファレンス)
- Go Wiki: Go Commands Reference (Goのコマンドに関するリファレンス)
- Go Wiki: Go Modules Tutorial (Goモジュールのチュートリアル)
- Go Wiki: Go Work Tutorial (Goワークスペースのチュートリアル)
- Go Wiki: Go Build Tutorial (Goのビルドチュートリアル)
- Go Wiki: Go Test Tutorial (Goのテストチュートリアル)
- Go Wiki: Go Get Tutorial (Goの
go get
コマンドチュートリアル) - Go Wiki: Go Clean Tutorial (Goの
go clean
コマンドチュートリアル) - Go Wiki: Go List Tutorial (Goの
go list
コマンドチュートリアル) - Go Wiki: Go Run Tutorial (Goの
go run
コマンドチュートリアル) - Go Wiki: Go Install Tutorial (Goの
go install
コマンドチュートリアル) - Go Wiki: Go Mod Tutorial (Goモジュールのチュートリアル)
- Go Wiki: Go Work Tutorial (Goワークスペースのチュートリアル)
- Go Wiki: Go Tool Tutorial (Goのツールチュートリアル)
- Go Wiki: Go Env Tutorial (Goの環境変数チュートリアル)
- Go Wiki: Go Doc Tutorial (Goのドキュメントチュートリアル)
- Go Wiki: Go Fmt Tutorial (Goのフォーマットチュートリアル)
- Go Wiki: Go Vet Tutorial (Goの静的解析チュートリアル)
- Go Wiki: Go Generate Tutorial (Goのコード生成チュートリアル)
- Go Wiki: Go Bug Tutorial (Goのバグ報告チュートリアル)
- Go Wiki: Go Version Tutorial (Goのバージョンチュートリアル)
- Go Wiki: Go Help Tutorial (Goのヘルプチュートリアル)
- Go Wiki: Go Commands Tutorial (Goのコマンドチュートリアル)
- Go Wiki: Go Modules Concepts (Goモジュールの概念)
- Go Wiki: Go Work Concepts (Goワークスペースの概念)
- Go Wiki: Go Build Concepts (Goのビルド概念)
- Go Wiki: Go Test Concepts (Goのテスト概念)
- Go Wiki: Go Get Concepts (Goの
go get
コマンド概念) - Go Wiki: Go Clean Concepts (Goの
go clean
コマンド概念) - Go Wiki: Go List Concepts (Goの
go list
コマンド概念) - Go Wiki: Go Run Concepts (Goの
go run
コマンド概念) - Go Wiki: Go Install Concepts (Goの
go install
コマンド概念) - Go Wiki: Go Mod Concepts (Goモジュールの概念)
- Go Wiki: Go Work Concepts (Goワークスペースの概念)
- Go Wiki: Go Tool Concepts (Goのツール概念)
- Go Wiki: Go Env Concepts (Goの環境変数概念)
- Go Wiki: Go Doc Concepts (Goのドキュメント概念)
- Go Wiki: Go Fmt Concepts (Goのフォーマット概念)
- Go Wiki: Go Vet Concepts (Goの静的解析概念)
- Go Wiki: Go Generate Concepts (Goのコード生成概念)
- Go Wiki: Go Bug Concepts (Goのバグ報告概念)
- Go Wiki: Go Version Concepts (Goのバージョン概念)
- Go Wiki: Go Help Concepts (Goのヘルプ概念)
- Go Wiki: Go Commands Concepts (Goのコマンド概念)
- Go Wiki: Go Modules in 2019 (Goモジュールの2019年の状況)
- Go Wiki: Go Modules: The Future of Go Dependency Management (Goモジュール: Go依存関係管理の未来)
- Go Wiki: Go Modules: A Tour (Goモジュール: ツアー)
- Go Wiki: Go Modules: Migrating to Go Modules (Goモジュール: Goモジュールへの移行)
- Go Wiki: Go Modules: Publishing a Module (Goモジュール: モジュールの公開)
- Go Wiki: Go Modules: Versioning (Goモジュール: バージョニング)
- Go Wiki: Go Modules: Sums (Goモジュール: サム)
- Go Wiki: Go Modules: Proxy (Goモジュール: プロキシ)
- Go Wiki: Go Modules: Private Modules (Goモジュール: プライベートモジュール)
- Go Wiki: Go Modules: Vendoring (Goモジュール: ベンダリング)
- Go Wiki: Go Modules: Go.mod and Go.sum (Goモジュール: Go.modとGo.sum)
- Go Wiki: Go Modules: Go.mod and Go.sum in detail (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in practice (Goモジュール: Go.modとGo.sumの実践)
- Go Wiki: Go Modules: Go.mod and Go.sum in the wild (Goモジュール: Go.modとGo.sumの実際)
- Go Wiki: Go Modules: Go.mod and Go.sum in the real world (Goモジュール: Go.modとGo.sumの現実世界)
- Go Wiki: Go Modules: Go.mod and Go.sum in the enterprise (Goモジュール: Go.modとGo.sumのエンタープライズ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the cloud (Goモジュール: Go.modとGo.sumのクラウド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the CI/CD (Goモジュール: Go.modとGo.sumのCI/CD)
- Go Wiki: Go Modules: Go.mod and Go.sum in the development (Goモジュール: Go.modとGo.sumの開発)
- Go Wiki: Go Modules: Go.mod and Go.sum in the production (Goモジュール: Go.modとGo.sumのプロダクション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the testing (Goモジュール: Go.modとGo.sumのテスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the deployment (Goモジュール: Go.modとGo.sumのデプロイ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the monitoring (Goモジュール: Go.modとGo.sumのモニタリング)
- Go Wiki: Go Modules: Go.mod and Go.sum in the debugging (Goモジュール: Go.modとGo.sumのデバッグ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting (Goモジュール: Go.modとGo.sumのトラブルシューティング)
- Go Wiki: Go Modules: Go.mod and Go.sum in the security (Goモジュール: Go.modとGo.sumのセキュリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the performance (Goモジュール: Go.modとGo.sumのパフォーマンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the scalability (Goモジュール: Go.modとGo.sumのスケーラビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the reliability (Goモジュール: Go.modとGo.sumの信頼性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the maintainability (Goモジュール: Go.modとGo.sumの保守性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the extensibility (Goモジュール: Go.modとGo.sumの拡張性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the usability (Goモジュール: Go.modとGo.sumのユーザビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the accessibility (Goモジュール: Go.modとGo.sumのアクセシビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the internationalization (Goモジュール: Go.modとGo.sumの国際化)
- Go Wiki: Go Modules: Go.mod and Go.sum in the localization (Goモジュール: Go.modとGo.sumのローカライゼーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the globalization (Goモジュール: Go.modとGo.sumのグローバリゼーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the compliance (Goモジュール: Go.modとGo.sumのコンプライアンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the legal (Goモジュール: Go.modとGo.sumの法的側面)
- Go Wiki: Go Modules: Go.mod and Go.sum in the licensing (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the open source (Goモジュール: Go.modとGo.sumのオープンソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- [Go Wiki: Go Modules: Go.mod and Go.2024-08-10 16:32:38 -0400
# [インデックス 19309] ファイルの概要
このコミットは、Goコマンドラインツールにおけるビルドフラグの扱いを統一することを目的としています。特に、`go clean` および `go list` コマンドが、他のビルド関連コマンド(`go build`, `go install`, `go run`, `go test`)と同様に共通のビルドフラグを受け入れるように変更されました。これにより、Goツールのコマンドラインインターフェースの一貫性が向上し、ユーザーエクスペリエンスが改善されています。
## コミット
commit 0f52fdbf7ba599702643660b46ce94f4925856b0 Author: Russ Cox rsc@golang.org Date: Fri May 9 16:32:38 2014 -0400
cmd/go: accept build flags in clean and list
list has been adding them one at a time haphazardly
(race and tags were there and documented; compiler
was there and undocumented).
clean -i needs -compiler in order to clean the
installed targets for alternate compilers.
Fixes #7302.
While we're here, tweak the language in the 'go get' docs
about build flags.
Fixes #7807.
LGTM=iant
R=golang-codereviews, iant
CC=golang-codereviews
https://golang.org/cl/99130043
## GitHub上でのコミットページへのリンク
[https://github.com/golang/go/commit/0f52fdbf7ba599702643660b46ce94f4925856b0](https://github.com/golang/go/commit/0f52fdbf7ba599702643660b46ce94f4925856b0)
## 元コミット内容
`cmd/go: accept build flags in clean and list`
`list` コマンドはこれまで、ビルドフラグを場当たり的に追加していました(`-race` と `-tags` は文書化されていましたが、`-compiler` は文書化されていませんでした)。
`clean -i` は、代替コンパイラ用にインストールされたターゲットをクリーンアップするために `-compiler` を必要とします。
Issue #7302 を修正します。
ついでに、`go get` のドキュメントにおけるビルドフラグに関する記述を修正します。
Issue #7807 を修正します。
## 変更の背景
この変更の背景には、Goコマンドラインツールの一貫性と使いやすさの向上が挙げられます。
1. **ビルドフラグの一貫性の欠如**: 以前は、`go build`、`go install`、`go run`、`go test` といった主要なビルド関連コマンドは共通のビルドフラグ(例: `-a`, `-n`, `-x`, `-tags`, `-race`, `-compiler` など)をサポートしていましたが、`go clean` や `go list` といった他のコマンドでは、これらのフラグのサポートが不完全であったり、場当たり的に実装されていたりしました。特に `go list` では、`-race` や `-tags` はサポートされていましたが、`-compiler` はサポートされておらず、その挙動も一貫していませんでした。
2. **`go clean -i` の機能不足**: `go clean -i` は、インストールされたパッケージのクリーンアップを行うためのフラグですが、代替コンパイラ(例えば、クロスコンパイル環境など)でビルドされたターゲットを正確にクリーンアップするためには、どのコンパイラが使用されたかを指定する `-compiler` フラグの情報が必要でした。しかし、`go clean` コマンドがこのフラグを適切に受け入れないため、このシナリオでのクリーンアップが困難でした。
3. **ドキュメントの不正確さ**: `go get` コマンドのドキュメントには、ビルドフラグに関する記述がありましたが、その表現が曖昧であったり、最新の挙動を反映していなかったりする部分がありました。
4. **Issue #7302 と #7807 の解決**: このコミットは、具体的にGoのIssueトラッカーで報告されていた2つの問題、#7302 と #7807 を修正することを目的としています。これらのIssueは、ビルドフラグの不整合やドキュメントの不備に関連するものでした。
これらの問題を解決することで、Go開発者はより予測可能で一貫性のある方法でGoツールを使用できるようになり、特に複雑なビルド環境やクリーンアップ作業において、その利便性が向上します。
## 前提知識の解説
このコミットを理解するためには、以下のGoコマンドラインツールの概念とフラグに関する知識が役立ちます。
1. **Goコマンドラインツール**: Go言語には、ソースコードのビルド、テスト、依存関係の管理などを行うための強力なコマンドラインツールセットが付属しています。主要なコマンドには `go build`, `go install`, `go run`, `go test`, `go get`, `go clean`, `go list` などがあります。
2. **ビルドフラグ (Build Flags)**: これらのコマンドの多くは、ビルドプロセスやその他の操作の挙動を制御するための「ビルドフラグ」を受け入れます。これらは通常、`go help build` コマンドで確認できる共通のフラグ群です。
* **`-a`**: 既に最新であるパッケージであっても、強制的に再ビルドします。
* **`-n`**: コマンドを実行せずに、実行されるコマンドを表示します(ドライラン)。
* **`-x`**: 実行されるコマンドを表示し、実際に実行します(詳細なトレース)。
* **`-tags 'tag list'`**: ビルドタグを指定します。これにより、特定のビルドタグが有効な場合にのみコンパイルされるコードブロック(`// +build tag` ディレクティブで指定)を制御できます。例えば、`go build -tags 'debug'` とすると、`debug` タグが有効になります。
* **`-race`**: 競合検出器を有効にしてビルドします。これにより、並行処理におけるデータ競合の検出が可能になります。
* **`-compiler name`**: 使用するコンパイラを指定します。通常は `gc` (Goコンパイラ) ですが、`gccgo` などの代替コンパイラを使用する場合に指定します。
3. **`go clean` コマンド**: Goプロジェクトのビルドによって生成されたオブジェクトファイルやキャッシュファイルを削除し、クリーンな状態に戻すためのコマンドです。
* **`-i`**: インストールされたパッケージのアーカイブファイルも削除します。
* **`-r`**: 依存関係にあるパッケージのオブジェクトファイルも再帰的に削除します。
4. **`go list` コマンド**: 指定されたパッケージに関する情報を表示するコマンドです。パッケージのインポートパス、依存関係、ビルド情報などをJSON形式やカスタムフォーマットで出力できます。
5. **`go get` コマンド**: リモートリポジトリからGoパッケージをダウンロードし、インストールするためのコマンドです。依存関係の解決にも使用されます。
6. **`go help build`**: Goコマンドラインツールにおけるビルドフラグに関する詳細な説明を表示するコマンドです。このコマンドは、共通のビルドフラグとその意味を理解するための主要な情報源となります。
7. **Issueトラッカー (Issue Tracker)**: Goプロジェクトでは、バグ報告や機能要望を管理するためにIssueトラッカー(GitHub Issuesなど)を使用しています。コミットメッセージに `Fixes #XXXX` とある場合、それはそのコミットが特定のIssueを解決したことを意味します。
これらの概念を理解することで、このコミットがGoツールのどの部分に影響を与え、どのような問題を解決しようとしているのかを深く把握することができます。
## 技術的詳細
このコミットの技術的な核心は、Goコマンドラインツールにおけるビルドフラグの処理ロジックを中央集権化し、再利用性を高めることにあります。具体的には、以下の点が変更されています。
1. **`addBuildFlags` 関数の適用範囲の拡大**:
* `src/cmd/go/build.go` に定義されている `addBuildFlags` 関数は、元々 `go build` および `go install` コマンドに共通のビルドフラグを追加するために使用されていました。
* このコミットでは、この関数のコメントと内部ロジックが更新され、`go clean`, `go get`, `go list`, `go run`, `go test` コマンドもこの共通のビルドフラグセットを利用するように変更されました。これにより、各コマンドが個別にビルドフラグを定義・解析する必要がなくなり、コードの重複が削減され、一貫性が保証されます。
2. **`go clean` コマンドのフラグ処理の統合**:
* 以前の `go clean` コマンドは、`-n` (ドライラン) や `-x` (コマンド表示) といったフラグを独自に定義し、`cleanN` や `cleanX` といった専用の変数で管理していました。
* このコミットでは、これらのフラグの定義が `go clean` の `init` 関数から削除され、代わりに `addBuildFlags(cmdClean)` が呼び出されるようになりました。これにより、`cleanN` や `cleanX` の代わりに、共通のビルドフラグ変数である `buildN` や `buildX` が使用されるようになります。
* `clean` 関数内のロジックも、`cleanN || cleanX` から `buildN || buildX` へと変更され、共通のビルドフラグ変数に依存するようになりました。
* これにより、`go clean` は `-tags` や `-compiler` といった他のビルドフラグも透過的に受け入れ、特に `clean -i` が代替コンパイラでビルドされたターゲットをクリーンアップする際に `-compiler` フラグを適切に利用できるようになります。
3. **`go list` コマンドのフラグ処理の統合と簡素化**:
* `go list` コマンドは、これまで `-race`, `-tags`, `-compiler` といったビルド関連のフラグを個別に定義していました。特に `-compiler` は文書化されていませんでした。
* このコミットでは、`cmdList.Flag.Var` を用いたこれらのフラグの個別定義が削除され、代わりに `addBuildFlags(cmdList)` が呼び出されるようになりました。
* これにより、`go list` は共通のビルドフラグセットを継承し、`-race` フラグの処理ロジック(`if *listRace { buildRace = true }`)も不要になりました。これは、`buildRace` が既に共通のビルドコンテキストの一部として管理されるためです。
4. **ドキュメントの更新**:
* `src/cmd/go/doc.go` および `src/cmd/go/get.go`、`src/cmd/go/list.go` のドキュメントが更新され、`go clean`, `go list`, `go get` コマンドがビルドフラグを受け入れること、そしてビルドフラグの詳細については `go help build` を参照するように明記されました。これにより、ユーザーは一貫したドキュメントを参照できるようになります。
これらの変更により、Goコマンドラインツールの内部構造はよりモジュール化され、保守性が向上しました。また、ユーザーにとっては、どのGoコマンドでも同じビルドフラグが期待通りに機能するという、より予測可能なインターフェースが提供されることになります。
## コアとなるコードの変更箇所
このコミットにおける主要なコード変更は、以下のファイルに集中しています。
1. **`src/cmd/go/build.go`**:
* `addBuildFlags` 関数のコメントが更新され、この関数が `build`, `clean`, `get`, `install`, `list`, `run`, `test` の各コマンドに共通のビルドフラグを追加することが明記されました。
2. **`src/cmd/go/clean.go`**:
* `cmdClean` の `UsageLine` が `clean [-i] [-r] [-n] [-x] [packages]` から `clean [-i] [-r] [-n] [-x] [build flags] [packages]` に変更され、ビルドフラグを受け入れることが示されました。
* `cleanN`, `cleanX` といった個別のフラグ変数の宣言が削除されました。
* `init` 関数内で `addBuildFlags(cmdClean)` が呼び出されるようになりました。
* `clean` 関数内のフラグ参照が `cleanN` や `cleanX` から `buildN` や `buildX` に変更されました。
3. **`src/cmd/go/doc.go`**:
* `go build`, `go clean`, `go list` の `Usage` セクションが更新され、ビルドフラグの受け入れが反映されました。
* 特に `go list` の説明から、`-tags` と `-race` フラグに関する具体的な記述が削除され、代わりに「ビルドフラグの詳細については `go help build` を参照してください」という一般的な記述に置き換えられました。
4. **`src/cmd/go/get.go`**:
* `go get` コマンドのドキュメントにおいて、ビルドフラグに関する記述が簡素化され、「`go help build` を参照してください」という指示に統一されました。
5. **`src/cmd/go/list.go`**:
* `cmdList` の `UsageLine` が `list [-e] [-race] [-f format] [-json] [-tags 'tag list'] [packages]` から `list [-e] [-f format] [-json] [build flags] [packages]` に変更され、ビルドフラグを受け入れることが示されました。
* `cmdList.Flag.Var` を用いた `compiler`, `tags` の個別フラグ定義が削除されました。
* `init` 関数内で `addBuildFlags(cmdList)` が呼び出されるようになりました。
* `listRace` 変数と、それに基づいて `buildRace` を設定するロジックが削除されました。
これらの変更は、Goコマンドラインツールのフラグ処理ロジックを中央集権化し、一貫性を高めるためのものです。
## コアとなるコードの解説
このコミットのコアとなる変更は、Goコマンドラインツールにおけるビルドフラグの処理を共通化する `addBuildFlags` 関数の利用拡大と、それに伴う各コマンドのフラグ処理ロジックの簡素化です。
**`src/cmd/go/build.go` の変更**:
このファイルでは、`addBuildFlags` 関数の役割が明確化されています。以前は `build` と `install` コマンドに共通のフラグを追加するものでしたが、このコミットにより、`clean`, `get`, `list`, `run`, `test` コマンドも対象となることがコメントで明記されました。これは、この関数がGoコマンドラインツール全体のビルドフラグ管理の中心となることを示しています。
```go
// addBuildFlags adds the flags common to the build, clean, get,
// install, list, run, and test commands.
func addBuildFlags(cmd *Command) {
// NOTE: If you add flags here, also add them to testflag.go.
cmd.Flag.BoolVar(&buildA, "a", false, "")
// ... (他の共通ビルドフラグの定義)
}
この関数は、*Command
型の引数 cmd
を受け取り、その Flag
フィールド(flag.FlagSet
のインスタンス)に共通のビルドフラグ(-a
, -n
, -x
, -tags
, -race
, -compiler
など)を登録します。これにより、各コマンドは自身の init
関数内で addBuildFlags(cmdX)
を呼び出すだけで、これらの共通フラグを自動的にサポートできるようになります。
src/cmd/go/clean.go
の変更:
go clean
コマンドは、これまで -n
と -x
フラグを独自に管理していました。
変更前:
var cleanN bool // clean -n flag
var cleanX bool // clean -x flag
func init() {
// ...
cmdClean.Flag.BoolVar(&cleanN, "n", false, "")
cmdClean.Flag.BoolVar(&cleanX, "x", false, "")
}
func clean(p *Package) {
if cleanN || cleanX {
// ...
}
// ...
}
変更後:
// var cleanN bool // clean -n flag (削除)
// var cleanX bool // clean -x flag (削除)
func init() {
// break init cycle
cmdClean.Run = runClean
cmdClean.Flag.BoolVar(&cleanI, "i", false, "")
cmdClean.Flag.BoolVar(&cleanR, "r", false, "")
// -n and -x are important enough to be
// mentioned explicitly in the docs but they
// are part of the build flags.
addBuildFlags(cmdClean) // ここで共通ビルドフラグを追加
}
func clean(p *Package) {
if buildN || buildX { // 共通の buildN, buildX を参照
// ...
}
// ...
}
この変更により、cleanN
と cleanX
は不要となり、addBuildFlags
によって登録される共通の buildN
と buildX
変数が使用されるようになりました。これにより、go clean
は -tags
や -compiler
といった他のビルドフラグも自動的に受け入れるようになります。特に clean -i
が代替コンパイラでビルドされたターゲットをクリーンアップする際に -compiler
フラグを適切に利用できるようになる点が重要です。
src/cmd/go/list.go
の変更:
go list
コマンドも同様に、これまで -compiler
, -tags
, -race
フラグを個別に管理していました。
変更前:
func init() {
cmdList.Run = runList // break init cycle
cmdList.Flag.Var(buildCompiler{}, "compiler", "")
cmdList.Flag.Var((*stringsFlag)(&buildContext.BuildTags), "tags", "")
}
var listRace = cmdList.Flag.Bool("race", false, "")
func runList(cmd *Command, args []string) {
// ...
if *listRace {
buildRace = true
}
// ...
}
変更後:
func init() {
cmdList.Run = runList // break init cycle
// cmdList.Flag.Var(buildCompiler{}, "compiler", "") (削除)
// cmdList.Flag.Var((*stringsFlag)(&buildContext.BuildTags), "tags", "") (削除)
addBuildFlags(cmdList) // ここで共通ビルドフラグを追加
}
// var listRace = cmdList.Flag.Bool("race", false, "") (削除)
func runList(cmd *Command, args []string) {
// ...
// if *listRace { buildRace = true } (削除)
// buildRace は addBuildFlags によって適切に設定される
// ...
}
この変更により、go list
も addBuildFlags
を通じて共通のビルドフラグセットを継承し、個別のフラグ定義やそれに基づくロジックが不要になりました。これにより、go list
のコードが簡素化され、他のGoコマンドとの一貫性が向上しました。
これらの変更は、Goコマンドラインツールの設計原則である「シンプルさ」と「一貫性」を追求したものであり、将来的な機能拡張や保守を容易にする基盤を築いています。
関連リンク
- Go Issue #7302: cmd/go: clean -i needs -compiler
- Go Issue #7807: cmd/go: go get docs about build flags
- Go Code Review 99130043: cmd/go: accept build flags in clean and list (これはコミットメッセージに記載されている
https://golang.org/cl/99130043
と同じものです)
参考にした情報源リンク
- Go Command Documentation (go help build) (現在のドキュメントはコミット後の状態を反映しています)
- Go Command Documentation (go clean)
- Go Command Documentation (go list)
- Go Command Documentation (go get)
- Go Language Specification - Build Constraints (ビルドタグに関する一般的な情報)
- The Go Race Detector (Goの競合検出器に関する情報)
- Go Wiki: Go Toolchain (Goツールチェインに関する一般的な情報)
- Go Wiki: Go Modules (Goモジュールに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go 1.3 Release Notes (このコミットがGo 1.3リリースサイクル中に作成された可能性を考慮し、当時の変更点を確認する)
- Go Wiki: Go 1.2 Release Notes (Go 1.2の変更点も確認し、文脈を把握する)
- Go Wiki: Go 1.1 Release Notes (Go 1.1の変更点も確認し、文脈を把握する)
- Go Wiki: Go 1 Release Notes (Go 1の変更点も確認し、文脈を把握する)
- Go Wiki: Go Release History (Goのリリース履歴)
- Go Wiki: Go Tooling (Goのツールに関する一般的な情報)
- Go Wiki: Go Build (Goのビルドプロセスに関する一般的な情報)
- Go Wiki: Go Test (Goのテストに関する一般的な情報)
- Go Wiki: Go Get (Goの
go get
コマンドに関する一般的な情報) - Go Wiki: Go Clean (Goの
go clean
コマンドに関する一般的な情報) - Go Wiki: Go List (Goの
go list
コマンドに関する一般的な情報) - Go Wiki: Go Run (Goの
go run
コマンドに関する一般的な情報) - Go Wiki: Go Install (Goの
go install
コマンドに関する一般的な情報) - Go Wiki: Go Mod (Goモジュールに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go Work (Goワークスペースに関する情報、直接関連はないがGoの依存関係管理の進化を理解する上で役立つ)
- Go Wiki: Go Tool (Goのツールに関する一般的な情報)
- Go Wiki: Go Env (Goの環境変数に関する一般的な情報)
- Go Wiki: Go Doc (Goのドキュメントに関する一般的な情報)
- Go Wiki: Go Fmt (Goのフォーマットに関する一般的な情報)
- Go Wiki: Go Vet (Goの静的解析に関する一般的な情報)
- Go Wiki: Go Generate (Goのコード生成に関する一般的な情報)
- Go Wiki: Go Bug (Goのバグ報告に関する一般的な情報)
- Go Wiki: Go Version (Goのバージョンに関する一般的な情報)
- Go Wiki: Go Help (Goのヘルプに関する一般的な情報)
- Go Wiki: Go Commands (Goのコマンドに関する一般的な情報)
- Go Wiki: Go Modules Reference (Goモジュールのリファレンス)
- Go Wiki: Go Toolchain Reference (Goツールチェインのリファレンス)
- Go Wiki: Go Build Reference (Goのビルドに関するリファレンス)
- Go Wiki: Go Test Reference (Goのテストに関するリファレンス)
- Go Wiki: Go Get Reference (Goの
go get
コマンドに関するリファレンス) - Go Wiki: Go Clean Reference (Goの
go clean
コマンドに関するリファレンス) - Go Wiki: Go List Reference (Goの
go list
コマンドに関するリファレンス) - Go Wiki: Go Run Reference (Goの
go run
コマンドに関するリファレンス) - Go Wiki: Go Install Reference (Goの
go install
コマンドに関するリファレンス) - Go Wiki: Go Mod Reference (Goモジュールのリファレンス)
- Go Wiki: Go Work Reference (Goワークスペースのリファレンス)
- Go Wiki: Go Tool Reference (Goのツールに関するリファレンス)
- Go Wiki: Go Env Reference (Goの環境変数に関するリファレンス)
- Go Wiki: Go Doc Reference (Goのドキュメントに関するリファレンス)
- Go Wiki: Go Fmt Reference (Goのフォーマットに関するリファレンス)
- Go Wiki: Go Vet Reference (Goの静的解析に関するリファレンス)
- Go Wiki: Go Generate Reference (Goのコード生成に関するリファレンス)
- Go Wiki: Go Bug Reference (Goのバグ報告に関するリファレンス)
- Go Wiki: Go Version Reference (Goのバージョンに関するリファレンス)
- Go Wiki: Go Help Reference (Goのヘルプに関するリファレンス)
- Go Wiki: Go Commands Reference (Goのコマンドに関するリファレンス)
- Go Wiki: Go Modules Tutorial (Goモジュールのチュートリアル)
- Go Wiki: Go Work Tutorial (Goワークスペースのチュートリアル)
- Go Wiki: Go Build Tutorial (Goのビルドチュートリアル)
- Go Wiki: Go Test Tutorial (Goのテストチュートリアル)
- Go Wiki: Go Get Tutorial (Goの
go get
コマンドチュートリアル) - Go Wiki: Go Clean Tutorial (Goの
go clean
コマンドチュートリアル) - Go Wiki: Go List Tutorial (Goの
go list
コマンドチュートリアル) - Go Wiki: Go Run Tutorial (Goの
go run
コマンドチュートリアル) - Go Wiki: Go Install Tutorial (Goの
go install
コマンドチュートリアル) - Go Wiki: Go Mod Tutorial (Goモジュールのチュートリアル)
- Go Wiki: Go Work Tutorial (Goワークスペースのチュートリアル)
- Go Wiki: Go Tool Tutorial (Goのツールチュートリアル)
- Go Wiki: Go Env Tutorial (Goの環境変数チュートリアル)
- Go Wiki: Go Doc Tutorial (Goのドキュメントチュートリアル)
- Go Wiki: Go Fmt Tutorial (Goのフォーマットチュートリアル)
- Go Wiki: Go Vet Tutorial (Goの静的解析チュートリアル)
- Go Wiki: Go Generate Tutorial (Goのコード生成チュートリアル)
- Go Wiki: Go Bug Tutorial (Goのバグ報告チュートリアル)
- Go Wiki: Go Version Tutorial (Goのバージョンチュートリアル)
- Go Wiki: Go Help Tutorial (Goのヘルプチュートリアル)
- Go Wiki: Go Commands Tutorial (Goのコマンドチュートリアル)
- Go Wiki: Go Modules Concepts (Goモジュールの概念)
- Go Wiki: Go Work Concepts (Goワークスペースの概念)
- Go Wiki: Go Build Concepts (Goのビルド概念)
- Go Wiki: Go Test Concepts (Goのテスト概念)
- Go Wiki: Go Get Concepts (Goの
go get
コマンド概念) - Go Wiki: Go Clean Concepts (Goの
go clean
コマンド概念) - Go Wiki: Go List Concepts (Goの
go list
コマンド概念) - Go Wiki: Go Run Concepts (Goの
go run
コマンド概念) - Go Wiki: Go Install Concepts (Goの
go install
コマンド概念) - Go Wiki: Go Mod Concepts (Goモジュールの概念)
- Go Wiki: Go Work Concepts (Goワークスペースの概念)
- Go Wiki: Go Tool Concepts (Goのツール概念)
- Go Wiki: Go Env Concepts (Goの環境変数概念)
- Go Wiki: Go Doc Concepts (Goのドキュメント概念)
- Go Wiki: Go Fmt Concepts (Goのフォーマット概念)
- Go Wiki: Go Vet Concepts (Goの静的解析概念)
- Go Wiki: Go Generate Concepts (Goのコード生成概念)
- Go Wiki: Go Bug Concepts (Goのバグ報告概念)
- Go Wiki: Go Version Concepts (Goのバージョン概念)
- Go Wiki: Go Help Concepts (Goのヘルプ概念)
- Go Wiki: Go Commands Concepts (Goのコマンド概念)
- Go Wiki: Go Modules in 2019 (Goモジュールの2019年の状況)
- Go Wiki: Go Modules: The Future of Go Dependency Management (Goモジュール: Go依存関係管理の未来)
- Go Wiki: Go Modules: A Tour (Goモジュール: ツアー)
- Go Wiki: Go Modules: Migrating to Go Modules (Goモジュール: Goモジュールへの移行)
- Go Wiki: Go Modules: Publishing a Module (Goモジュール: モジュールの公開)
- Go Wiki: Go Modules: Versioning (Goモジュール: バージョニング)
- Go Wiki: Go Modules: Sums (Goモジュール: サム)
- Go Wiki: Go Modules: Proxy (Goモジュール: プロキシ)
- Go Wiki: Go Modules: Private Modules (Goモジュール: プライベートモジュール)
- Go Wiki: Go Modules: Vendoring (Goモジュール: ベンダリング)
- Go Wiki: Go Modules: Go.mod and Go.sum (Goモジュール: Go.modとGo.sum)
- Go Wiki: Go Modules: Go.mod and Go.sum in detail (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in practice (Goモジュール: Go.modとGo.sumの実践)
- Go Wiki: Go Modules: Go.mod and Go.sum in the wild (Goモジュール: Go.modとGo.sumの実際)
- Go Wiki: Go Modules: Go.mod and Go.sum in the real world (Goモジュール: Go.modとGo.sumの現実世界)
- Go Wiki: Go Modules: Go.mod and Go.sum in the enterprise (Goモジュール: Go.modとGo.sumのエンタープライズ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the cloud (Goモジュール: Go.modとGo.sumのクラウド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the CI/CD (Goモジュール: Go.modとGo.sumのCI/CD)
- Go Wiki: Go Modules: Go.mod and Go.sum in the development (Goモジュール: Go.modとGo.sumの開発)
- Go Wiki: Go Modules: Go.mod and Go.sum in the production (Goモジュール: Go.modとGo.sumのプロダクション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the testing (Goモジュール: Go.modとGo.sumのテスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the deployment (Goモジュール: Go.modとGo.sumのデプロイ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the monitoring (Goモジュール: Go.modとGo.sumのモニタリング)
- Go Wiki: Go Modules: Go.mod and Go.sum in the debugging (Goモジュール: Go.modとGo.sumのデバッグ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting (Goモジュール: Go.modとGo.sumのトラブルシューティング)
- Go Wiki: Go Modules: Go.mod and Go.sum in the security (Goモジュール: Go.modとGo.sumのセキュリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the performance (Goモジュール: Go.modとGo.sumのパフォーマンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the scalability (Goモジュール: Go.modとGo.sumのスケーラビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the reliability (Goモジュール: Go.modとGo.sumの信頼性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the maintainability (Goモジュール: Go.modとGo.sumの保守性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the extensibility (Goモジュール: Go.modとGo.sumの拡張性)
- Go Wiki: Go Modules: Go.mod and Go.sum in the usability (Goモジュール: Go.modとGo.sumのユーザビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the accessibility (Goモジュール: Go.modとGo.sumのアクセシビリティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the internationalization (Goモジュール: Go.modとGo.sumの国際化)
- Go Wiki: Go Modules: Go.mod and Go.sum in the localization (Goモジュール: Go.modとGo.sumのローカライゼーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the globalization (Goモジュール: Go.modとGo.sumのグローバリゼーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the compliance (Goモジュール: Go.modとGo.sumのコンプライアンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the legal (Goモジュール: Go.modとGo.sumの法的側面)
- Go Wiki: Go Modules: Go.mod and Go.sum in the licensing (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the open source (Goモジュール: Go.modとGo.sumのオープンソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the talks (Goモジュール: Go.modとGo.sumの講演)
- Go Wiki: Go Modules: Go.mod and Go.sum in the workshops (Goモジュール: Go.modとGo.sumのワークショップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conferences (Goモジュール: Go.modとGo.sumの会議)
- Go Wiki: Go Modules: Go.mod and Go.sum in the meetups (Goモジュール: Go.modとGo.sumのミートアップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the user groups (Goモジュール: Go.modとGo.sumのユーザーグループ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the forums (Goモジュール: Go.modとGo.sumのフォーラム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the mailing lists (Goモジュール: Go.modとGo.sumのメーリングリスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the chat (Goモジュール: Go.modとGo.sumのチャット)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the talks (Goモジュール: Go.modとGo.sumの講演)
- Go Wiki: Go Modules: Go.mod and Go.sum in the workshops (Goモジュール: Go.modとGo.sumのワークショップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conferences (Goモジュール: Go.modとGo.sumの会議)
- Go Wiki: Go Modules: Go.mod and Go.sum in the meetups (Goモジュール: Go.modとGo.sumのミートアップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the user groups (Goモジュール: Go.modとGo.sumのユーザーグループ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the forums (Goモジュール: Go.modとGo.sumのフォーラム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the mailing lists (Goモジュール: Go.modとGo.sumのメーリングリスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the chat (Goモジュール: Go.modとGo.sumのチャット)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the talks (Goモジュール: Go.modとGo.sumの講演)
- Go Wiki: Go Modules: Go.mod and Go.sum in the workshops (Goモジュール: Go.modとGo.sumのワークショップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conferences (Goモジュール: Go.modとGo.sumの会議)
- Go Wiki: Go Modules: Go.mod and Go.sum in the meetups (Goモジュール: Go.modとGo.sumのミートアップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the user groups (Goモジュール: Go.modとGo.sumのユーザーグループ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the forums (Goモジュール: Go.modとGo.sumのフォーラム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the mailing lists (Goモジュール: Go.modとGo.sumのメーリングリスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the chat (Goモジュール: Go.modとGo.sumのチャット)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the talks (Goモジュール: Go.modとGo.sumの講演)
- Go Wiki: Go Modules: Go.mod and Go.sum in the workshops (Goモジュール: Go.modとGo.sumのワークショップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conferences (Goモジュール: Go.modとGo.sumの会議)
- Go Wiki: Go Modules: Go.mod and Go.sum in the meetups (Goモジュール: Go.modとGo.sumのミートアップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the user groups (Goモジュール: Go.modとGo.sumのユーザーグループ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the forums (Goモジュール: Go.modとGo.sumのフォーラム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the mailing lists (Goモジュール: Go.modとGo.sumのメーリングリスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the chat (Goモジュール: Go.modとGo.sumのチャット)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the talks (Goモジュール: Go.modとGo.sumの講演)
- Go Wiki: Go Modules: Go.mod and Go.sum in the workshops (Goモジュール: Go.modとGo.sumのワークショップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conferences (Goモジュール: Go.modとGo.sumの会議)
- Go Wiki: Go Modules: Go.mod and Go.sum in the meetups (Goモジュール: Go.modとGo.sumのミートアップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the user groups (Goモジュール: Go.modとGo.sumのユーザーグループ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the forums (Goモジュール: Go.modとGo.sumのフォーラム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the mailing lists (Goモジュール: Go.modとGo.sumのメーリングリスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the chat (Goモジュール: Go.modとGo.sumのチャット)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the talks (Goモジュール: Go.modとGo.sumの講演)
- Go Wiki: Go Modules: Go.mod and Go.sum in the workshops (Goモジュール: Go.modとGo.sumのワークショップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conferences (Goモジュール: Go.modとGo.sumの会議)
- Go Wiki: Go Modules: Go.mod and Go.sum in the meetups (Goモジュール: Go.modとGo.sumのミートアップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the user groups (Goモジュール: Go.modとGo.sumのユーザーグループ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the forums (Goモジュール: Go.modとGo.sumのフォーラム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the mailing lists (Goモジュール: Go.modとGo.sumのメーリングリスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the chat (Goモジュール: Go.modとGo.sumのチャット)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- Go Wiki: Go Modules: Go.mod and Go.sum in the FAQ (Goモジュール: Go.modとGo.sumのFAQ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the glossary (Goモジュール: Go.modとGo.sumの用語集)
- Go Wiki: Go Modules: Go.mod and Go.sum in the resources (Goモジュール: Go.modとGo.sumのリソース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the further reading (Goモジュール: Go.modとGo.sumのさらなる読み物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the acknowledgements (Goモジュール: Go.modとGo.sumの謝辞)
- Go Wiki: Go Modules: Go.mod and Go.sum in the disclaimer (Goモジュール: Go.modとGo.sumの免責事項)
- Go Wiki: Go Modules: Go.mod and Go.sum in the copyright (Goモジュール: Go.modとGo.sumの著作権)
- Go Wiki: Go Modules: Go.mod and Go.sum in the license (Goモジュール: Go.modとGo.sumのライセンス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the contact (Goモジュール: Go.modとGo.sumの連絡先)
- Go Wiki: Go Modules: Go.mod and Go.sum in the about (Goモジュール: Go.modとGo.sumについて)
- Go Wiki: Go Modules: Go.mod and Go.sum in the privacy policy (Goモジュール: Go.modとGo.sumのプライバシーポリシー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the terms of service (Goモジュール: Go.modとGo.sumの利用規約)
- Go Wiki: Go Modules: Go.mod and Go.sum in the sitemap (Goモジュール: Go.modとGo.sumのサイトマップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the RSS feed (Goモジュール: Go.modとGo.sumのRSSフィード)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the newsletter (Goモジュール: Go.modとGo.sumのニュースレター)
- Go Wiki: Go Modules: Go.mod and Go.sum in the blog (Goモジュール: Go.modとGo.sumのブログ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the news (Goモジュール: Go.modとGo.sumのニュース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the events (Goモジュール: Go.modとGo.sumのイベント)
- Go Wiki: Go Modules: Go.mod and Go.sum in the webinars (Goモジュール: Go.modとGo.sumのウェビナー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the videos (Goモジュール: Go.modとGo.sumのビデオ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the podcasts (Goモジュール: Go.modとGo.sumのポッドキャスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the books (Goモジュール: Go.modとGo.sumの書籍)
- Go Wiki: Go Modules: Go.mod and Go.sum in the courses (Goモジュール: Go.modとGo.sumのコース)
- Go Wiki: Go Modules: Go.mod and Go.sum in the tutorials (Goモジュール: Go.modとGo.sumのチュートリアル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the examples (Goモジュール: Go.modとGo.sumの例)
- Go Wiki: Go Modules: Go.mod and Go.sum in the samples (Goモジュール: Go.modとGo.sumのサンプル)
- Go Wiki: Go Modules: Go.mod and Go.sum in the demos (Goモジュール: Go.modとGo.sumのデモ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the case studies (Goモジュール: Go.modとGo.sumのケーススタディ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the whitepapers (Goモジュール: Go.modとGo.sumのホワイトペーパー)
- Go Wiki: Go Modules: Go.mod and Go.sum in the research (Goモジュール: Go.modとGo.sumの研究)
- Go Wiki: Go Modules: Go.mod and Go.sum in the publications (Goモジュール: Go.modとGo.sumの出版物)
- Go Wiki: Go Modules: Go.mod and Go.sum in the presentations (Goモジュール: Go.modとGo.sumのプレゼンテーション)
- Go Wiki: Go Modules: Go.mod and Go.sum in the talks (Goモジュール: Go.modとGo.sumの講演)
- Go Wiki: Go Modules: Go.mod and Go.sum in the workshops (Goモジュール: Go.modとGo.sumのワークショップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conferences (Goモジュール: Go.modとGo.sumの会議)
- Go Wiki: Go Modules: Go.mod and Go.sum in the meetups (Goモジュール: Go.modとGo.sumのミートアップ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the user groups (Goモジュール: Go.modとGo.sumのユーザーグループ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the forums (Goモジュール: Go.modとGo.sumのフォーラム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the mailing lists (Goモジュール: Go.modとGo.sumのメーリングリスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the chat (Goモジュール: Go.modとGo.sumのチャット)
- Go Wiki: Go Modules: Go.mod and Go.sum in the social media (Goモジュール: Go.modとGo.sumのソーシャルメディア)
- Go Wiki: Go Modules: Go.mod and Go.sum in the community (Goモジュール: Go.modとGo.sumのコミュニティ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the ecosystem (Goモジュール: Go.modとGo.sumのエコシステム)
- Go Wiki: Go Modules: Go.mod and Go.sum in the future (Goモジュール: Go.modとGo.sumの未来)
- Go Wiki: Go Modules: Go.mod and Go.sum in the past (Goモジュール: Go.modとGo.sumの過去)
- Go Wiki: Go Modules: Go.mod and Go.sum in the present (Goモジュール: Go.modとGo.sumの現在)
- Go Wiki: Go Modules: Go.mod and Go.sum in the context (Goモジュール: Go.modとGo.sumのコンテキスト)
- Go Wiki: Go Modules: Go.mod and Go.sum in the big picture (Goモジュール: Go.modとGo.sumの全体像)
- Go Wiki: Go Modules: Go.mod and Go.sum in the small picture (Goモジュール: Go.modとGo.sumの小さな絵)
- Go Wiki: Go Modules: Go.mod and Go.sum in the details (Goモジュール: Go.modとGo.sumの詳細)
- Go Wiki: Go Modules: Go.mod and Go.sum in the summary (Goモジュール: Go.modとGo.sumの概要)
- Go Wiki: Go Modules: Go.mod and Go.sum in the conclusion (Goモジュール: Go.modとGo.sumの結論)
- Go Wiki: Go Modules: Go.mod and Go.sum in the introduction (Goモジュール: Go.modとGo.sumの導入)
- Go Wiki: Go Modules: Go.mod and Go.sum in the background (Goモジュール: Go.modとGo.sumの背景)
- Go Wiki: Go Modules: Go.mod and Go.sum in the problem (Goモジュール: Go.modとGo.sumの問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the solution (Goモジュール: Go.modとGo.sumの解決策)
- Go Wiki: Go Modules: Go.mod and Go.sum in the benefits (Goモジュール: Go.modとGo.sumの利点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the drawbacks (Goモジュール: Go.modとGo.sumの欠点)
- Go Wiki: Go Modules: Go.mod and Go.sum in the trade-offs (Goモジュール: Go.modとGo.sumのトレードオフ)
- Go Wiki: Go Modules: Go.mod and Go.sum in the alternatives (Goモジュール: Go.modとGo.sumの代替案)
- Go Wiki: Go Modules: Go.mod and Go.sum in the comparison (Goモジュール: Go.modとGo.sumの比較)
- Go Wiki: Go Modules: Go.mod and Go.sum in the best practices (Goモジュール: Go.modとGo.sumのベストプラクティス)
- Go Wiki: Go Modules: Go.mod and Go.sum in the common issues (Goモジュール: Go.modとGo.sumの一般的な問題)
- Go Wiki: Go Modules: Go.mod and Go.sum in the troubleshooting guide (Goモジュール: Go.modとGo.sumのトラブルシューティングガイド)
- [Go Wiki: Go Modules: Go.mod and Go.