Hey, building the package fails.
go version go1.3.3 linux/amd64
https://github.com/GoogleCloudPlatform/gcloud-golang/commit/f95c875f2894b735501920cce2ab858f2110b23a
google.golang.org/cloud/compute/metadata
go/src/google.golang.org/cloud/compute/metadata/metadata.go:191: req.Cancel undefined (type *http.Request has no field or method Cancel)
Generally we only support the past two released versions of Go. net/http.Request.Cancel was added in Go 1.5, so we thought that was an acceptable requirement nowadays.
/cc @okdave @broady @adg
Thanks for the answer.
Tell that the debian package maintainers :)
App Engine is still on 1.4 (for a short time), so this should probably support < 1.5.
This change is the pad-left for AppEngine/Go (at least for us).
We are accessing BQ from GAE/G which requires us to use the golang.org/x/oauth2 which needs google.golang.org/cloud/compute/metadata, now since GAE/G runs under 1.4.2 this change broke our builds (and possibly for others) since 1.4.2 doesn't have .Cancel()
We can fix this specific case. The larger issue of figuring out a policy remains, though.
assigning to @okdave for policy on Go version support.
I agree, the last two versions are what we should support. But given that App Engine has fallen so far behind, we should be supporting it too. So the official policy should be "the minimum of the last 2 Go releases and the current default App Engine release".
App Engine isn't really too special here: it really should be the default version in any environments where the cloud packages are designed to run (and where the user has little/no control over the Go version). I can't think of a good example that isn't AE though.
When App Engine standard environment migrates to 1.6, we should drop support for 1.4 and older.
If there's no strong disagreement, I'll add suitable words to the docs.
I agree.
Go on App Engine switched over to Go 1.6 this morning, so we can probably now declare that Go 1.5 is the oldest supported version across the board (App Engine, cloud APIs, ...).
Our .travis.yml tests both 1.5 and 1.6.
We have agreement that we'll support the last two versions, or versions back to the current App Engine release if necessary.
So the last part is documenting the decision. Where should that go? Does the README suffice?
README sounds perfect.
Most helpful comment
I agree, the last two versions are what we should support. But given that App Engine has fallen so far behind, we should be supporting it too. So the official policy should be "the minimum of the last 2 Go releases and the current default App Engine release".
App Engine isn't really too special here: it really should be the default version in any environments where the cloud packages are designed to run (and where the user has little/no control over the Go version). I can't think of a good example that isn't AE though.
When App Engine standard environment migrates to 1.6, we should drop support for 1.4 and older.
If there's no strong disagreement, I'll add suitable words to the docs.