mirror of https://github.com/golang/go.git
Revert "cmd/go/internal/modload: record the replacement for the module containing package main in BuildInfo"
This reverts CL 220645 (commit e092fc352a).
Reason for revert: Seems to have broken windows/amd64 longtest
Change-Id: Iffa8c882524250e5845514bc827fcd8927645a44
Reviewed-on: https://go-review.googlesource.com/c/go/+/220722
Run-TryBot: Andrew Bonventre <andybons@golang.org>
Reviewed-by: Bryan C. Mills <bcmills@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
parent
2bfa8c37c3
commit
917c7a6fc9
|
|
@ -207,7 +207,6 @@ func PackageBuildInfo(path string, deps []string) string {
|
|||
if isStandardImportPath(path) || !Enabled() {
|
||||
return ""
|
||||
}
|
||||
|
||||
target := mustFindModule(path, path)
|
||||
mdeps := make(map[module.Version]bool)
|
||||
for _, dep := range deps {
|
||||
|
|
@ -224,25 +223,26 @@ func PackageBuildInfo(path string, deps []string) string {
|
|||
|
||||
var buf bytes.Buffer
|
||||
fmt.Fprintf(&buf, "path\t%s\n", path)
|
||||
|
||||
writeEntry := func(token string, m module.Version) {
|
||||
mv := m.Version
|
||||
tv := target.Version
|
||||
if tv == "" {
|
||||
tv = "(devel)"
|
||||
}
|
||||
fmt.Fprintf(&buf, "mod\t%s\t%s\t%s\n", target.Path, tv, modfetch.Sum(target))
|
||||
for _, mod := range mods {
|
||||
mv := mod.Version
|
||||
if mv == "" {
|
||||
mv = "(devel)"
|
||||
}
|
||||
fmt.Fprintf(&buf, "%s\t%s\t%s", token, m.Path, mv)
|
||||
if r := Replacement(m); r.Path == "" {
|
||||
fmt.Fprintf(&buf, "\t%s\n", modfetch.Sum(m))
|
||||
} else {
|
||||
fmt.Fprintf(&buf, "\n=>\t%s\t%s\t%s\n", r.Path, r.Version, modfetch.Sum(r))
|
||||
r := Replacement(mod)
|
||||
h := ""
|
||||
if r.Path == "" {
|
||||
h = "\t" + modfetch.Sum(mod)
|
||||
}
|
||||
fmt.Fprintf(&buf, "dep\t%s\t%s%s\n", mod.Path, mv, h)
|
||||
if r.Path != "" {
|
||||
fmt.Fprintf(&buf, "=>\t%s\t%s\t%s\n", r.Path, r.Version, modfetch.Sum(r))
|
||||
}
|
||||
}
|
||||
|
||||
writeEntry("mod", target)
|
||||
for _, mod := range mods {
|
||||
writeEntry("dep", mod)
|
||||
}
|
||||
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -21,13 +21,7 @@ func main() {
|
|||
info, _ := debug.ReadBuildInfo()
|
||||
fmt.Fprintf(os.Stdout, "path is %s\n", info.Path)
|
||||
fmt.Fprintf(os.Stdout, "main is %s %s\n", info.Main.Path, info.Main.Version)
|
||||
if r := info.Main.Replace; r != nil {
|
||||
fmt.Fprintf(os.Stdout, "\t(replaced by %s %s)\n", r.Path, r.Version)
|
||||
}
|
||||
for _, m := range info.Deps {
|
||||
fmt.Fprintf(os.Stdout, "using %s %s\n", m.Path, m.Version)
|
||||
if r := m.Replace; r != nil {
|
||||
fmt.Fprintf(os.Stdout, "\t(replaced by %s %s)\n", r.Path, r.Version)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,13 +29,7 @@ func main() {
|
|||
info, _ := debug.ReadBuildInfo()
|
||||
fmt.Fprintf(os.Stdout, "path is %s\n", info.Path)
|
||||
fmt.Fprintf(os.Stdout, "main is %s %s\n", info.Main.Path, info.Main.Version)
|
||||
if r := info.Main.Replace; r != nil {
|
||||
fmt.Fprintf(os.Stdout, "\t(replaced by %s %s)\n", r.Path, r.Version)
|
||||
}
|
||||
for _, m := range info.Deps {
|
||||
fmt.Fprintf(os.Stdout, "using %s %s\n", m.Path, m.Version)
|
||||
if r := m.Replace; r != nil {
|
||||
fmt.Fprintf(os.Stdout, "\t(replaced by %s %s)\n", r.Path, r.Version)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,33 +0,0 @@
|
|||
[short] skip
|
||||
|
||||
go mod download example.com/printversion@v0.1.0 example.com/printversion@v1.0.0
|
||||
|
||||
go install example.com/printversion
|
||||
|
||||
go run example.com/printversion
|
||||
cmp stdout out.txt
|
||||
|
||||
go version -m $GOPATH/bin/printversion
|
||||
stdout '^.*[/\\]bin[/\\]printversion: .*$'
|
||||
stdout '^ path example.com/printversion$'
|
||||
stdout '^ mod example.com/printversion v0.1.0$'
|
||||
stdout '^ => example.com/printversion v1.0.0 h1:.*$'
|
||||
stdout '^ dep example.com/version v1.0.0$'
|
||||
stdout '^ => example.com/version v1.0.1 h1:.*$'
|
||||
|
||||
-- go.mod --
|
||||
module golang.org/issue/37392
|
||||
go 1.14
|
||||
require (
|
||||
example.com/printversion v0.1.0
|
||||
)
|
||||
replace (
|
||||
example.com/printversion => example.com/printversion v1.0.0
|
||||
example.com/version v1.0.0 => example.com/version v1.0.1
|
||||
)
|
||||
-- out.txt --
|
||||
path is example.com/printversion
|
||||
main is example.com/printversion v0.1.0
|
||||
(replaced by example.com/printversion v1.0.0)
|
||||
using example.com/version v1.0.0
|
||||
(replaced by example.com/version v1.0.1)
|
||||
|
|
@ -47,27 +47,9 @@ func readBuildInfo(data string) (*BuildInfo, bool) {
|
|||
repLine = "=>\t"
|
||||
)
|
||||
|
||||
readEntryFirstLine := func(elem []string) (Module, bool) {
|
||||
if len(elem) != 2 && len(elem) != 3 {
|
||||
return Module{}, false
|
||||
}
|
||||
sum := ""
|
||||
if len(elem) == 3 {
|
||||
sum = elem[2]
|
||||
}
|
||||
return Module{
|
||||
Path: elem[0],
|
||||
Version: elem[1],
|
||||
Sum: sum,
|
||||
}, true
|
||||
}
|
||||
info := &BuildInfo{}
|
||||
|
||||
var (
|
||||
info = &BuildInfo{}
|
||||
last *Module
|
||||
line string
|
||||
ok bool
|
||||
)
|
||||
var line string
|
||||
// Reverse of cmd/go/internal/modload.PackageBuildInfo
|
||||
for len(data) > 0 {
|
||||
i := strings.IndexByte(data, '\n')
|
||||
|
|
@ -81,33 +63,42 @@ func readBuildInfo(data string) (*BuildInfo, bool) {
|
|||
info.Path = elem
|
||||
case strings.HasPrefix(line, modLine):
|
||||
elem := strings.Split(line[len(modLine):], "\t")
|
||||
last = &info.Main
|
||||
*last, ok = readEntryFirstLine(elem)
|
||||
if !ok {
|
||||
if len(elem) != 3 {
|
||||
return nil, false
|
||||
}
|
||||
info.Main = Module{
|
||||
Path: elem[0],
|
||||
Version: elem[1],
|
||||
Sum: elem[2],
|
||||
}
|
||||
case strings.HasPrefix(line, depLine):
|
||||
elem := strings.Split(line[len(depLine):], "\t")
|
||||
last = new(Module)
|
||||
info.Deps = append(info.Deps, last)
|
||||
*last, ok = readEntryFirstLine(elem)
|
||||
if !ok {
|
||||
if len(elem) != 2 && len(elem) != 3 {
|
||||
return nil, false
|
||||
}
|
||||
sum := ""
|
||||
if len(elem) == 3 {
|
||||
sum = elem[2]
|
||||
}
|
||||
info.Deps = append(info.Deps, &Module{
|
||||
Path: elem[0],
|
||||
Version: elem[1],
|
||||
Sum: sum,
|
||||
})
|
||||
case strings.HasPrefix(line, repLine):
|
||||
elem := strings.Split(line[len(repLine):], "\t")
|
||||
if len(elem) != 3 {
|
||||
return nil, false
|
||||
}
|
||||
if last == nil {
|
||||
last := len(info.Deps) - 1
|
||||
if last < 0 {
|
||||
return nil, false
|
||||
}
|
||||
last.Replace = &Module{
|
||||
info.Deps[last].Replace = &Module{
|
||||
Path: elem[0],
|
||||
Version: elem[1],
|
||||
Sum: elem[2],
|
||||
}
|
||||
last = nil
|
||||
}
|
||||
}
|
||||
return info, true
|
||||
|
|
|
|||
Loading…
Reference in New Issue