From d0bd295ec12d8f5ad2bdb204e14123bf912f52aa Mon Sep 17 00:00:00 2001 From: Raghvender Date: Mon, 3 Jun 2024 09:16:32 -0500 Subject: [PATCH] cmd/go: provide concise user message to use - go work use Fixes #64007 Change-Id: Ia1de6b33b2a531545984351e4453aa5d97b16953 Reviewed-on: https://go-review.googlesource.com/c/go/+/589815 Reviewed-by: Michael Matloob Auto-Submit: Michael Matloob Reviewed-by: Carlos Amedee Reviewed-by: Michael Matloob LUCI-TryBot-Result: Go LUCI --- src/cmd/go/internal/modload/init.go | 4 ++-- src/cmd/go/testdata/script/mod_goline_too_new.txt | 2 +- src/cmd/go/testdata/script/work_goline_order.txt | 4 ++-- src/cmd/go/testdata/script/work_implicit_go_requirement.txt | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/cmd/go/internal/modload/init.go b/src/cmd/go/internal/modload/init.go index 288d63db66..8501d3f5ee 100644 --- a/src/cmd/go/internal/modload/init.go +++ b/src/cmd/go/internal/modload/init.go @@ -1156,8 +1156,8 @@ func errWorkTooOld(gomod string, wf *modfile.WorkFile, goVers string) error { // even when it doesn't list any version. verb = "implicitly requires" } - return fmt.Errorf("module %s listed in go.work file requires go >= %s, but go.work %s go %s; to update it:\n\tgo work use", - base.ShortPath(filepath.Dir(gomod)), goVers, verb, gover.FromGoWork(wf)) + return fmt.Errorf("module %s listed in go.work file requires go >= %s, but go.work %s go %s; to download and use go %s:\n\tgo work use", + base.ShortPath(filepath.Dir(gomod)), goVers, verb, gover.FromGoWork(wf), goVers) } // CheckReservedModulePath checks whether the module path is a reserved module path diff --git a/src/cmd/go/testdata/script/mod_goline_too_new.txt b/src/cmd/go/testdata/script/mod_goline_too_new.txt index 6d2667937a..938fedfb54 100644 --- a/src/cmd/go/testdata/script/mod_goline_too_new.txt +++ b/src/cmd/go/testdata/script/mod_goline_too_new.txt @@ -8,7 +8,7 @@ stderr '^go: go.mod requires go >= 1.99999 \(running go 1\..+\)$' # go.mod referenced from go.work too new cp go.work.old go.work ! go build . -stderr '^go: module . listed in go.work file requires go >= 1.99999, but go.work lists go 1.10; to update it:\n\tgo work use$' +stderr '^go: module . listed in go.work file requires go >= 1.99999, but go.work lists go 1.10; to download and use go 1.99999:\n\tgo work use$' ! go work sync stderr '^go: cannot load module . listed in go.work file: go.mod requires go >= 1.99999 \(running go 1\..+\)$' diff --git a/src/cmd/go/testdata/script/work_goline_order.txt b/src/cmd/go/testdata/script/work_goline_order.txt index fe1cddbcd4..bfba7f462b 100644 --- a/src/cmd/go/testdata/script/work_goline_order.txt +++ b/src/cmd/go/testdata/script/work_goline_order.txt @@ -7,7 +7,7 @@ env TESTGO_VERSION=go1.21.1 env TESTGO_VERSION_SWITCH=switch cp go.work go.work.orig ! go list -stderr '^go: module . listed in go.work file requires go >= 1.21.2, but go.work lists go 1.21.1; to update it:\n\tgo work use$' +stderr '^go: module . listed in go.work file requires go >= 1.21.2, but go.work lists go 1.21.1; to download and use go 1.21.2:\n\tgo work use$' go work use go list @@ -16,7 +16,7 @@ env TESTGO_VERSION=go1.21.2 env TESTGO_VERSION_SWITCH=switch cp go.work.orig go.work ! go list -stderr '^go: module . listed in go.work file requires go >= 1.21.2, but go.work lists go 1.21.1; to update it:\n\tgo work use$' +stderr '^go: module . listed in go.work file requires go >= 1.21.2, but go.work lists go 1.21.1; to download and use go 1.21.2:\n\tgo work use$' # go work use fixes the problem. go work use diff --git a/src/cmd/go/testdata/script/work_implicit_go_requirement.txt b/src/cmd/go/testdata/script/work_implicit_go_requirement.txt index e123a7b01a..021d95c63d 100644 --- a/src/cmd/go/testdata/script/work_implicit_go_requirement.txt +++ b/src/cmd/go/testdata/script/work_implicit_go_requirement.txt @@ -2,7 +2,7 @@ # go directive in a go.work file so 1.18 is implicitly required. ! go list -stderr 'go: module . listed in go.work file requires go >= 1.21, but go.work implicitly requires go 1.18; to update it:\s+go work use' +stderr 'go: module . listed in go.work file requires go >= 1.21, but go.work implicitly requires go 1.18; to download and use go 1.21:\s+go work use' go work use go list