From 11d1c05fee22bd0609cab9dfc852fd4c6bc69b66 Mon Sep 17 00:00:00 2001 From: Brad Fitzpatrick Date: Fri, 12 Dec 2014 17:02:33 +1100 Subject: [PATCH] cmd/api: treat a hex-y VERSION as devel and permit API changes Change-Id: I2b05b7ff217586851ab41744e3077fddc480253c Reviewed-on: https://go-review.googlesource.com/1405 Reviewed-by: David Symonds --- src/cmd/api/goapi.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/cmd/api/goapi.go b/src/cmd/api/goapi.go index 85988e3bb7..1519d96ccc 100644 --- a/src/cmd/api/goapi.go +++ b/src/cmd/api/goapi.go @@ -107,12 +107,22 @@ func setContexts() { } } -var internalPkg = regexp.MustCompile(`(^|/)internal($|/)`) +var ( + internalPkg = regexp.MustCompile(`(^|/)internal($|/)`) + hashRx = regexp.MustCompile(`^[0-9a-f]{7,40}$`) +) + +func isDevelVersion(v string) bool { + if strings.Contains(v, "devel") { + return true + } + return hashRx.MatchString(v) +} func main() { flag.Parse() - if !strings.Contains(runtime.Version(), "weekly") && !strings.Contains(runtime.Version(), "devel") { + if v := runtime.Version(); !strings.Contains(v, "weekly") && !isDevelVersion(v) { if *nextFile != "" { fmt.Printf("Go version is %q, ignoring -next %s\n", runtime.Version(), *nextFile) *nextFile = "" @@ -283,7 +293,7 @@ func compareAPI(w io.Writer, features, required, optional, exception []string) ( delete(optionalSet, newFeature) } else { fmt.Fprintf(w, "+%s\n", newFeature) - if !*allowNew || !strings.Contains(runtime.Version(), "devel") { + if !*allowNew || !isDevelVersion(runtime.Version()) { ok = false // we're in lock-down mode for next release } } -- 2.48.1