• Bryan C. Mills's avatar
    cmd/go: only add a 'go' directive on 'go mod tidy' or when a conversion occurs · a1c481d8
    Bryan C. Mills authored
    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: default avatarIan Lance Taylor <iant@golang.org>
    a1c481d8
init.go 20.2 KB