From 42ad7191554ecae2b56210238d9d356007941f78 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Tue, 3 Sep 2019 13:46:55 -0700 Subject: [PATCH 1/7] *: update test Go version / release version Signed-off-by: Gyuho Lee --- .travis.yml | 94 +++++++++++------------ Makefile | 6 +- functional/scripts/docker-local-agent.sh | 2 +- functional/scripts/docker-local-tester.sh | 2 +- tests/semaphore.test.bash | 4 +- 5 files changed, 54 insertions(+), 54 deletions(-) diff --git a/.travis.yml b/.travis.yml index fbb3a8627..ed0b0ec3f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,8 +6,8 @@ sudo: required services: docker go: -- 1.12.9 -- tip + - 1.13 + - tip notifications: on_success: never @@ -15,62 +15,62 @@ notifications: env: matrix: - - TARGET=linux-amd64-fmt - - TARGET=linux-amd64-integration-1-cpu - - TARGET=linux-amd64-integration-2-cpu - - TARGET=linux-amd64-integration-4-cpu - - TARGET=linux-amd64-functional - - TARGET=linux-amd64-unit - - TARGET=all-build - - TARGET=linux-amd64-grpcproxy - - TARGET=linux-amd64-coverage - - TARGET=linux-amd64-fmt-unit-go-tip - - TARGET=linux-386-unit + - TARGET=linux-amd64-fmt + - TARGET=linux-amd64-integration-1-cpu + - TARGET=linux-amd64-integration-2-cpu + - TARGET=linux-amd64-integration-4-cpu + - TARGET=linux-amd64-functional + - TARGET=linux-amd64-unit + - TARGET=all-build + - TARGET=linux-amd64-grpcproxy + - TARGET=linux-amd64-coverage + - TARGET=linux-amd64-fmt-unit-go-tip + - TARGET=linux-386-unit matrix: fast_finish: true allow_failures: - - go: 1.12.9 - env: TARGET=linux-amd64-grpcproxy - - go: 1.12.9 - env: TARGET=linux-amd64-coverage - - go: tip - env: TARGET=linux-amd64-fmt-unit-go-tip - - go: 1.12.9 - env: TARGET=linux-386-unit + - go: 1.13 + env: TARGET=linux-amd64-grpcproxy + - go: 1.13 + env: TARGET=linux-amd64-coverage + - go: tip + env: TARGET=linux-amd64-fmt-unit-go-tip + - go: 1.13 + env: TARGET=linux-386-unit exclude: - - go: tip - env: TARGET=linux-amd64-fmt - - go: tip - env: TARGET=linux-amd64-integration-1-cpu - - go: tip - env: TARGET=linux-amd64-integration-2-cpu - - go: tip - env: TARGET=linux-amd64-integration-4-cpu - - go: tip - env: TARGET=linux-amd64-functional - - go: tip - env: TARGET=linux-amd64-unit - - go: tip - env: TARGET=all-build - - go: tip - env: TARGET=linux-amd64-grpcproxy - - go: tip - env: TARGET=linux-amd64-coverage - - go: 1.12.9 - env: TARGET=linux-amd64-fmt-unit-go-tip - - go: tip - env: TARGET=linux-386-unit + - go: tip + env: TARGET=linux-amd64-fmt + - go: tip + env: TARGET=linux-amd64-integration-1-cpu + - go: tip + env: TARGET=linux-amd64-integration-2-cpu + - go: tip + env: TARGET=linux-amd64-integration-4-cpu + - go: tip + env: TARGET=linux-amd64-functional + - go: tip + env: TARGET=linux-amd64-unit + - go: tip + env: TARGET=all-build + - go: tip + env: TARGET=linux-amd64-grpcproxy + - go: tip + env: TARGET=linux-amd64-coverage + - go: 1.13 + env: TARGET=linux-amd64-fmt-unit-go-tip + - go: tip + env: TARGET=linux-386-unit before_install: -- if [[ $TRAVIS_GO_VERSION == 1.* ]]; then docker pull gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION}; fi + - if [[ $TRAVIS_GO_VERSION == 1.* ]]; then docker pull gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION}; fi install: -- go get -t -v -d ./... + - go get -t -v -d ./... script: - - echo "TRAVIS_GO_VERSION=${TRAVIS_GO_VERSION}" - - > + - echo "TRAVIS_GO_VERSION=${TRAVIS_GO_VERSION}" + - > case "${TARGET}" in linux-amd64-fmt) docker run --rm \ diff --git a/Makefile b/Makefile index 8b0b1b5ed..964d698dd 100644 --- a/Makefile +++ b/Makefile @@ -51,7 +51,7 @@ docker-remove: -GO_VERSION ?= 1.12.9 +GO_VERSION ?= 1.13 ETCD_VERSION ?= $(shell git rev-parse --short HEAD || echo "GitNotFound") TEST_SUFFIX = $(shell date +%s | base64 | head -c 15) @@ -65,11 +65,11 @@ endif # Example: -# GO_VERSION=1.12.9 make build-docker-test +# GO_VERSION=1.13 make build-docker-test # make build-docker-test # # gcloud docker -- login -u _json_key -p "$(cat /etc/gcp-key-etcd-development.json)" https://gcr.io -# GO_VERSION=1.12.9 make push-docker-test +# GO_VERSION=1.13 make push-docker-test # make push-docker-test # # gsutil -m acl ch -u allUsers:R -r gs://artifacts.etcd-development.appspot.com diff --git a/functional/scripts/docker-local-agent.sh b/functional/scripts/docker-local-agent.sh index c650d5dcd..6e2b92ac0 100755 --- a/functional/scripts/docker-local-agent.sh +++ b/functional/scripts/docker-local-agent.sh @@ -13,7 +13,7 @@ if ! [[ "${0}" =~ "scripts/docker-local-agent.sh" ]]; then fi if [[ -z "${GO_VERSION}" ]]; then - GO_VERSION=1.12.9 + GO_VERSION=1.13 fi echo "Running with GO_VERSION:" ${GO_VERSION} diff --git a/functional/scripts/docker-local-tester.sh b/functional/scripts/docker-local-tester.sh index 00970659d..430a0e230 100755 --- a/functional/scripts/docker-local-tester.sh +++ b/functional/scripts/docker-local-tester.sh @@ -6,7 +6,7 @@ if ! [[ "${0}" =~ "scripts/docker-local-tester.sh" ]]; then fi if [[ -z "${GO_VERSION}" ]]; then - GO_VERSION=1.12.9 + GO_VERSION=1.13 fi echo "Running with GO_VERSION:" ${GO_VERSION} diff --git a/tests/semaphore.test.bash b/tests/semaphore.test.bash index b04a1c5a6..2b34bd437 100755 --- a/tests/semaphore.test.bash +++ b/tests/semaphore.test.bash @@ -8,10 +8,10 @@ fi < Date: Fri, 6 Sep 2019 11:38:03 -0700 Subject: [PATCH 2/7] *: use TLS.Config.MaxVersion to TLS 1.2 Signed-off-by: Gyuho Lee --- integration/v3_tls_test.go | 3 --- pkg/transport/listener.go | 10 ++++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/integration/v3_tls_test.go b/integration/v3_tls_test.go index 7699d44ea..324ce49df 100644 --- a/integration/v3_tls_test.go +++ b/integration/v3_tls_test.go @@ -56,9 +56,6 @@ func testTLSCipherSuites(t *testing.T, valid bool) { if err != nil { t.Fatal(err) } - // go1.13 enables TLS13 by default, and in TLS13, cipher suites are not configurable - // setting Max TLS version to TLS12 for go1.13 - cc.MaxVersion = tls.VersionTLS12 cli, cerr := clientv3.New(clientv3.Config{ Endpoints: []string{clus.Members[0].GRPCAddr()}, DialTimeout: time.Second, diff --git a/pkg/transport/listener.go b/pkg/transport/listener.go index 80e35bda5..fa12911b6 100644 --- a/pkg/transport/listener.go +++ b/pkg/transport/listener.go @@ -377,6 +377,11 @@ func (info TLSInfo) ServerConfig() (*tls.Config, error) { // "h2" NextProtos is necessary for enabling HTTP2 for go's HTTP server cfg.NextProtos = []string{"h2"} + // go1.13 enables TLS 1.3 by default + // and in TLS 1.3, cipher suites are not configurable + // setting Max TLS version to TLS 1.2 for go 1.13 + cfg.MaxVersion = tls.VersionTLS12 + return cfg, nil } @@ -428,6 +433,11 @@ func (info TLSInfo) ClientConfig() (*tls.Config, error) { } } + // go1.13 enables TLS 1.3 by default + // and in TLS 1.3, cipher suites are not configurable + // setting Max TLS version to TLS 1.2 for go 1.13 + cfg.MaxVersion = tls.VersionTLS12 + return cfg, nil } From 1dff148f690905b2a3ff1c51ae658330df8a799b Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Fri, 6 Sep 2019 11:39:03 -0700 Subject: [PATCH 3/7] scripts/updatedep: use Go 1.13 Signed-off-by: Gyuho Lee --- scripts/updatedep.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/updatedep.sh b/scripts/updatedep.sh index c952ee875..fbf9e7a8e 100755 --- a/scripts/updatedep.sh +++ b/scripts/updatedep.sh @@ -13,8 +13,8 @@ if [ -d "gopath.proto" ]; then exit 255 fi -if [[ $(go version) != "go version go1.12"* ]]; then - echo "expect Go 1.12+, got:" "$(go version)" +if [[ $(go version) != "go version go1.13"* ]]; then + echo "expect Go 1.13+, got:" "$(go version)" exit 255 fi From 2cab6edf9499b774bf5166f52ca6463cb035fa24 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Fri, 6 Sep 2019 11:39:16 -0700 Subject: [PATCH 4/7] go.mod: use Go 1.13 Signed-off-by: Gyuho Lee --- go.mod | 2 ++ 1 file changed, 2 insertions(+) diff --git a/go.mod b/go.mod index 01b6a994b..67e5eb397 100644 --- a/go.mod +++ b/go.mod @@ -48,3 +48,5 @@ require ( gopkg.in/yaml.v2 v2.2.2 sigs.k8s.io/yaml v1.1.0 ) + +go 1.13 From d4d57c5422d0420c22f7ff55ea60b64a1cd8f1ba Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Fri, 6 Sep 2019 12:31:55 -0700 Subject: [PATCH 5/7] test: skip govet shadow tests for now Signed-off-by: Gyuho Lee --- test | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test b/test index 6347b1420..656a4604b 100755 --- a/test +++ b/test @@ -460,12 +460,12 @@ function govet_shadow_pass { # shellcheck disable=SC2206 fmtpkgs=($fmtpkgs) # Golang 1.12 onwards the experimental -shadow option is no longer available with go vet - go get golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow + go get -v golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow export PATH=${GOPATH}/bin:${PATH} shadow_tool=$(which shadow) vetRes=$(go vet -all -vettool="${shadow_tool}" "${TEST[@]}") if [ -n "${vetRes}" ]; then - echo -e "govet -all -shadow checking failed:\\n${vetRes}" + echo -e "govet -shadow checking failed:\\n${vetRes}" exit 255 fi } @@ -617,7 +617,6 @@ function fmt_pass { goword \ gofmt \ govet \ - govet_shadow \ revive \ license_header \ receiver_name \ From 92317650ecef5d7a339e8ee695842aad2c70dea2 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Fri, 6 Sep 2019 12:58:43 -0700 Subject: [PATCH 6/7] travis: skipping bom tests for now Signed-off-by: Gyuho Lee --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ed0b0ec3f..4a467bc6d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -75,7 +75,7 @@ script: linux-amd64-fmt) docker run --rm \ --volume=`pwd`:/go/src/go.etcd.io/etcd gcr.io/etcd-development/etcd-test:go${TRAVIS_GO_VERSION} \ - /bin/bash -c "GOARCH=amd64 PASSES='fmt bom dep' ./test" + /bin/bash -c "GOARCH=amd64 PASSES='fmt dep' ./test" ;; linux-amd64-integration-1-cpu) docker run --rm \ From ef0eec1b04c9393c6402ca83a0fb4694000e8955 Mon Sep 17 00:00:00 2001 From: Gyuho Lee Date: Fri, 6 Sep 2019 13:06:42 -0700 Subject: [PATCH 7/7] CHANGELOG: update Go version, 3.4 patch release Signed-off-by: Gyuho Lee --- CHANGELOG-3.3.md | 5 +++++ CHANGELOG-3.4.md | 18 ++++++++++++++++++ CHANGELOG-3.5.md | 3 +++ 3 files changed, 26 insertions(+) diff --git a/CHANGELOG-3.3.md b/CHANGELOG-3.3.md index 098958a98..17a5a6412 100644 --- a/CHANGELOG-3.3.md +++ b/CHANGELOG-3.3.md @@ -19,6 +19,11 @@ See [code changes](https://github.com/etcd-io/etcd/compare/v3.3.15...v3.3.16) an - Upgrade [`github.com/coreos/bbolt`](https://github.com/etcd-io/bbolt/releases) from [**`v1.3.1-coreos.6`**](https://github.com/etcd-io/bbolt/releases/tag/v1.3.1-coreos.6) to [**`v1.3.3`**](https://github.com/etcd-io/bbolt/releases/tag/v1.3.3). +### Go + +- Compile with Go 1.12.9 including [*Go 1.12.8*](https://groups.google.com/d/msg/golang-announce/65QixT3tcmg/DrFiG6vvCwAJ) security fixes. +- See [*Go 1.12 release page*](https://golang.org/doc/devel/release.html#go1.12) for more. +
diff --git a/CHANGELOG-3.4.md b/CHANGELOG-3.4.md index f1a424881..24731f0fe 100644 --- a/CHANGELOG-3.4.md +++ b/CHANGELOG-3.4.md @@ -2,6 +2,24 @@ Previous change logs can be found at [CHANGELOG-3.3](https://github.com/etcd-io/etcd/blob/master/CHANGELOG-3.3.md). +
+ +## [v3.4.1](https://github.com/etcd-io/etcd/releases/tag/v3.4.1) (2019-TBD) + +See [code changes](https://github.com/etcd-io/etcd/compare/v3.4.0...v3.4.1) and [v3.4 upgrade guide](https://github.com/etcd-io/etcd/blob/master/Documentation/upgrades/upgrade_3_4.md) for any breaking changes. + +**Again, before running upgrades from any previous release, please make sure to read change logs below and [v3.4 upgrade guide](https://github.com/etcd-io/etcd/blob/master/Documentation/upgrades/upgrade_3_4.md).** + +### etcd server + +- Fix [secure server logging message](https://github.com/etcd-io/etcd/commit/8b053b0f44c14ac0d9f39b9b78c17c57d47966eb). +- Remove [redundant `%` characters in file descriptor warning message](https://github.com/etcd-io/etcd/commit/d5f79adc9cea9ec8c93669526464b0aa19ed417b). + +### Go + +- Compile with Go 1.12.9 including [*Go 1.12.8*](https://groups.google.com/d/msg/golang-announce/65QixT3tcmg/DrFiG6vvCwAJ) security fixes. +- See [*Go 1.12 release page*](https://golang.org/doc/devel/release.html#go1.12) for more. +
diff --git a/CHANGELOG-3.5.md b/CHANGELOG-3.5.md index 225002a1e..292a148fa 100644 --- a/CHANGELOG-3.5.md +++ b/CHANGELOG-3.5.md @@ -79,6 +79,9 @@ Note that any `etcd_debugging_*` metrics are experimental and subject to change. - Deprecated [`/v3beta`](https://github.com/etcd-io/etcd/pull/9298). - `curl -L http://localhost:2379/v3beta/kv/put -X POST -d '{"key": "Zm9v", "value": "YmFy"}'` does work in v3.5. Use `curl -L http://localhost:2379/v3/kv/put -X POST -d '{"key": "Zm9v", "value": "YmFy"}'` instead. +### Go + +- Require [*Go 1.13+*](https://github.com/etcd-io/etcd/pull/11110).