env GO111MODULE=on [!symlink] skip # 'go get' should resolve modules of imported packages. go get go list -deps -f '{{.Module}}' . stdout golang.org/x/text go get ./subpkg go list -deps -f '{{.Module}}' ./subpkg stdout golang.org/x/text # Create a copy of the module using symlinks in src/links. mkdir links symlink links/go.mod -> $GOPATH/src/go.mod symlink links/go.sum -> $GOPATH/src/go.sum symlink links/issue.go -> $GOPATH/src/issue.go mkdir links/subpkg symlink links/subpkg/issue.go -> $GOPATH/src/subpkg/issue.go # We should see the copy as a valid module root. cd links go env GOMOD stdout links[/\\]go.mod go list -m stdout golang.org/issue/28107 # The symlink-based copy should contain the same packages # and have the same dependencies as the original. go list -deps -f '{{.Module}}' . stdout golang.org/x/text go list -deps -f '{{.Module}}' ./subpkg stdout golang.org/x/text -- go.mod -- module golang.org/issue/28107 -- issue.go -- package issue import _ "golang.org/x/text/language" -- subpkg/issue.go -- package issue import _ "golang.org/x/text/language"