From b92bb28e6a87d49d1551a85b82476e792e1c2cbb Mon Sep 17 00:00:00 2001 From: Adin Scannell Date: Tue, 25 Jan 2022 12:30:32 -0800 Subject: [PATCH] Fix release tags generation. PiperOrigin-RevId: 424151576 --- tools/nogo/check/build.go | 5 +++-- tools/nogo/check/check.go | 36 ------------------------------------ 2 files changed, 3 insertions(+), 38 deletions(-) diff --git a/tools/nogo/check/build.go b/tools/nogo/check/build.go index 098252df5..3b225996e 100644 --- a/tools/nogo/check/build.go +++ b/tools/nogo/check/build.go @@ -16,6 +16,7 @@ package check import ( "fmt" + "go/build" "io" "os" @@ -39,7 +40,7 @@ var findStdPkg = func(path string) (io.ReadCloser, error) { return os.Open(fmt.Sprintf("%s/pkg/%s_%s/%s.a", root, flags.GOOS, flags.GOARCH, path)) } -// releaseTags returns nil, indicating that the defaults should be used. +// releaseTags returns the default release tags. var releaseTags = func() ([]string, error) { - return nil, nil + return build.Default.ReleaseTags, nil } diff --git a/tools/nogo/check/check.go b/tools/nogo/check/check.go index d01866ccc..c8b14b6bd 100644 --- a/tools/nogo/check/check.go +++ b/tools/nogo/check/check.go @@ -33,8 +33,6 @@ import ( "path/filepath" "reflect" "regexp" - "runtime" - "strconv" "strings" "sync" "sync/atomic" @@ -69,46 +67,12 @@ var ( releaseTagsErr error ) -// versionTags generates all version tags. -// -// This function will panic if passed an invalid version. -func versionTags(v string) (tags []string) { - if len(v) < 2 || string(v[:2]) != "go" { - panic(fmt.Errorf("version %q is not valid", v)) - } - v = v[2:] // Strip go prefix. - v = strings.Split(v, " ")[0] - v = strings.Split(v, "-")[0] - parts := strings.Split(v, ".") - if len(parts) < 2 { - panic(fmt.Errorf("version %q lacks major and minor number", v)) - } - major, err := strconv.ParseInt(parts[0], 10, 64) - if err != nil { - panic(fmt.Errorf("version %q contains invalid major: %w", v, err)) - } - minor, err := strconv.ParseInt(parts[1], 10, 64) - if err != nil { - panic(fmt.Errorf("version %q contains invalid minor: %w", v, err)) - } - // Generate all compliant tags. - for i := int64(0); i <= minor; i++ { - tags = append(tags, fmt.Sprintf("go%d.%d", major, i)) - } - return tags -} - // shouldInclude indicates whether the file should be included. func shouldInclude(path string) (bool, error) { tagsOnce.Do(func() { if len(flags.BuildTags) > 0 { buildTags = strings.Split(flags.BuildTags, ",") } - if v, err := flags.Env("GOVERSION"); err == nil { - buildTags = append(buildTags, versionTags(v)...) - } else { - buildTags = append(buildTags, versionTags(runtime.Version())...) - } releaseTagsVal, releaseTagsErr = releaseTags() }) if releaseTagsErr != nil {