New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bump golang to 1.11.0 #37358
Bump golang to 1.11.0 #37358
Conversation
|
It worked on my laptop before I pushed it. Perhaps CI uses some old(er) private copy of dockerhub that needs to be updated? |
PPC CI, looks like I chose a bad moment to re-push:
Windows, apparently
is caused by golang commit golang/go@4869ec0 |
/cc @cyli for the certificate-transparency issue (FYI) |
certificate-transparency requires a one-line patch but it will break 1.10 compatibility. I think a backward-compatible fix can be made, too, although it'd be more than one liner. |
I think it's important we report it (both in the Go issue tracker, and in certificate-transparency); don't think there's been a single version of go that didn't break something |
Not quite sure yet if I want to report this one to golang/go (as the issue they solved is quite complicated) but I left a comment in golang/go#21376 (comment) |
Thanks @kolyshkin those look good; at least we reported upstream (so that they're aware of the issue), and we have a possible way forward 👍 |
Opened #37390 to bump certificate-transparency to match what's currently in SwarmKit (so that a later bump will be smaller) |
Not sure where this is coming from
|
ping @tonistiigi could you have a look at that session failure? IIRC, that endpoint does an upgrade? |
janky fail:
This is something going wrong with gometalinter. The file is @dnephin @alecthomas ^^^ can you PTAL? |
Should we try updating gometalinter? Looks like the version hasn't been updated in a while;
alecthomas/gometalinter@bfcc1d6...master (version v2.0.6 was tagged a few days ago https://github.com/alecthomas/gometalinter/releases/tag/v2.0.6) |
Indeed; let's see if it helps |
Doesn't look like it helped. I'll try to look into it further soon. I took a quick look and my best guess so far is that something started returning basename instead of a full path to a file. I'm not sure why that is. Maybe a regression in the go beta release? To get the rest of Ci running maybe add an |
@dnephin looks like there's more breaking changes in Go 1.11; I opened alecthomas/gometalinter#499 to test gometalinter on 1.11, and golang/go#26222 upstream (output being printed twice) quite some changes in this file since go 1.10; https://github.com/golang/go/commits/4ba55273713bebfbfe0bed9ce196e845c0c69567/src/cmd/vet/print.go diff UPDATE: my issue was marked as a duplicate of golang/go#26125 (which is labeled "release blocker", so should be fixed before Go 1.11 final) |
@@ -29,8 +29,8 @@ func TestStrSliceMarshalJSON(t *testing.T) { | |||
|
|||
func TestStrSliceUnmarshalJSON(t *testing.T) { | |||
parts := map[string][]string{ | |||
"": {"default", "values"}, | |||
"[]": {}, | |||
"": {"default", "values"}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As a workaround, we can add a blank line between the short and long keys to make it work for both 1.10 and 1.11 (see containerd/containerd#2436) but it's really a workaround
I opened a ticket upstream for the gofmt
change; golang/go#26228
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, this was marked as a "won't fix", "documentation only" change golang/go#26228 (comment), so if we want to support multiple versions of Go, we need to make some changes to CI and/or the contributing guide;
This change was done on purpose in golang/go@542ea5a.
As to why gofmt changes every release - see @griesemer's comment in golang/go#25161 (comment).
However, I agree that this change should be documented in the release notes. I can't see it in https://tip.golang.org/doc/go1.11.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, this looks better (in most cases), thanks for suggestion!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussing possible enhancements on the ticket upstream to ease migrating between Go versions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In most cases, if I remember correctly, once rebasing to a newer Go version we are losing compatibility with older ones either directly (i.e. some code in moby/moby starts using some feature from the new Go version) or indirectly (i.e. some code in vendored or otherwise used packages relies on a feature from the new Go version). I am about 84% sure current moby can't be compiled with Go 1.9, for example.
Therefore, chances are slim we'll be supporting Go 1.10 when Go 1.11 will become the current stable version of Go. Having said that, I am all for maintaining compatibility with older versions unless it requires some tremendous efforts.
7f2084c
to
298e445
Compare
Finally something new for a change! On janky, powerpc, and z:
On Windows:
|
To include the following backported fix: kolyshkin/ugorji-go@1cf431c13dec46596 which should fix this: > 13:40:53 vendor/github.com/ugorji/go/codec/gen-helper.generated.go:1: > possible malformed +build comment%!(EXTRA []interface {}=[]) Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This is to include the Go 1.11 fix (containerd/continuity#120). Again (see c64a244). Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
Instead of installing golang from sources, it's easier to use golang image which is based on Debian Stretch. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
We would like to use a version with .0 suffix (like 1.11.0) in Dockerfile, so that once a .1 version is out (like 1.11.1) we won't accidentally switch to it. Unfortunately it's not possible to use .0 suffix currently as it breaks the check in make.ps1. This patch fixes that. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
It's that time of year again! Go 1.11 is released, time to use it. This commit also * removes our archive/tar fork, since upstream archive/tar is fixed for static builds, and osusergo build tag is set. * removes ENV GO_VERSION from Dockerfile as it's not needed anymore since PR moby#37592 is merged. [v2: switch to beta2] [v3: switch to beta3] [v4: rc1] [v5: remove ENV GO_VERSION as PR moby#37592 is now merged] [v6: rc2] [v7: final!] [v8: use 1.11.0] [v9: back to 1.11] [v8: use 1.11.0] Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
We can do that now as we're no longer carrying archive/tar. Note that latest vndr removes vendor/ subdir so we don't have to, thus the change in hack/validate/vendor. While at it, re-run a new vndr version to make sure everything that should be there is. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
To allow for To that effect: Once the CI PR Is merged, windows CI needs to be restarted, and once green, we're good to go! |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, and all green now!
@@ -57,7 +57,8 @@ github.com/samuel/go-zookeeper d0e0d8e11f318e000a8cc434616d69e329edc374 | |||
github.com/deckarep/golang-set ef32fa3046d9f249d399f98ebaf9be944430fd1d | |||
github.com/coreos/etcd v3.2.1 | |||
github.com/coreos/go-semver v0.2.0 | |||
github.com/ugorji/go f1f1a805ed361a0e078bb537e4ea78cd37dcf065 | |||
# fix for go vet (https://github.com/kolyshkin/ugorji-go/commit/1cf431c13dec46596) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we should create a tracking issue for this (ie to get rid of the fork)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, #37804
The linked PR has been merged, and in fact dockerTools has upgraded to the latest `go1.11` compiler: moby/moby#35739 moby/moby#37358
For consistency with Moby (moby/moby#37358) Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
For consistency with Moby (moby/moby#37358) Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
For consistency with Moby (moby/moby#37358) Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
For consistency with Moby (moby/moby#37358) Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
For consistency with Moby (moby/moby#37358) Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
The linked PR has been merged, and in fact dockerTools has upgraded to the latest `go1.11` compiler: moby/moby#35739 moby/moby#37358 (cherry picked from commit 4d8bb9a)
For consistency with Moby (moby/moby#37358) Signed-off-by: Akihiro Suda <suda.akihiro@lab.ntt.co.jp>
It's that time of year again! Go 1.11 is released, let's use it.
This PR also:
ENV GO_VERSION
from Dockerfile (not needed since PR hack/make.ps1: don't rely on GO_VERSION #37592);gofmt -s
from go 1.11 to avoid validation errors;image credit: https://www.maxpixel.net/Animal-Mammal-Nora-Nature-Gopher-Meadow-Spring-2196633