aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2014-12-12 17:02:33 +1100
committerBrad Fitzpatrick <bradfitz@golang.org>2014-12-12 06:06:31 +0000
commit11d1c05fee22bd0609cab9dfc852fd4c6bc69b66 (patch)
tree63e0a8ab216d07ed185a3fd0a945173cdfa469b9 /src/cmd
parent082a2374fbe0d41e500158270e1ddc321c09a9e4 (diff)
downloadgo-11d1c05fee22bd0609cab9dfc852fd4c6bc69b66.tar.xz
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 <dsymonds@golang.org>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/api/goapi.go16
1 files 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
}
}