aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/go
diff options
context:
space:
mode:
authorMichael Matloob <matloob@golang.org>2022-01-10 12:58:20 -0500
committerMichael Matloob <matloob@golang.org>2022-01-13 19:35:14 +0000
commit3ff12a019f00bc81996c453e5cb4729a9278f65a (patch)
treec17c29070a9e39028efacbc7ed11b63772a32fb1 /src/cmd/go
parentce01afe907f7f37b465bda529a339a7a8b98c59e (diff)
downloadgo-3ff12a019f00bc81996c453e5cb4729a9278f65a.tar.gz
go-3ff12a019f00bc81996c453e5cb4729a9278f65a.zip
cmd/go: run go install in workspace mode
It's too confusing to users to run go install in module mode, so run it in workspace mode instead. Fixes #50036 Change-Id: Ia99927bd98f54be4c42224a247543892045e3464 Reviewed-on: https://go-review.googlesource.com/c/go/+/377334 Reviewed-by: Bryan Mills <bcmills@google.com> Trust: Michael Matloob <matloob@golang.org> Run-TryBot: Michael Matloob <matloob@golang.org> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/cmd/go')
-rw-r--r--src/cmd/go/internal/work/build.go1
-rw-r--r--src/cmd/go/testdata/script/work_install_submodule.txt36
2 files changed, 37 insertions, 0 deletions
diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
index 9d0ad27f0d..9b1acf987d 100644
--- a/src/cmd/go/internal/work/build.go
+++ b/src/cmd/go/internal/work/build.go
@@ -617,6 +617,7 @@ func runInstall(ctx context.Context, cmd *base.Command, args []string) {
}
}
+ modload.InitWorkfile()
BuildInit()
pkgs := load.PackagesAndErrors(ctx, load.PackageOpts{}, args)
if cfg.ModulesEnabled && !modload.HasModRoot() {
diff --git a/src/cmd/go/testdata/script/work_install_submodule.txt b/src/cmd/go/testdata/script/work_install_submodule.txt
new file mode 100644
index 0000000000..3d1171736d
--- /dev/null
+++ b/src/cmd/go/testdata/script/work_install_submodule.txt
@@ -0,0 +1,36 @@
+# This is a regression test for golang.org/issue/50036
+# Don't check sums for other modules in the workspace.
+
+cd m/sub
+go install -n
+
+-- go.work --
+go 1.18
+
+use (
+ ./m
+ ./m/sub
+)
+-- m/go.mod --
+module example.com/m
+
+go 1.18
+
+-- m/m.go --
+package m
+
+func M() {}
+-- m/sub/go.mod --
+module example.com/m/sub
+
+go 1.18
+
+require example.com/m v1.0.0
+-- m/sub/main.go --
+package main
+
+import "example.com/m"
+
+func main() {
+ m.M()
+}