I note that the project doesn't compile with go1.6
~/go/src/github.com/Azure/azure-sdk-for-go$ go install ./...
# github.com/Azure/go-autorest/autorest
../go-autorest/autorest/retriablerequest.go:41: undefined: io.SeekStart
# github.com/Azure/azure-sdk-for-go/management
management/http.go:98: unknown tls.Config field 'Renegotiation' in struct literal
$ go version
go version go1.6.3 linux/amd64
The first error would be easy to fix by replacing the constant io.SeekStart with the value 0. The second is fairly easy with a few build constraints.
I note in your travis tests you are only testing on go1.8 so maybe go1.6 support is not a goal for you. However the project compiles fine with go1.7.
If you would like me to send a PR to make it compile with go1.6 I can. I'd suggest the PR include a change to the .travis file so go1.6 and go1.7 support get tested.
Thoughts?
We are aligning the Go SDK with golang's release policy, i.e. we only support the Go SDK on the latest version of golang (see https://golang.org/doc/devel/release.html). I think trying to support multiple versions is not tenable, e.g. see my recent commit https://github.com/Azure/go-autorest/commit/f6e08fe5e4d45c9a66e40196d3fed5f37331d224 which takes a dependency on a new feature in Go 1.8.
Is there a reason you're stuck on such an old version?
@jhendrixMSFT
My policy with rclone is to support 3 old versions of go which represents 1.5-2 years of releases. So I'm supporting 1.6-1.8 at the moment. All of rclone's many dependencies support this too, except this library unfortunately! Currently I've made the azure blob storage not available for go1.6 users which is an acceptable work-around.
The reason I do this is because a lot of the linux distros are a version or two behind in go version, and gccgo generally lags a version or two behind also. The linux distros like to compile their own version of rclone with their current go compiler.
As for Azure/go-autorest@f6e08fe it is fairly easy to use build tags to support the different go versions - I do a small amount of this in rclone with HTTP handling.
Thanks for the feedback. I've updated RetriableRequest in go-autorest so it now builds on 1.6 and 1.7 (see https://github.com/Azure/go-autorest/pull/154).
A new compile error with go1.6 has crept in here
~/go/src/github.com/Azure/azure-sdk-for-go/storage$ go install
# github.com/Azure/azure-sdk-for-go/storage
./client.go:408: req.GetBody undefined (type *http.Request has no field or method GetBody)
If go1.6 compile is a goal for the project (up to you) then might I suggest...
diff --git a/.travis.yml b/.travis.yml
index e33f601..f3dbc29 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,8 @@ sudo: false
language: go
go:
+ - 1.6
+ - 1.7
- 1.8
install: