# 'go mod download' can download specific versions of the main module. go mod download rsc.io/quote@5d9f230b go mod download rsc.io/quote@v1.5.2 go mod download rsc.io/quote@latest # 'go mod download' will not download @upgrade or @patch, since they always # resolve to the main module. go mod download rsc.io/quote@upgrade stderr '^go: skipping download of rsc.io/quote@upgrade that resolves to the main module$' go mod download rsc.io/quote@patch stderr '^go: skipping download of rsc.io/quote@patch that resolves to the main module$' # 'go list -m' can show a version of the main module. go list -m rsc.io/quote@5d9f230b stdout '^rsc.io/quote v0.0.0-20180710144737-5d9f230bcfba$' go list -m rsc.io/quote@v1.5.2 stdout '^rsc.io/quote v1.5.2$' go list -m rsc.io/quote@latest stdout '^rsc.io/quote v1.5.2$' # 'go list -m -versions' shows available versions. go list -m -versions rsc.io/quote stdout '^rsc.io/quote.*v1.5.2' # 'go list -m' resolves @upgrade and @patch to the main module. go list -m rsc.io/quote@upgrade stdout '^rsc.io/quote$' go list -m rsc.io/quote@patch stdout '^rsc.io/quote$' # 'go get' will not attempt to upgrade the main module to any specific version. # See also: mod_get_main.txt. ! go get rsc.io/quote@5d9f230b stderr '^go: can''t request version "5d9f230b" of the main module \(rsc.io/quote\)$' ! go get rsc.io/quote@v1.5.2 stderr '^go: can''t request version "v1.5.2" of the main module \(rsc.io/quote\)$' ! go get rsc.io/quote@latest stderr '^go: can''t request version "latest" of the main module \(rsc.io/quote\)$' -- go.mod -- module rsc.io/quote go 1.16