• Bryan C. Mills's avatar
    cmd/go: avoid upgrading to +incompatible versions if the latest compatible one has a go.mod file · de70de6e
    Bryan C. Mills authored
    Previously we would always “upgrade” to the semantically-highest
    version, even if a newer compatible version exists.
    
    That made certain classes of mistakes irreversible: in general we
    expect users to address bad releases by releasing a new (higher)
    version, but if the bad release was an unintended +incompatible
    version, then no release that includes a go.mod file can ever have a
    higher version, and the bad release will be treated as “latest”
    forever.
    
    Instead, when considering a +incompatible version we now consult the
    latest compatible (v0 or v1) release first. If the compatible release
    contains a go.mod file, we ignore the +incompatible releases unless
    they are expicitly requested (by version, commit ID, or branch name).
    
    Fixes #34165
    Updates #34189
    
    Change-Id: I7301eb963bbb91b21d3b96a577644221ed988ab7
    Reviewed-on: https://go-review.googlesource.com/c/go/+/204440
    Run-TryBot: Bryan C. Mills <bcmills@google.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarJay Conrod <jayconrod@google.com>
    de70de6e
go1.14.html 9.28 KB