]> Cypherpunks.ru repositories - gostls13.git/commitdiff
cmd/api: treat a hex-y VERSION as devel and permit API changes
authorBrad Fitzpatrick <bradfitz@golang.org>
Fri, 12 Dec 2014 06:02:33 +0000 (17:02 +1100)
committerBrad Fitzpatrick <bradfitz@golang.org>
Fri, 12 Dec 2014 06:06:31 +0000 (06:06 +0000)
Change-Id: I2b05b7ff217586851ab41744e3077fddc480253c
Reviewed-on: https://go-review.googlesource.com/1405
Reviewed-by: David Symonds <dsymonds@golang.org>
src/cmd/api/goapi.go

index 85988e3bb7e6103c2f4a917f37c4b973bdadb308..1519d96ccc537b06369475399240474ef2272921 100644 (file)
@@ -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
                                }
                        }