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 -d -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 -d 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 get -x golang.org/x/text/language@14c0d48 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 get should not run the compiler again. go install -x golang.org/x/text/language ! stderr 'compile|cp|gccgo .*language\.a$' # even with -d, we should see an error for unknown packages. ! go get -d -x golang.org/x/text/foo@14c0d48 # get pseudo-version should record that version go get -d 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 -d 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 mod graph grep 'rsc.io/quote v1.5.1' go.mod -- go.mod -- module x