]> Cypherpunks repositories - gostls13.git/commit
cmd/go: only add a 'go' directive on 'go mod tidy' or when a conversion occurs
authorBryan C. Mills <bcmills@google.com>
Thu, 28 Mar 2019 17:18:37 +0000 (13:18 -0400)
committerBryan C. Mills <bcmills@google.com>
Fri, 19 Apr 2019 21:16:38 +0000 (21:16 +0000)
commita1c481d85139f77ab27210526f9dfa2f3b375ef9
tree0365486227257c37aa1b6736c3a5f3f6a6cf36be
parent9f9e17a82fd7afa622424f51e458bb383cb952ce
cmd/go: only add a 'go' directive on 'go mod tidy' or when a conversion occurs

If the go.mod file exists and is empty, we initialize it from any of
various formats supported by legacy dependency-management tools.

We also initialize the 'go' directive at that point: we know that the
go.mod file is incomplete, because it does not reflect the information
in the legacy configuration file, and since we know that the go.mod
file is incomplete, we should complete it with as much information as
we have — including the version of the language currently in use.

However, if there is no legacy configuration file present, then we
cannot infer that the go.mod file is incomplete: it may correctly
specify a module without external dependencies. In that case, we
should not initialize the 'go' directive either: the user will not be
expecting unnecessary edits to the go.mod file, and we generally do
not make unnecessary-but-helpful edits unless 'go mod tidy' is invoked
explicitly.

Fixes #30790
Fixes #31100

Change-Id: I05a7872bce54a917c10d910cd9a616cab52e2730
Reviewed-on: https://go-review.googlesource.com/c/go/+/169877
Run-TryBot: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/cmd/go/internal/modcmd/tidy.go
src/cmd/go/internal/modload/init.go
src/cmd/go/testdata/script/mod_init_empty.txt [new file with mode: 0644]
src/cmd/go/testdata/script/mod_std_vendor.txt