Go programs are not go1.5-compatible
In !127 (merged) we added a hello-world
go binary. Unfortunately, this fails to compile on Go 1.5:
root@025f6642d625:/gitlab-shell# bin/compile
# gitlab.com/gitlab-org/gitlab-shell/go/vendor/google.golang.org/grpc/transport
go_build/src/gitlab.com/gitlab-org/gitlab-shell/go/vendor/google.golang.org/grpc/transport/http2_client.go:133: undefined: dialContext
command failed: {"GOPATH"=>"/gitlab-shell/go_build", "GO15VENDOREXPERIMENT"=>"1"} go install gitlab.com/gitlab-org/gitlab-shell/go/cmd/...
root@025f6642d625:/gitlab-shell#
The README.md states that go1.5 is supported, and some install-from-source users are having trouble as a result, e.g.: https://about.gitlab.com/2017/05/22/gitlab-9-2-released/#comment-3320082300
Can we make this hello-world program go1.5-compatible in a hurry? Or is the better route to update the README and the install-from-source instructions? Is grpc fundamentally incompatible with go1.5 or is it just missing some files due to being vendored under the wrong version of go?
Relatedly, I was hoping to add .gitlab-ci.yml
compile:go1.{5,6,7,8}
tasks but the bin/compile
script is currently written in Ruby, making this more difficult than necessary (we can't just use the golang:1.X docker images). One way or another, we should be compiling, and running unit tests when they start to be needed, for every version of Go that we support.