env GO111MODULE=on [short] skip # @commit should resolve # golang.org/x/text/language@commit should resolve. # Because of -d, the compiler should not run. go get -x golang.org/x/text/language@14c0d48 ! stderr 'compile|cp|gccgo .*language\.a$' # go get should skip build with no Go files in root go get golang.org/x/text@14c0d48 # dropping -d, we should see a build. [short] skip env GOCACHE=$WORK/gocache # Looking for compile commands, so need a clean cache. go build -x golang.org/x/text/language stderr 'compile|cp|gccgo .*language\.a$' # BUG: after the build, the package should not be stale, as 'go install' would # not do anything further. go list -f '{{.Stale}}' golang.org/x/text/language stdout ^true # install after build should not run the compiler again. go install -x golang.org/x/text/language ! stderr 'compile|cp|gccgo .*language\.a$' # we should see an error for unknown packages. ! go get -x golang.org/x/text/foo@14c0d48 stderr '^go: module golang.org/x/text@14c0d48 found \(v0.3.0\), but does not contain package golang.org/x/text/foo$' # get pseudo-version should record that version go get rsc.io/quote@v0.0.0-20180214005840-23179ee8a569 grep 'rsc.io/quote v0.0.0-20180214005840-23179ee8a569' go.mod # but as commit should record as v1.5.1 go get rsc.io/quote@23179ee8 grep 'rsc.io/quote v1.5.1' go.mod # go mod edit -require does not interpret commits go mod edit -require rsc.io/quote@23179ee grep 'rsc.io/quote 23179ee' go.mod # but other commands fix them go list -m -mod=mod all grep 'rsc.io/quote v1.5.1' go.mod -- go.mod -- module x